Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-cssutils for openSUSE:Factory checked in at 2023-06-21 22:38:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-cssutils (Old) and /work/SRC/openSUSE:Factory/.python-cssutils.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cssutils" Wed Jun 21 22:38:58 2023 rev:34 rq:1094122 version:2.7.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-cssutils/python-cssutils.changes 2023-06-18 23:07:48.373411827 +0200 +++ /work/SRC/openSUSE:Factory/.python-cssutils.new.15902/python-cssutils.changes 2023-06-21 22:39:45.506334799 +0200 @@ -1,0 +2,7 @@ +Tue Jun 20 16:19:01 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 2.7.1: + * #36: Refactored to restore docs builds without warning- + errors. + +------------------------------------------------------------------- Old: ---- cssutils-2.7.0.tar.gz New: ---- cssutils-2.7.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-cssutils.spec ++++++ --- /var/tmp/diff_new_pack.gk9HaV/_old 2023-06-21 22:39:45.958337518 +0200 +++ /var/tmp/diff_new_pack.gk9HaV/_new 2023-06-21 22:39:45.962337542 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-cssutils -Version: 2.7.0 +Version: 2.7.1 Release: 0 Summary: A CSS Cascading Style Sheets library for Python License: LGPL-3.0-or-later ++++++ cssutils-2.7.0.tar.gz -> cssutils-2.7.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/.github/workflows/main.yml new/cssutils-2.7.1/.github/workflows/main.yml --- old/cssutils-2.7.0/.github/workflows/main.yml 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/.github/workflows/main.yml 2023-06-12 02:05:57.000000000 +0200 @@ -90,16 +90,13 @@ python -m pip install tox - name: Run tests run: tox - # workaround for #36 - continue-on-error: true check: # This job does nothing and is only used for the branch protection if: always() needs: - test - # workaround for #36 - # - docs + - docs runs-on: ubuntu-latest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/CHANGES.rst new/cssutils-2.7.1/CHANGES.rst --- old/cssutils-2.7.0/CHANGES.rst 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/CHANGES.rst 2023-06-12 02:05:57.000000000 +0200 @@ -1,3 +1,8 @@ +v2.7.1 +====== + +#36: Refactored to restore docs builds without warning-errors. + v2.7.0 ====== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/PKG-INFO new/cssutils-2.7.1/PKG-INFO --- old/cssutils-2.7.0/PKG-INFO 2023-06-09 03:46:59.229071100 +0200 +++ new/cssutils-2.7.1/PKG-INFO 2023-06-12 02:06:22.503588700 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: cssutils -Version: 2.7.0 +Version: 2.7.1 Summary: A CSS Cascading Style Sheets library for Python Home-page: https://github.com/jaraco/cssutils Author: Christof Hoeke @@ -85,10 +85,6 @@ I guess cssutils is neither CSS 2.1 nor CSS 3 compliant but tries to at least be able to parse both grammars including some more real world cases (some CSS hacks are actually parsed and serialized). Both official grammars are not final nor bugfree but still feasible. cssutils aim is not to be fully compliant to any CSS specification (the specifications seem to be in a constant flow anyway) but cssutils *should* be able to read and write as many as possible CSS stylesheets "in the wild" while at the same time implement the official APIs which are well documented. Some minor extensions are provided as well. -Please visit http://cthedot.de/cssutils/ or https://bitbucket.org/cthedot/cssutils/ for more details. - -There is also a low-traffic `cssutils discussion group <http://groups.google.com/group/cssutils>`_. - Compatibility ============= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/README.rst new/cssutils-2.7.1/README.rst --- old/cssutils-2.7.0/README.rst 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/README.rst 2023-06-12 02:05:57.000000000 +0200 @@ -61,10 +61,6 @@ I guess cssutils is neither CSS 2.1 nor CSS 3 compliant but tries to at least be able to parse both grammars including some more real world cases (some CSS hacks are actually parsed and serialized). Both official grammars are not final nor bugfree but still feasible. cssutils aim is not to be fully compliant to any CSS specification (the specifications seem to be in a constant flow anyway) but cssutils *should* be able to read and write as many as possible CSS stylesheets "in the wild" while at the same time implement the official APIs which are well documented. Some minor extensions are provided as well. -Please visit http://cthedot.de/cssutils/ or https://bitbucket.org/cthedot/cssutils/ for more details. - -There is also a low-traffic `cssutils discussion group <http://groups.google.com/group/cssutils>`_. - Compatibility ============= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/cssimportrule.py new/cssutils-2.7.1/cssutils/css/cssimportrule.py --- old/cssutils-2.7.0/cssutils/css/cssimportrule.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/cssimportrule.py 2023-06-12 02:05:57.000000000 +0200 @@ -407,8 +407,11 @@ else: self._log.error('CSSImportRule: Not a valid name: %s' % name) + def _getName(self): + return self._name + name = property( - lambda self: self._name, + _getName, _setName, doc="An optional name for the imported sheet.", ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/cssmediarule.py new/cssutils-2.7.1/cssutils/css/cssmediarule.py --- old/cssutils-2.7.0/cssutils/css/cssmediarule.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/cssmediarule.py 2023-06-12 02:05:57.000000000 +0200 @@ -261,7 +261,13 @@ doc="(DOM) The parsable textual representation of this " "rule.", ) - def _setName(self, name): + @property + def name(self): + """An optional name for this media rule.""" + return self._name + + @name.setter + def name(self, name): if isinstance(name, str) or name is None: # "" or '' if not name: @@ -271,9 +277,8 @@ else: self._log.error('CSSImportRule: Not a valid name: %s' % name) - name = property( - lambda self: self._name, _setName, doc="An optional name for this media rule." - ) + def _setName(self, name): + self.name = name def _setMedia(self, media): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/cssrule.py new/cssutils-2.7.1/cssutils/css/cssrule.py --- old/cssutils-2.7.0/cssutils/css/cssrule.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/cssrule.py 2023-06-12 02:05:57.000000000 +0200 @@ -117,9 +117,10 @@ "and not its initial value.", ) - parent = property( - lambda self: self._parent, doc="The Parent Node of this CSSRule or None." - ) + @property + def parent(self): + """The Parent Node of this CSSRule or None.""" + return self._parent parentRule = property( lambda self: self._parentRule, @@ -254,9 +255,7 @@ tempsheet.cssRules and not isinstance(tempsheet.cssRules[0], cssutils.css.CSSRule) ): - self._log.error( - '{}: Invalid Rule: {}'.format(self.__class__.__name__, rule) - ) + self._log.error(f'{self.__class__.__name__}: Invalid Rule: {rule}') return False, False rule = tempsheet.cssRules[0] @@ -267,9 +266,7 @@ return True, True elif not isinstance(rule, cssutils.css.CSSRule): - self._log.error( - '{}: Not a CSSRule: {}'.format(rule, self.__class__.__name__) - ) + self._log.error(f'{rule}: Not a CSSRule: {self.__class__.__name__}') return False, False return rule, index diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/cssrulelist.py new/cssutils-2.7.1/cssutils/css/cssrulelist.py --- old/cssutils-2.7.0/cssutils/css/cssrulelist.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/cssrulelist.py 2023-06-12 02:05:57.000000000 +0200 @@ -43,9 +43,10 @@ except IndexError: return None - length = property( - lambda self: len(self), doc="(DOM) The number of CSSRules in the list." - ) + @property + def length(self): + """(DOM) The number of CSSRules in the list.""" + return len(self) def rulesOfType(self, type): """Yield the rules which have the given `type` only, one of the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/cssstyledeclaration.py new/cssutils-2.7.1/cssutils/css/cssstyledeclaration.py --- old/cssutils-2.7.0/cssutils/css/cssstyledeclaration.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/cssstyledeclaration.py 2023-06-12 02:05:57.000000000 +0200 @@ -666,7 +666,7 @@ self.seq._readonly = True else: - self._log.warn('Invalid Property: {}: {} {}'.format(name, value, priority)) + self._log.warn(f'Invalid Property: {name}: {value} {priority}') def item(self, index): """(DOM) Retrieve the properties that have been explicitly set in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/cssstylesheet.py new/cssutils-2.7.1/cssutils/css/cssstylesheet.py --- old/cssutils-2.7.0/cssutils/css/cssstylesheet.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/cssstylesheet.py 2023-06-12 02:05:57.000000000 +0200 @@ -456,9 +456,10 @@ "(default) if set to ``None``", ) - namespaces = property( - lambda self: self._namespaces, doc="All Namespaces used in this CSSStyleSheet." - ) + @property + def namespaces(self): + """All Namespaces used in this CSSStyleSheet.""" + return self._namespaces def _updateVariables(self): """Updates self._variables, called when @import or @variables rules diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/cssvalue.py new/cssutils-2.7.1/cssutils/css/cssvalue.py --- old/cssutils-2.7.0/cssutils/css/cssvalue.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/cssvalue.py 2023-06-12 02:05:57.000000000 +0200 @@ -62,7 +62,7 @@ self._readonly = readonly def __repr__(self): - return "cssutils.css.{}({!r})".format(self.__class__.__name__, self.cssText) + return f"cssutils.css.{self.__class__.__name__}({self.cssText!r})" def __str__(self): return ( @@ -800,7 +800,7 @@ if val == int(val): val = int(val) - self.cssText = '{}{}'.format(val, dim) + self.cssText = f'{val}{dim}' def getStringValue(self): """(DOM) This method is used to get the string value. If the @@ -1132,7 +1132,7 @@ self._readonly = readonly def __repr__(self): - return "cssutils.css.{}({!r})".format(self.__class__.__name__, self.cssText) + return f"cssutils.css.{self.__class__.__name__}({self.cssText!r})" def __str__(self): return "<cssutils.css.{} object colorType={!r} cssText={!r} at 0x{:x}>".format( @@ -1313,7 +1313,7 @@ super().__init__(cssText=cssText, parent=parent, readonly=readonly) def __repr__(self): - return "cssutils.css.{}({!r})".format(self.__class__.__name__, self.cssText) + return f"cssutils.css.{self.__class__.__name__}({self.cssText!r})" def __str__(self): return "<cssutils.css.{} object name={!r} value={!r} at 0x{:x}>".format( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/cssvariablesdeclaration.py new/cssutils-2.7.1/cssutils/css/cssvariablesdeclaration.py --- old/cssutils-2.7.0/cssutils/css/cssvariablesdeclaration.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/cssvariablesdeclaration.py 2023-06-12 02:05:57.000000000 +0200 @@ -286,9 +286,7 @@ normalize(variableName), 'variableName', Sequence(PreDef.ident()) ) if not wellformed: - self._log.error( - 'Invalid variableName: {!r}: {!r}'.format(variableName, value) - ) + self._log.error(f'Invalid variableName: {variableName!r}: {value!r}') else: # check value if isinstance(value, PropertyValue): @@ -297,9 +295,7 @@ v = PropertyValue(cssText=value, parent=self) if not v.wellformed: - self._log.error( - 'Invalid variable value: {!r}: {!r}'.format(variableName, value) - ) + self._log.error(f'Invalid variable value: {variableName!r}: {value!r}') else: # update seq self.seq._readonly = False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/property.py new/cssutils-2.7.1/cssutils/css/property.py --- old/cssutils-2.7.0/cssutils/css/property.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/property.py 2023-06-12 02:05:57.000000000 +0200 @@ -290,7 +290,16 @@ _getValue, _setValue, doc="The textual value of this Properties propertyValue." ) - def _setPriority(self, priority): # noqa: C901 + def _setPriority(self, priority): + self.priority = priority + + @property + def priority(self): + """Priority of this property.""" + return self._priority + + @priority.setter + def priority(self, priority): # noqa: C901 """ priority a string, currently either u'', u'!important' or u'important' @@ -371,23 +380,19 @@ if self._priority not in ('', 'important'): self._log.error('Property: No CSS priority value: %s' % self._priority) - priority = property( - lambda self: self._priority, _setPriority, doc="Priority of this property." - ) - literalpriority = property( lambda self: self._literalpriority, doc="Readonly literal (not normalized) priority of this property", ) - def _setParent(self, parent): - self._parent = parent + @property + def parent(self): + """The Parent Node (normally a CSSStyledeclaration) of this Property""" + return self._parent - parent = property( - lambda self: self._parent, - _setParent, - doc="The Parent Node (normally a CSSStyledeclaration) of this " "Property", - ) + @parent.setter + def parent(self, parent): + self._parent = parent def validate(self): # noqa: C901 """Validate value against `profiles` which are checked dynamically. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/selector.py new/cssutils-2.7.1/cssutils/css/selector.py --- old/cssutils-2.7.0/cssutils/css/selector.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/selector.py 2023-06-12 02:05:57.000000000 +0200 @@ -126,7 +126,7 @@ st = (self.selectorText, self._getUsedNamespaces()) else: st = self.selectorText - return "cssutils.css.{}(selectorText={!r})".format(self.__class__.__name__, st) + return f"cssutils.css.{self.__class__.__name__}(selectorText={st!r})" def __str__(self): return ( @@ -181,9 +181,10 @@ "namespaceURI} is used.", ) - element = property( - lambda self: self._element, doc="Effective element target of this selector." - ) + @property + def element(self): + """Effective element target of this selector.""" + return self._element parent = property( lambda self: self._parent, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/selectorlist.py new/cssutils-2.7.1/cssutils/css/selectorlist.py --- old/cssutils-2.7.0/cssutils/css/selectorlist.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/selectorlist.py 2023-06-12 02:05:57.000000000 +0200 @@ -47,7 +47,7 @@ st = (self.selectorText, self._namespaces) else: st = self.selectorText - return "cssutils.css.{}(selectorText={!r})".format(self.__class__.__name__, st) + return f"cssutils.css.{self.__class__.__name__}(selectorText={st!r})" def __str__(self): return "<cssutils.css.%s object selectorText=%r _namespaces=%r at " "0x%x>" % ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/css/value.py new/cssutils-2.7.1/cssutils/css/value.py --- old/cssutils-2.7.0/cssutils/css/value.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/css/value.py 2023-06-12 02:05:57.000000000 +0200 @@ -71,7 +71,7 @@ yield from self.__items() def __repr__(self): - return "cssutils.css.{}({!r})".format(self.__class__.__name__, self.cssText) + return f"cssutils.css.{self.__class__.__name__}({self.cssText!r})" def __str__(self): return "<cssutils.css.%s object length=%r cssText=%r at " "0x%x>" % ( @@ -254,7 +254,7 @@ self.cssText = cssText def __repr__(self): - return "cssutils.css.{}({!r})".format(self.__class__.__name__, self.cssText) + return f"cssutils.css.{self.__class__.__name__}({self.cssText!r})" def __str__(self): return ( @@ -291,12 +291,14 @@ doc='String value of this value.', ) - type = property( - lambda self: self._type, # _setType, - doc="Type of this value, for now the production type " - "like e.g. `DIMENSION` or `STRING`. All types are " - "defined as constants in :class:`~cssutils.css.Value`.", - ) + @property + def type(self): + """ + Type of this value, for now the production type + like e.g. `DIMENSION` or `STRING`. All types are + defined as constants in :class:`~cssutils.css.Value`. + """ + return self._type def _setValue(self, value): # TODO: check! @@ -493,9 +495,10 @@ doc='Same as cssText but without comments.', ) - type = property( - lambda self: Value.COLOR_VALUE, doc="Type is fixed to Value.COLOR_VALUE." - ) + @property + def type(self): + """Type is fixed to Value.COLOR_VALUE.""" + return Value.COLOR_VALUE def _getName(self): for n, v in list(self.COLORS.items()): @@ -512,15 +515,21 @@ ) red = property(lambda self: self._red, doc='red part as integer between 0 and 255') - green = property( - lambda self: self._green, doc='green part as integer between 0 and 255' - ) - blue = property( - lambda self: self._blue, doc='blue part as integer between 0 and 255' - ) - alpha = property( - lambda self: self._alpha, doc='alpha part as float between 0.0 and 1.0' - ) + + @property + def green(self): + """green part as integer between 0 and 255""" + return self._green + + @property + def blue(self): + """blue part as integer between 0 and 255""" + return self._blue + + @property + def alpha(self): + """alpha part as float between 0.0 and 1.0""" + return self._alpha class DimensionValue(Value): @@ -928,9 +937,10 @@ ":class:`cssutils.css.CSSVariablesDeclaration`.", ) - fallback = property( - lambda self: self._fallback, doc="The fallback Value of this variable" - ) + @property + def fallback(self): + """The fallback Value of this variable""" + return self._fallback type = property(lambda self: Value.VARIABLE, doc="Type is fixed to Value.VARIABLE.") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/profiles.py new/cssutils-2.7.1/cssutils/profiles.py --- old/cssutils-2.7.0/cssutils/profiles.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/profiles.py 2023-06-12 02:05:57.000000000 +0200 @@ -211,9 +211,10 @@ doc='Names of all profiles in order as defined.', ) - knownNames = property( - lambda self: self._knownNames, doc="All known property names of all profiles." - ) + @property + def knownNames(self): + """All known property names of all profiles.""" + return self._knownNames def _resetProperties(self, newMacros=None): "reset all props from raw values as changes in macros happened" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/tests/test_cssmediarule.py new/cssutils-2.7.1/cssutils/tests/test_cssmediarule.py --- old/cssutils-2.7.0/cssutils/tests/test_cssmediarule.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/tests/test_cssmediarule.py 2023-06-12 02:05:57.000000000 +0200 @@ -138,7 +138,7 @@ for b, a in list(mls.items()): if a is None: a = b - tests['@media{}{}'.format(b, style)] = '@media{}{}'.format(a, style) + tests[f'@media{b}{style}'] = f'@media{a}{style}' self.do_equal_p(tests) self.do_equal_r(tests) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils/util.py new/cssutils-2.7.1/cssutils/util.py --- old/cssutils-2.7.0/cssutils/util.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/cssutils/util.py 2023-06-12 02:05:57.000000000 +0200 @@ -73,9 +73,10 @@ "Get a writeable Seq() which is used to set ``seq`` later" return Seq(readonly=readonly) - seq = property( - lambda self: self._seq, doc="Internal readonly attribute, **DO NOT USE**!" - ) + @property + def seq(self): + """Internal readonly attribute, **DO NOT USE**!""" + return self._seq class _NewListBase(_NewBase): @@ -892,10 +893,10 @@ def __setitem__(self, prefix, namespaceURI): self.__namespaces[prefix] = namespaceURI - namespaces = property( - lambda self: self.__namespaces, - doc='Dict Wrapper for self.sheets @namespace rules.', - ) + @property + def namespaces(self): + """Dict Wrapper for self.sheets @namespace rules.""" + return self.__namespaces def __str__(self): return "<cssutils.util.{} object namespaces={!r} at 0x{:x}>".format( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/cssutils.egg-info/PKG-INFO new/cssutils-2.7.1/cssutils.egg-info/PKG-INFO --- old/cssutils-2.7.0/cssutils.egg-info/PKG-INFO 2023-06-09 03:46:59.000000000 +0200 +++ new/cssutils-2.7.1/cssutils.egg-info/PKG-INFO 2023-06-12 02:06:22.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: cssutils -Version: 2.7.0 +Version: 2.7.1 Summary: A CSS Cascading Style Sheets library for Python Home-page: https://github.com/jaraco/cssutils Author: Christof Hoeke @@ -85,10 +85,6 @@ I guess cssutils is neither CSS 2.1 nor CSS 3 compliant but tries to at least be able to parse both grammars including some more real world cases (some CSS hacks are actually parsed and serialized). Both official grammars are not final nor bugfree but still feasible. cssutils aim is not to be fully compliant to any CSS specification (the specifications seem to be in a constant flow anyway) but cssutils *should* be able to read and write as many as possible CSS stylesheets "in the wild" while at the same time implement the official APIs which are well documented. Some minor extensions are provided as well. -Please visit http://cthedot.de/cssutils/ or https://bitbucket.org/cthedot/cssutils/ for more details. - -There is also a low-traffic `cssutils discussion group <http://groups.google.com/group/cssutils>`_. - Compatibility ============= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/docs/logging.rst new/cssutils-2.7.1/docs/logging.rst --- old/cssutils-2.7.0/docs/logging.rst 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/docs/logging.rst 2023-06-12 02:05:57.000000000 +0200 @@ -22,4 +22,4 @@ Additional method: ``cssutils.log.setLog(newlog)``: To replace the default log which sends output to ``stderr``. -See also :meth:`cssutils.css.Property.validate` for details on how properties log. \ No newline at end of file +See also :meth:`cssutils.css.Property.validate` for details on how properties log. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/docs/parse.rst new/cssutils-2.7.1/docs/parse.rst --- old/cssutils-2.7.0/docs/parse.rst 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/docs/parse.rst 2023-06-12 02:05:57.000000000 +0200 @@ -38,7 +38,7 @@ .. autoclass:: cssutils.CSSParser :members: :inherited-members: - + The URL Fetcher --------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/docs/scripts.rst new/cssutils-2.7.1/docs/scripts.rst --- old/cssutils-2.7.0/docs/scripts.rst 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/docs/scripts.rst 2023-06-12 02:05:57.000000000 +0200 @@ -114,46 +114,46 @@ ---------------- example:: - >>> from cssutils.script import csscombine - >>> proxypath = 'sheets/import.css' - >>> print csscombine(path=proxypath, sourceencoding=None, targetencoding='utf-8', minify=False) - INFO Combining files from None - INFO Processing @import u'import/import2.css' - INFO Processing @import u'../import3.css' - INFO @import: Adjusting paths for u'../import3.css' - INFO Processing @import u'import-impossible.css' - INFO @import: Adjusting paths for u'import-impossible.css' - WARNING Cannot combine imported sheet with given media as other rules then comments or stylerules found cssutils.css.CSSNamespaceRule(namespaceURI=u'y', prefix=u''), keeping u'@import "import-impossible.css" print;' - INFO @import: Adjusting paths for u'import/import2.css' - INFO Using target encoding: 'utf-8' - @charset "utf-8"; - /* START @import "import/import2.css" */ - @import "import-impossible.css" print; - /* START @import "../import3.css" */ - /* import3 */ - .import3 { - /* from ./import/../import3.css */ - background: url(images/example3.gif); - background: url(images/example3.gif); - background: url(import/images2/example2.gif); - background: url(import/images2/example2.gif); - background: url(images/example3.gif) - } - /* START @import "import-impossible.css" */ - .import2 { - /* sheets/import2.css */ - background: url(http://example.com/images/example.gif); - background: url(//example.com/images/example.gif); - background: url(/images/example.gif); - background: url(import/images2/example.gif); - background: url(import/images2/example.gif); - background: url(images/example.gif); - background: url(images/example.gif) - } - .import { - /* ./import.css */ - background-image: url(images/example.gif) - } + >>> from cssutils.script import csscombine + >>> proxypath = 'sheets/import.css' + >>> print csscombine(path=proxypath, sourceencoding=None, targetencoding='utf-8', minify=False) + INFO Combining files from None + INFO Processing @import u'import/import2.css' + INFO Processing @import u'../import3.css' + INFO @import: Adjusting paths for u'../import3.css' + INFO Processing @import u'import-impossible.css' + INFO @import: Adjusting paths for u'import-impossible.css' + WARNING Cannot combine imported sheet with given media as other rules then comments or stylerules found cssutils.css.CSSNamespaceRule(namespaceURI=u'y', prefix=u''), keeping u'@import "import-impossible.css" print;' + INFO @import: Adjusting paths for u'import/import2.css' + INFO Using target encoding: 'utf-8' + @charset "utf-8"; + /* START @import "import/import2.css" */ + @import "import-impossible.css" print; + /* START @import "../import3.css" */ + /* import3 */ + .import3 { + /* from ./import/../import3.css */ + background: url(images/example3.gif); + background: url(images/example3.gif); + background: url(import/images2/example2.gif); + background: url(import/images2/example2.gif); + background: url(images/example3.gif) + } + /* START @import "import-impossible.css" */ + .import2 { + /* sheets/import2.css */ + background: url(http://example.com/images/example.gif); + background: url(//example.com/images/example.gif); + background: url(/images/example.gif); + background: url(import/images2/example.gif); + background: url(import/images2/example.gif); + background: url(images/example.gif); + background: url(images/example.gif) + } + .import { + /* ./import.css */ + background-image: url(images/example.gif) + } script use @@ -170,4 +170,4 @@ -t TARGETENCODING, --targetencoding=TARGETENCODING encoding of output, defaulting to "UTF-8" -m, --minify saves minified version of combined files, defaults to - False \ No newline at end of file + False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/docs/serialize.rst new/cssutils-2.7.1/docs/serialize.rst --- old/cssutils-2.7.0/docs/serialize.rst 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/docs/serialize.rst 2023-06-12 02:05:57.000000000 +0200 @@ -9,19 +9,19 @@ =============== To serialize any stylesheet use:: - print sheet.cssText - + print sheet.cssText + Also most other objects have a similar property which contains the *text* content of each object. Some use a slightly different name (e.g. ``selectorText``) but all use the global serializer:: - >>> sheet = cssutils.parseString('a, b { color: green }') - >>> print sheet.cssRules[0].cssText - a, b { - color: green - } - >>> print sheet.cssRules[0].selectorText - a, b - >>> print sheet.cssRules[0].selectorList[1].selectorText - b + >>> sheet = cssutils.parseString('a, b { color: green }') + >>> print sheet.cssRules[0].cssText + a, b { + color: green + } + >>> print sheet.cssRules[0].selectorText + a, b + >>> print sheet.cssRules[0].selectorList[1].selectorText + b .. _Preferences: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/docs/settings.rst new/cssutils-2.7.1/docs/settings.rst --- old/cssutils-2.7.0/docs/settings.rst 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/docs/settings.rst 2023-06-12 02:05:57.000000000 +0200 @@ -5,7 +5,7 @@ It is possible to at least parse sheets with Microsoft only property values for ``filter`` which start with ``progid:DXImageTransform.Microsoft.[...](``. - + To enable these you need to set:: >>> from cssutils import settings diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/examples/testutil.py new/cssutils-2.7.1/examples/testutil.py --- old/cssutils-2.7.0/examples/testutil.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/examples/testutil.py 2023-06-12 02:05:57.000000000 +0200 @@ -54,9 +54,9 @@ if not ok: print() if out != expo: - print('### out:\n{!r}\n### != expout:\n{!r}\n'.format(out, expo)) + print(f'### out:\n{out!r}\n### != expout:\n{expo!r}\n') else: - print('### err:\n{!r}\n### != experr:\n{!r}\n'.format(err, expe)) + print(f'### err:\n{err!r}\n### != experr:\n{expe!r}\n') return ok diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cssutils-2.7.0/tools/try.py new/cssutils-2.7.1/tools/try.py --- old/cssutils-2.7.0/tools/try.py 2023-06-09 03:46:33.000000000 +0200 +++ new/cssutils-2.7.1/tools/try.py 2023-06-12 02:05:57.000000000 +0200 @@ -755,7 +755,7 @@ elif v.cssValueType == v.CSS_VARIABLE: if v.value: - print('+ Replacing {!r} with {!r}'.format(p.value, v.value)) + print(f'+ Replacing {p.value!r} with {v.value!r}') p.value = v.value else: print('- No value found for %r' % p.value) @@ -1218,9 +1218,7 @@ try: r = urlfetch.fetch(url, method=urlfetch.GET) except urlfetch.Error as e: - cssutils.log.warn( - 'Error opening url={!r}: {}'.format(url, e.message), error=IOError - ) + cssutils.log.warn(f'Error opening url={url!r}: {e.message}', error=IOError) else: if r.status_code == 200: # find mimetype and encoding @@ -1237,7 +1235,7 @@ else: # TODO: 301 etc cssutils.log.warn( - 'Error opening url={!r}: HTTP status {}'.format(url, r.status_code), + f'Error opening url={url!r}: HTTP status {r.status_code}', error=IOError, )