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-18 23:07:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cssutils (Old)
 and      /work/SRC/openSUSE:Factory/.python-cssutils.new.15902 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-cssutils"

Sun Jun 18 23:07:48 2023 rev:33 rq:1093642 version:2.7.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cssutils/python-cssutils.changes  
2022-09-14 13:45:28.133967781 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-cssutils.new.15902/python-cssutils.changes   
    2023-06-18 23:07:48.373411827 +0200
@@ -1,0 +2,9 @@
+Sun Jun 11 09:08:05 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 2.7.0:
+  * Updated deprecated usage of ``cgi`` module.
+  * Updated deprecated setup/teardown from ``nose`` in
+    tests.
+  * Other miscellaneous cleanup and packaging updates.
+
+-------------------------------------------------------------------

Old:
----
  cssutils-2.6.0.tar.gz

New:
----
  cssutils-2.7.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-cssutils.spec ++++++
--- /var/tmp/diff_new_pack.7ZjfKO/_old  2023-06-18 23:07:49.017415681 +0200
+++ /var/tmp/diff_new_pack.7ZjfKO/_new  2023-06-18 23:07:49.021415705 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-cssutils
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-cssutils
-Version:        2.6.0
+Version:        2.7.0
 Release:        0
 Summary:        A CSS Cascading Style Sheets library for Python
 License:        LGPL-3.0-or-later

++++++ cssutils-2.6.0.tar.gz -> cssutils-2.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/.coveragerc 
new/cssutils-2.7.0/.coveragerc
--- old/cssutils-2.6.0/.coveragerc      2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/.coveragerc      2023-06-09 03:46:33.000000000 +0200
@@ -2,7 +2,8 @@
 omit =
        # leading `*/` for pytest-dev/pytest-cov#456
        */.tox/*
-       */pep517-build-env-*
+disable_warnings =
+       couldnt-parse
 
 [report]
 show_missing = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/.flake8 new/cssutils-2.7.0/.flake8
--- old/cssutils-2.6.0/.flake8  2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/.flake8  1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-[flake8]
-max-line-length = 88
-
-# jaraco/skeleton#34
-max-complexity = 10
-
-extend-ignore =
-       # Black creates whitespace before colon
-       E203
-       # Ignore long lines for now
-       E501
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/.github/workflows/main.yml 
new/cssutils-2.7.0/.github/workflows/main.yml
--- old/cssutils-2.6.0/.github/workflows/main.yml       2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/.github/workflows/main.yml       2023-06-09 
03:46:33.000000000 +0200
@@ -2,36 +2,104 @@
 
 on: [push, pull_request]
 
+permissions:
+  contents: read
+
+env:
+  # Environment variables to support color support (jaraco/skeleton#66):
+  # Request colored output from CLI tools supporting it. Different tools
+  # interpret the value differently. For some, just being set is sufficient.
+  # For others, it must be a non-zero integer. For yet others, being set
+  # to a non-empty value is sufficient. For tox, it must be one of
+  # <blank>, 0, 1, false, no, off, on, true, yes. The only enabling value
+  # in common is "1".
+  FORCE_COLOR: 1
+  # MyPy's color enforcement (must be a non-zero number)
+  MYPY_FORCE_COLOR: -42
+  # Recognized by the `py` package, dependency of `pytest` (must be "1")
+  PY_COLORS: 1
+  # Make tox-wrapped tools see color requests
+  TOX_TESTENV_PASSENV: >-
+    FORCE_COLOR
+    MYPY_FORCE_COLOR
+    NO_COLOR
+    PY_COLORS
+    PYTEST_THEME
+    PYTEST_THEME_MODE
+
+  # Suppress noisy pip warnings
+  PIP_DISABLE_PIP_VERSION_CHECK: 'true'
+  PIP_NO_PYTHON_VERSION_WARNING: 'true'
+  PIP_NO_WARN_SCRIPT_LOCATION: 'true'
+
+  # Disable the spinner, noise in GHA; TODO(webknjaz): Fix this upstream
+  # Must be "1".
+  TOX_PARALLEL_NO_SPINNER: 1
+
+
 jobs:
   test:
     strategy:
       matrix:
         python:
-        - 3.7
-        - '3.10'
-        - '3.11'
+        - "3.7"
+        - "3.11"
+        - "3.12"
+        # Workaround for actions/setup-python#508
+        dev:
+        - -dev
         platform:
         - ubuntu-latest
         - macos-latest
         - windows-latest
+        include:
+        - python: "3.8"
+          platform: ubuntu-latest
+        - python: "3.9"
+          platform: ubuntu-latest
+        - python: "3.10"
+          platform: ubuntu-latest
+        - python: pypy3.9
+          platform: ubuntu-latest
     runs-on: ${{ matrix.platform }}
+    continue-on-error: ${{ matrix.python == '3.12' }}
+    steps:
+      - uses: actions/checkout@v3
+      - name: Setup Python
+        uses: actions/setup-python@v4
+        with:
+          python-version: ${{ matrix.python }}${{ matrix.dev }}
+      - name: Install tox
+        run: |
+          python -m pip install tox
+      - name: Run tests
+        run: tox
+
+  docs:
+    runs-on: ubuntu-latest
+    env:
+      TOXENV: docs
     steps:
       - uses: actions/checkout@v3
       - name: Setup Python
         uses: actions/setup-python@v4
         with:
-          python-version: ${{ matrix.python }}-dev
+          python-version: ${{ matrix.python }}${{ matrix.dev }}
       - name: Install tox
         run: |
           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
 
     runs-on: ubuntu-latest
 
@@ -42,6 +110,8 @@
         jobs: ${{ toJSON(needs) }}
 
   release:
+    permissions:
+      contents: write
     needs:
     - check
     if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
@@ -52,7 +122,7 @@
       - name: Setup Python
         uses: actions/setup-python@v4
         with:
-          python-version: "3.11-dev"
+          python-version: 3.11-dev
       - name: Install tox
         run: |
           python -m pip install tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/.readthedocs.yaml 
new/cssutils-2.7.0/.readthedocs.yaml
--- old/cssutils-2.6.0/.readthedocs.yaml        1970-01-01 01:00:00.000000000 
+0100
+++ new/cssutils-2.7.0/.readthedocs.yaml        2023-06-09 03:46:33.000000000 
+0200
@@ -0,0 +1,12 @@
+version: 2
+python:
+  install:
+  - path: .
+    extra_requirements:
+      - docs
+
+# required boilerplate readthedocs/readthedocs.org#10401
+build:
+  os: ubuntu-22.04
+  tools:
+    python: "3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/.readthedocs.yml 
new/cssutils-2.7.0/.readthedocs.yml
--- old/cssutils-2.6.0/.readthedocs.yml 2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/.readthedocs.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-version: 2
-python:
-  install:
-  - path: .
-    extra_requirements:
-      - docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/CHANGES.rst 
new/cssutils-2.7.0/CHANGES.rst
--- old/cssutils-2.6.0/CHANGES.rst      2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/CHANGES.rst      2023-06-09 03:46:33.000000000 +0200
@@ -1,3 +1,12 @@
+v2.7.0
+======
+
+#35: Updated deprecated usage of ``cgi`` module.
+
+#34: Updated deprecated setup/teardown from ``nose`` in tests.
+
+Other miscellaneous cleanup and packaging updates.
+
 v2.6.0
 ======
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/PKG-INFO new/cssutils-2.7.0/PKG-INFO
--- old/cssutils-2.6.0/PKG-INFO 2022-08-22 04:26:05.044268800 +0200
+++ new/cssutils-2.7.0/PKG-INFO 2023-06-09 03:46:59.229071100 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: cssutils
-Version: 2.6.0
+Version: 2.7.0
 Summary: A CSS Cascading Style Sheets library for Python
 Home-page: https://github.com/jaraco/cssutils
 Author: Christof Hoeke
@@ -23,17 +23,18 @@
 License-File: COPYING.LESSER
 
 .. image:: https://img.shields.io/pypi/v/cssutils.svg
-   :target: `PyPI link`_
+   :target: https://pypi.org/project/cssutils
 
 .. image:: https://img.shields.io/pypi/pyversions/cssutils.svg
-   :target: `PyPI link`_
-
-.. _PyPI link: https://pypi.org/project/cssutils
 
 .. image:: https://github.com/jaraco/cssutils/workflows/tests/badge.svg
    :target: 
https://github.com/jaraco/cssutils/actions?query=workflow%3A%22tests%22
    :alt: tests
 
+.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json
+    :target: https://github.com/astral-sh/ruff
+    :alt: Ruff
+
 .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
    :alt: Code style: Black
@@ -41,7 +42,7 @@
 .. image:: https://readthedocs.org/projects/cssutils/badge/?version=latest
    :target: https://cssutils.readthedocs.io/en/latest/?badge=latest
 
-.. image:: https://img.shields.io/badge/skeleton-2022-informational
+.. image:: https://img.shields.io/badge/skeleton-2023-informational
    :target: https://blog.jaraco.com/skeleton
 
 .. image:: https://tidelift.com/badges/package/pypi/cssutils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/README.rst 
new/cssutils-2.7.0/README.rst
--- old/cssutils-2.6.0/README.rst       2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/README.rst       2023-06-09 03:46:33.000000000 +0200
@@ -1,15 +1,16 @@
 .. image:: https://img.shields.io/pypi/v/cssutils.svg
-   :target: `PyPI link`_
+   :target: https://pypi.org/project/cssutils
 
 .. image:: https://img.shields.io/pypi/pyversions/cssutils.svg
-   :target: `PyPI link`_
-
-.. _PyPI link: https://pypi.org/project/cssutils
 
 .. image:: https://github.com/jaraco/cssutils/workflows/tests/badge.svg
    :target: 
https://github.com/jaraco/cssutils/actions?query=workflow%3A%22tests%22
    :alt: tests
 
+.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json
+    :target: https://github.com/astral-sh/ruff
+    :alt: Ruff
+
 .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
    :alt: Code style: Black
@@ -17,7 +18,7 @@
 .. image:: https://readthedocs.org/projects/cssutils/badge/?version=latest
    :target: https://cssutils.readthedocs.io/en/latest/?badge=latest
 
-.. image:: https://img.shields.io/badge/skeleton-2022-informational
+.. image:: https://img.shields.io/badge/skeleton-2023-informational
    :target: https://blog.jaraco.com/skeleton
 
 .. image:: https://tidelift.com/badges/package/pypi/cssutils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/css/colors.py 
new/cssutils-2.7.0/cssutils/css/colors.py
--- old/cssutils-2.6.0/cssutils/css/colors.py   2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/cssutils/css/colors.py   2023-06-09 03:46:33.000000000 
+0200
@@ -33,14 +33,11 @@
     'aqua': (0, 255, 255, 1.0),
     'aliceblue': (240, 248, 255, 1.0),
     'antiquewhite': (250, 235, 215, 1.0),
-    'aqua': (0, 255, 255, 1.0),
     'aquamarine': (127, 255, 212, 1.0),
     'azure': (240, 255, 255, 1.0),
     'beige': (245, 245, 220, 1.0),
     'bisque': (255, 228, 196, 1.0),
-    'black': (0, 0, 0, 1.0),
     'blanchedalmond': (255, 235, 205, 1.0),
-    'blue': (0, 0, 255, 1.0),
     'blueviolet': (138, 43, 226, 1.0),
     'brown': (165, 42, 42, 1.0),
     'burlywood': (222, 184, 135, 1.0),
@@ -79,13 +76,10 @@
     'firebrick': (178, 34, 34, 1.0),
     'floralwhite': (255, 250, 240, 1.0),
     'forestgreen': (34, 139, 34, 1.0),
-    'fuchsia': (255, 0, 255, 1.0),
     'gainsboro': (220, 220, 220, 1.0),
     'ghostwhite': (248, 248, 255, 1.0),
     'gold': (255, 215, 0, 1.0),
     'goldenrod': (218, 165, 32, 1.0),
-    'gray': (128, 128, 128, 1.0),
-    'green': (0, 128, 0, 1.0),
     'greenyellow': (173, 255, 47, 1.0),
     'grey': (128, 128, 128, 1.0),
     'honeydew': (240, 255, 240, 1.0),
@@ -113,11 +107,9 @@
     'lightslategrey': (119, 136, 153, 1.0),
     'lightsteelblue': (176, 196, 222, 1.0),
     'lightyellow': (255, 255, 224, 1.0),
-    'lime': (0, 255, 0, 1.0),
     'limegreen': (50, 205, 50, 1.0),
     'linen': (250, 240, 230, 1.0),
     'magenta': (255, 0, 255, 1.0),
-    'maroon': (128, 0, 0, 1.0),
     'mediumaquamarine': (102, 205, 170, 1.0),
     'mediumblue': (0, 0, 205, 1.0),
     'mediumorchid': (186, 85, 211, 1.0),
@@ -132,9 +124,7 @@
     'mistyrose': (255, 228, 225, 1.0),
     'moccasin': (255, 228, 181, 1.0),
     'navajowhite': (255, 222, 173, 1.0),
-    'navy': (0, 0, 128, 1.0),
     'oldlace': (253, 245, 230, 1.0),
-    'olive': (128, 128, 0, 1.0),
     'olivedrab': (107, 142, 35, 1.0),
     'orange': (255, 165, 0, 1.0),
     'orangered': (255, 69, 0, 1.0),
@@ -149,8 +139,6 @@
     'pink': (255, 192, 203, 1.0),
     'plum': (221, 160, 221, 1.0),
     'powderblue': (176, 224, 230, 1.0),
-    'purple': (128, 0, 128, 1.0),
-    'red': (255, 0, 0, 1.0),
     'rosybrown': (188, 143, 143, 1.0),
     'royalblue': (65, 105, 225, 1.0),
     'saddlebrown': (139, 69, 19, 1.0),
@@ -159,7 +147,6 @@
     'seagreen': (46, 139, 87, 1.0),
     'seashell': (255, 245, 238, 1.0),
     'sienna': (160, 82, 45, 1.0),
-    'silver': (192, 192, 192, 1.0),
     'skyblue': (135, 206, 235, 1.0),
     'slateblue': (106, 90, 205, 1.0),
     'slategray': (112, 128, 144, 1.0),
@@ -168,14 +155,11 @@
     'springgreen': (0, 255, 127, 1.0),
     'steelblue': (70, 130, 180, 1.0),
     'tan': (210, 180, 140, 1.0),
-    'teal': (0, 128, 128, 1.0),
     'thistle': (216, 191, 216, 1.0),
     'tomato': (255, 99, 71, 1.0),
     'turquoise': (64, 224, 208, 1.0),
     'violet': (238, 130, 238, 1.0),
     'wheat': (245, 222, 179, 1.0),
-    'white': (255, 255, 255, 1.0),
     'whitesmoke': (245, 245, 245, 1.0),
-    'yellow': (255, 255, 0, 1.0),
     'yellowgreen': (154, 205, 50, 1.0),
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/css/csspagerule.py 
new/cssutils-2.7.0/cssutils/css/csspagerule.py
--- old/cssutils-2.6.0/cssutils/css/csspagerule.py      2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/css/csspagerule.py      2023-06-09 
03:46:33.000000000 +0200
@@ -257,7 +257,6 @@
                 token[0] == 'ATKEYWORD'
                 and self._normalize(token[1]) in MarginRule.margins
             ):
-
                 # MarginRule
                 m = MarginRule(parentRule=self, 
parentStyleSheet=self.parentStyleSheet)
                 m.cssText = chain([token], g)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/css/cssrule.py 
new/cssutils-2.7.0/cssutils/css/cssrule.py
--- old/cssutils-2.6.0/cssutils/css/cssrule.py  2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/cssutils/css/cssrule.py  2023-06-09 03:46:33.000000000 
+0200
@@ -161,7 +161,6 @@
     """
 
     def __init__(self, parentRule=None, parentStyleSheet=None):
-
         super().__init__(parentRule=parentRule, 
parentStyleSheet=parentStyleSheet)
 
         self.cssRules = cssutils.css.CSSRuleList()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/css/property.py 
new/cssutils-2.7.0/cssutils/css/property.py
--- old/cssutils-2.6.0/cssutils/css/property.py 2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/cssutils/css/property.py 2023-06-09 03:46:33.000000000 
+0200
@@ -466,7 +466,6 @@
                 # TODO: same for @page
 
         if self.name and self.value:
-
             # TODO
             # cv = self.propertyValue
             # if cv.cssValueType == cv.CSS_VARIABLE and not cv.value:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/errorhandler.py 
new/cssutils-2.7.0/cssutils/errorhandler.py
--- old/cssutils-2.6.0/cssutils/errorhandler.py 2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/cssutils/errorhandler.py 2023-06-09 03:46:33.000000000 
+0200
@@ -113,7 +113,6 @@
     instance = None
 
     def __init__(self, log=None, defaultloglevel=logging.INFO, 
raiseExceptions=True):
-
         if ErrorHandler.instance is None:
             ErrorHandler.instance = _ErrorHandler(
                 log=log,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/prodparser.py 
new/cssutils-2.7.0/cssutils/prodparser.py
--- old/cssutils-2.6.0/cssutils/prodparser.py   2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/cssutils/prodparser.py   2023-06-09 03:46:33.000000000 
+0200
@@ -197,7 +197,6 @@
         """
         # print u'TEST for %s in %s' % (token, self)
         while self._round < self._max:
-
             # for this round
             i = self._i
             round = self._round
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/serialize.py 
new/cssutils-2.7.0/cssutils/serialize.py
--- old/cssutils-2.6.0/cssutils/serialize.py    2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/cssutils/serialize.py    2023-06-09 03:46:33.000000000 
+0200
@@ -1080,7 +1080,6 @@
                     else:
                         val = v[1:]
                 else:
-
                     val = self._strip_zeros('%f' % value.value)  # issue #27
 
                 # keep '+' if given
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cssutils-2.6.0/cssutils/tests/test_cssfontfacerule.py 
new/cssutils-2.7.0/cssutils/tests/test_cssfontfacerule.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssfontfacerule.py   2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssfontfacerule.py   2023-06-09 
03:46:33.000000000 +0200
@@ -185,7 +185,7 @@
             ]
         }
         for n, t in list(tests.items()):
-            for (v, valid) in t:
+            for v, valid in t:
                 r = cssutils.css.CSSFontFaceRule()
                 r.style[n] = v
                 assert r.style.getProperty(n).parent == r.style
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_cssimportrule.py 
new/cssutils-2.7.0/cssutils/tests/test_cssimportrule.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssimportrule.py     2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssimportrule.py     2023-06-09 
03:46:33.000000000 +0200
@@ -90,7 +90,6 @@
             '''@IMPORT "str";''': '''@import "str";''',
             '''@import 'str';''': '''@import "str";''',
             '''@import 'str' ;''': '''@import "str";''',
-            '''@import "str";''': None,
             '''@import "str"  ;''': '''@import "str";''',
             r'''@import "\""  ;''': r'''@import "\"";''',
             '''@import '\\'';''': r'''@import "'";''',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_cssproperties.py 
new/cssutils-2.7.0/cssutils/tests/test_cssproperties.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssproperties.py     2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssproperties.py     2023-06-09 
03:46:33.000000000 +0200
@@ -6,7 +6,6 @@
 
 
 class TestCSSProperties:
-
     #    def test_cssvalues(self):
     #        "cssproperties cssvalues"
     #        # does actually return match object, so a very simplified test...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_cssrule.py 
new/cssutils-2.7.0/cssutils/tests/test_cssrule.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssrule.py   2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssrule.py   2023-06-09 
03:46:33.000000000 +0200
@@ -19,7 +19,7 @@
     to use the base class tests too
     """
 
-    def setup(self):
+    def setup_method(self):
         """
         self.r is the rule
         self.rRO the readonly rule
@@ -35,7 +35,7 @@
         self.r_type = cssutils.css.CSSRule.UNKNOWN_RULE
         self.r_typeString = 'UNKNOWN_RULE'
 
-    def teardown(self):
+    def teardown_method(self):
         cssutils.ser.prefs.useDefaults()
 
     def test_init(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cssutils-2.6.0/cssutils/tests/test_cssstyledeclaration.py 
new/cssutils-2.7.0/cssutils/tests/test_cssstyledeclaration.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssstyledeclaration.py       
2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssstyledeclaration.py       
2023-06-09 03:46:33.000000000 +0200
@@ -7,7 +7,7 @@
 
 
 class TestCSSStyleDeclaration(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         self.r = cssutils.css.CSSStyleDeclaration()
 
     def test_init(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_cssstylesheet.py 
new/cssutils-2.7.0/cssutils/tests/test_cssstylesheet.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssstylesheet.py     2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssstylesheet.py     2023-06-09 
03:46:33.000000000 +0200
@@ -7,12 +7,12 @@
 
 
 class TestCSSStyleSheet(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         self.r = cssutils.css.CSSStyleSheet()  # used by basetest
         self.s = self.r  # used here
         self.rule = cssutils.css.CSSStyleRule()
 
-    def teardown(self):
+    def teardown_method(self):
         cssutils.ser.prefs.useDefaults()
 
     def test_init(self):
@@ -318,7 +318,7 @@
         # __contains__
         assert '' in s.namespaces
         assert 'ex2' in s.namespaces
-        assert not ('NOTSET' in s.namespaces)
+        assert "NOTSET" not in s.namespaces
         # __delitem__
         with pytest.raises(xml.dom.NoModificationAllowedErr):
             s.namespaces.__delitem__('ex2')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_cssutils.py 
new/cssutils-2.7.0/cssutils/tests/test_cssutils.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssutils.py  2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssutils.py  2023-06-09 
03:46:33.000000000 +0200
@@ -18,10 +18,10 @@
 
 
 class TestCSSutils(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         cssutils.ser.prefs.useDefaults()
 
-    def teardown(self):
+    def teardown_method(self):
         cssutils.ser.prefs.useDefaults()
 
     exp = '''@import "import/import2.css";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_cssvalue.py 
new/cssutils-2.7.0/cssutils/tests/test_cssvalue.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssvalue.py  2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssvalue.py  2023-06-09 
03:46:33.000000000 +0200
@@ -181,15 +181,11 @@
             'u\\rl(a)': 'url(a)',
             'url("a")': 'url(a)',
             'url(  "a"  )': 'url(a)',
-            'url(a)': 'url(a)',
             'url(";")': 'url(";")',
             'url(",")': 'url(",")',
             'url(")")': 'url(")")',
             '''url("'")''': '''url("'")''',
             '''url('"')''': '''url("\\"")''',
-            '''url("'")''': '''url("'")''',
-            # operator
-            '1': '1',
             '1 2': '1 2',
             '1   2': '1 2',
             '1,2': '1, 2',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cssutils-2.6.0/cssutils/tests/test_cssvariablesdeclaration.py 
new/cssutils-2.7.0/cssutils/tests/test_cssvariablesdeclaration.py
--- old/cssutils-2.6.0/cssutils/tests/test_cssvariablesdeclaration.py   
2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_cssvariablesdeclaration.py   
2023-06-09 03:46:33.000000000 +0200
@@ -7,11 +7,11 @@
 
 
 class TestCSSVariablesDeclaration(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         self.r = cssutils.css.CSSVariablesDeclaration()
         cssutils.ser.prefs.useDefaults()
 
-    def teardown(self):
+    def teardown_method(self):
         cssutils.ser.prefs.useDefaults()
 
     def test_init(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_errorhandler.py 
new/cssutils-2.7.0/cssutils/tests/test_errorhandler.py
--- old/cssutils-2.6.0/cssutils/tests/test_errorhandler.py      2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_errorhandler.py      2023-06-09 
03:46:33.000000000 +0200
@@ -10,7 +10,7 @@
 
 
 class TestErrorHandler:
-    def setup(self):
+    def setup_method(self):
         "replace default log and ignore its output"
         self._oldlog = cssutils.log._log
         self._saved = cssutils.log.raiseExceptions
@@ -18,7 +18,7 @@
         cssutils.log.raiseExceptions = False
         cssutils.log.setLog(logging.getLogger('IGNORED-CSSUTILS-TEST'))
 
-    def teardown(self):
+    def teardown_method(self):
         "reset default log"
         cssutils.log.setLog(self._oldlog)
         # for tests only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_medialist.py 
new/cssutils-2.7.0/cssutils/tests/test_medialist.py
--- old/cssutils-2.6.0/cssutils/tests/test_medialist.py 2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_medialist.py 2023-06-09 
03:46:33.000000000 +0200
@@ -10,7 +10,7 @@
 
 
 class TestMediaList(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         self.r = cssutils.stylesheets.MediaList()
 
     def test_set(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_mediaquery.py 
new/cssutils-2.7.0/cssutils/tests/test_mediaquery.py
--- old/cssutils-2.6.0/cssutils/tests/test_mediaquery.py        2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_mediaquery.py        2023-06-09 
03:46:33.000000000 +0200
@@ -7,7 +7,7 @@
 
 
 class TestMediaQuery(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         self.r = cssutils.stylesheets.MediaQuery()
 
     def test_mediaText(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_prodparser.py 
new/cssutils-2.7.0/cssutils/tests/test_prodparser.py
--- old/cssutils-2.6.0/cssutils/tests/test_prodparser.py        2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_prodparser.py        2023-06-09 
03:46:33.000000000 +0200
@@ -349,7 +349,7 @@
 
 
 class TestProdParser:
-    def setup(self):
+    def setup_method(self):
         pass
 
     def test_parse_keepS(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_properties.py 
new/cssutils-2.7.0/cssutils/tests/test_properties.py
--- old/cssutils-2.6.0/cssutils/tests/test_properties.py        2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_properties.py        2023-06-09 
03:46:33.000000000 +0200
@@ -8,7 +8,7 @@
 
 
 class TestProperties:
-    def setup(self):
+    def setup_method(self):
         "init test values"
         V = {
             '0': ('0', '-0'),  # , '+0'),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_property.py 
new/cssutils-2.7.0/cssutils/tests/test_property.py
--- old/cssutils-2.6.0/cssutils/tests/test_property.py  2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_property.py  2023-06-09 
03:46:33.000000000 +0200
@@ -11,7 +11,7 @@
 
 
 class TestProperty(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         self.r = cssutils.css.property.Property('top', '1px')  # , 'important')
 
     def test_init(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cssutils-2.6.0/cssutils/tests/test_scripts_csscombine.py 
new/cssutils-2.7.0/cssutils/tests/test_scripts_csscombine.py
--- old/cssutils-2.6.0/cssutils/tests/test_scripts_csscombine.py        
2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_scripts_csscombine.py        
2023-06-09 03:46:33.000000000 +0200
@@ -6,7 +6,6 @@
 
 
 class CSSCombine:
-
     C = '@namespace 
s2"uri";s2|sheet-1{top:1px}s2|sheet-2{top:2px}proxy{top:3px}'
 
     def test_combine(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_selector.py 
new/cssutils-2.7.0/cssutils/tests/test_selector.py
--- old/cssutils-2.6.0/cssutils/tests/test_selector.py  2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_selector.py  2023-06-09 
03:46:33.000000000 +0200
@@ -16,7 +16,7 @@
 
 
 class TestSelector(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         self.r = cssutils.css.Selector('*')
 
     def test_init(self):
@@ -170,13 +170,9 @@
             'a> b': 'a > b',
             'a >b': 'a > b',
             'a > b': 'a > b',
-            # +
-            'a+b': 'a + b',
             'a+ b': 'a + b',
             'a +b': 'a + b',
             'a + b': 'a + b',
-            # ~
-            'a~b': 'a ~ b',
             'a~ b': 'a ~ b',
             'a ~b': 'a ~ b',
             'a ~ b': 'a ~ b',
@@ -253,7 +249,6 @@
             '''a[x |= en]''': 'a[x|=en]',
             '''a[ x |= en]''': 'a[x|=en]',
             '''a[x |= en ]''': 'a[x|=en]',
-            '''a[ x |= en]''': 'a[x|=en]',
             '''a [ x |= en]''': 'a [x|=en]',
             # CSS3
             '''a[x^=en]''': None,
@@ -428,8 +423,6 @@
             'a.a.b': (0, 0, 2, 1),
             '.a .a': (0, 0, 2, 0),
             '*[x]': (0, 0, 1, 0),
-            '*[x]': (0, 0, 1, 0),
-            '*[x]': (0, 0, 1, 0),
             '*[x=a]': (0, 0, 1, 0),
             '*[x~=a]': (0, 0, 1, 0),
             '*[x|=a]': (0, 0, 1, 0),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_selectorlist.py 
new/cssutils-2.7.0/cssutils/tests/test_selectorlist.py
--- old/cssutils-2.6.0/cssutils/tests/test_selectorlist.py      2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_selectorlist.py      2023-06-09 
03:46:33.000000000 +0200
@@ -8,7 +8,7 @@
 
 
 class TestSelectorList(basetest.BaseTestCase):
-    def setup(self):
+    def setup_method(self):
         self.r = SelectorList()
 
     def test_init(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_serialize.py 
new/cssutils-2.7.0/cssutils/tests/test_serialize.py
--- old/cssutils-2.6.0/cssutils/tests/test_serialize.py 2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_serialize.py 2023-06-09 
03:46:33.000000000 +0200
@@ -9,10 +9,10 @@
     testcases for cssutils.serialize.Preferences
     """
 
-    def setup(self):
+    def setup_method(self):
         cssutils.ser.prefs.useDefaults()
 
-    def teardown(self):
+    def teardown_method(self):
         cssutils.ser.prefs.useDefaults()
 
     #    def testkeepUnkownAtRules(self):
@@ -631,10 +631,10 @@
     testcases for cssutils.CSSSerializer
     """
 
-    def setup(self):
+    def setup_method(self):
         cssutils.ser.prefs.useDefaults()
 
-    def teardown(self):
+    def teardown_method(self):
         cssutils.ser.prefs.useDefaults()
 
     def test_canonical(self):
@@ -661,7 +661,6 @@
             '''00.0s''': '''0s''',
             '''00.0khz''': '''0khz''',
             '''00.0hz''': '''0hz''',
-            '''00.0khz''': '''0khz''',
             '''00.0deg''': '''0deg''',
             '''00.0rad''': '''0rad''',
             '''00.0grad''': '''0grad''',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_tokenize2.py 
new/cssutils-2.7.0/cssutils/tests/test_tokenize2.py
--- old/cssutils-2.6.0/cssutils/tests/test_tokenize2.py 2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_tokenize2.py 2023-06-09 
03:46:33.000000000 +0200
@@ -12,7 +12,6 @@
 
 
 class TestTokenizer:
-
     testsall = {
         # IDENT
         'äöü߀': [('IDENT', 'äöü߀', 1, 1)],
@@ -498,7 +497,7 @@
         "url('a'": [('URI', "url('a')", 1, 1)],
     }
 
-    def setup(self):
+    def setup_method(self):
         # log = cssutils.errorhandler.ErrorHandler()
         self.tokenizer = Tokenizer()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_util.py 
new/cssutils-2.7.0/cssutils/tests/test_util.py
--- old/cssutils-2.6.0/cssutils/tests/test_util.py      2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_util.py      2023-06-09 
03:46:33.000000000 +0200
@@ -1,7 +1,7 @@
 """Testcases for cssutils.util"""
 
 
-import cgi
+from email.message import Message
 import re
 import urllib.request
 import urllib.error
@@ -31,14 +31,14 @@
         # len
         assert 2 == len(ls)
         # __contains__
-        assert True == (1 in ls)
+        assert True is (1 in ls)
         # get
         assert 1 == ls[0]
         assert 2 == ls[1]
         # del
         del ls[0]
         assert 1 == len(ls)
-        assert False == (1 in ls)
+        assert False is (1 in ls)
         # for in
         for x in ls:
             assert 2 == x
@@ -384,9 +384,11 @@
             def __init__(self, url, contenttype, content, exception=None, 
args=None):
                 self.url = url
 
-                mt, params = cgi.parse_header(contenttype)
-                self.mimetype = mt
-                self.charset = params.get('charset', None)
+                m = Message()
+                m['content-type'] = contenttype
+
+                self.mimetype = m.get_content_type()
+                self.charset = m.get_param('charset', None)
 
                 self.text = content
 
@@ -400,7 +402,6 @@
                 mimetype, charset = self.mimetype, self.charset
 
                 class Info:
-
                     # py2x
                     def gettype(self):
                         return mimetype
@@ -502,7 +503,7 @@
 class TestLazyRegex:
     """Tests for cssutils.util.LazyRegex."""
 
-    def setup(self):
+    def setup_method(self):
         self.lazyre = LazyRegex('f.o')
 
     def test_public_interface(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tests/test_value.py 
new/cssutils-2.7.0/cssutils/tests/test_value.py
--- old/cssutils-2.6.0/cssutils/tests/test_value.py     2022-08-22 
04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/cssutils/tests/test_value.py     2023-06-09 
03:46:33.000000000 +0200
@@ -99,7 +99,7 @@
                 'matrix(0.000092, 0.250001, -0.25, 0.000092, 0, 0)',
             ),
         }
-        for (cssText, (c, len, v)) in list(tests.items()):
+        for cssText, (c, len, v) in list(tests.items()):
             if c is None:
                 c = cssText
             if v is None:
@@ -131,7 +131,7 @@
             'url(x.gif)0 0': ('url(x.gif) 0 0', 3),
             'url(x.gif)no-repeat': ('url(x.gif) no-repeat', 2),
         }
-        for (cssText, (c, len)) in list(tests.items()):
+        for cssText, (c, len) in list(tests.items()):
             if c is None:
                 c = cssText
             pv = cssutils.css.PropertyValue(cssText)
@@ -178,13 +178,11 @@
             'u\\rl(a)': 'url(a)',
             'url("a")': 'url(a)',
             'url(  "a"  )': 'url(a)',
-            'url(a)': 'url(a)',
             'url(";")': 'url(";")',
             'url(",")': 'url(",")',
             'url(")")': 'url(")")',
             '''url("'")''': '''url("'")''',
             '''url('"')''': '''url("\\"")''',
-            '''url("'")''': '''url("'")''',
             # operator
             '1': '1',
             '1 2': '1 2',
@@ -409,7 +407,7 @@
                 'STRING',
             ),
         }
-        for (p, (r, n, t)) in list(tests.items()):
+        for p, (r, n, t) in list(tests.items()):
             v = cssutils.css.Value(p)
             assert r == v.cssText
             assert t == v.type
@@ -443,7 +441,7 @@
             'hsl(1,2%,3%)': ('hsl(1, 2%, 3%)',),
             'hsla(1,2%,3%, 1.0)': ('hsla(1, 2%, 3%, 1)',),
         }
-        for (p, (r,)) in list(tests.items()):
+        for p, (r,) in list(tests.items()):
             v = cssutils.css.ColorValue(p)
             assert v.COLOR_VALUE == v.type
             assert r == v.cssText
@@ -565,7 +563,7 @@
             '  url(some.gif)  ': ('url(some.gif)', 'some.gif', 'URI'),
             'url(   some.gif  )': ('url(some.gif)', 'some.gif', 'URI'),
         }
-        for (p, (r, n, t)) in list(tests.items()):
+        for p, (r, n, t) in list(tests.items()):
             v = cssutils.css.URIValue(p)
             assert r == v.cssText
             assert t == v.type
@@ -639,7 +637,7 @@
             '-1.1%': ('-1.1%', -1.1, '%', 'PERCENTAGE'),
             '+1%': ('+1%', 1, '%', 'PERCENTAGE'),
         }
-        for (p, (r, n, d, t)) in list(tests.items()):
+        for p, (r, n, d, t) in list(tests.items()):
             v = cssutils.css.DimensionValue(p)
             assert r == v.cssText
             assert t == v.type
@@ -665,9 +663,8 @@
             'x(/**/1)': ('x(/**/ 1)', 'x(1)'),
             'x(/**/1/**/)': ('x(/**/ 1 /**/)', 'x(1)'),
             'x(/**/1,x/**/)': ('x(/**/ 1, x /**/)', 'x(1, x)'),
-            'x(1,2)': ('x(1, 2)', None),
         }
-        for (f, (cssText, value)) in list(tests.items()):
+        for f, (cssText, value) in list(tests.items()):
             if value is None:
                 value = cssText
             v = cssutils.css.CSSFunction(f)
@@ -705,7 +702,7 @@
             ),
             'var(C, #f00 )': ('var(C, #f00)', 'C', '#fff'),
         }
-        for (var, (cssText, name, fallback)) in list(tests.items()):
+        for var, (cssText, name, fallback) in list(tests.items()):
             v = cssutils.css.CSSVariable(var)
             assert cssText == v.cssText
             assert 'VARIABLE' == v.type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils/tokenize2.py 
new/cssutils-2.7.0/cssutils/tokenize2.py
--- old/cssutils-2.6.0/cssutils/tokenize2.py    2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/cssutils/tokenize2.py    2023-06-09 03:46:33.000000000 
+0200
@@ -157,7 +157,6 @@
             else:
                 # check all other productions, at least CHAR must match
                 for name, matcher in productions:
-
                     # TODO: USE bad comment?
                     if fullsheet and name == 'CHAR' and has_at(text, pos, 
'/*'):
                         # before CHAR production test for incomplete comment
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils.egg-info/PKG-INFO 
new/cssutils-2.7.0/cssutils.egg-info/PKG-INFO
--- old/cssutils-2.6.0/cssutils.egg-info/PKG-INFO       2022-08-22 
04:26:04.000000000 +0200
+++ new/cssutils-2.7.0/cssutils.egg-info/PKG-INFO       2023-06-09 
03:46:59.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: cssutils
-Version: 2.6.0
+Version: 2.7.0
 Summary: A CSS Cascading Style Sheets library for Python
 Home-page: https://github.com/jaraco/cssutils
 Author: Christof Hoeke
@@ -23,17 +23,18 @@
 License-File: COPYING.LESSER
 
 .. image:: https://img.shields.io/pypi/v/cssutils.svg
-   :target: `PyPI link`_
+   :target: https://pypi.org/project/cssutils
 
 .. image:: https://img.shields.io/pypi/pyversions/cssutils.svg
-   :target: `PyPI link`_
-
-.. _PyPI link: https://pypi.org/project/cssutils
 
 .. image:: https://github.com/jaraco/cssutils/workflows/tests/badge.svg
    :target: 
https://github.com/jaraco/cssutils/actions?query=workflow%3A%22tests%22
    :alt: tests
 
+.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json
+    :target: https://github.com/astral-sh/ruff
+    :alt: Ruff
+
 .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
    :alt: Code style: Black
@@ -41,7 +42,7 @@
 .. image:: https://readthedocs.org/projects/cssutils/badge/?version=latest
    :target: https://cssutils.readthedocs.io/en/latest/?badge=latest
 
-.. image:: https://img.shields.io/badge/skeleton-2022-informational
+.. image:: https://img.shields.io/badge/skeleton-2023-informational
    :target: https://blog.jaraco.com/skeleton
 
 .. image:: https://tidelift.com/badges/package/pypi/cssutils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils.egg-info/SOURCES.txt 
new/cssutils-2.7.0/cssutils.egg-info/SOURCES.txt
--- old/cssutils-2.6.0/cssutils.egg-info/SOURCES.txt    2022-08-22 
04:26:04.000000000 +0200
+++ new/cssutils-2.7.0/cssutils.egg-info/SOURCES.txt    2023-06-09 
03:46:59.000000000 +0200
@@ -1,8 +1,7 @@
 .coveragerc
 .editorconfig
-.flake8
 .pre-commit-config.yaml
-.readthedocs.yml
+.readthedocs.yaml
 CHANGES.rst
 COPYING
 COPYING.LESSER
@@ -11,6 +10,7 @@
 mypy.ini
 pyproject.toml
 pytest.ini
+ruff.toml
 setup.cfg
 tox.ini
 .github/FUNDING.yml
@@ -247,6 +247,7 @@
 docs/html/docs/utilities.html
 docs/html/docs/variables.html
 encutils/__init__.py
+examples/__init__.py
 examples/build.py
 examples/codec.py
 examples/cssencodings.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/cssutils.egg-info/requires.txt 
new/cssutils-2.7.0/cssutils.egg-info/requires.txt
--- old/cssutils-2.6.0/cssutils.egg-info/requires.txt   2022-08-22 
04:26:04.000000000 +0200
+++ new/cssutils-2.7.0/cssutils.egg-info/requires.txt   2023-06-09 
03:46:59.000000000 +0200
@@ -3,18 +3,19 @@
 importlib_metadata
 
 [docs]
-sphinx
+sphinx>=3.5
 jaraco.packaging>=9
 rst.linker>=1.9
+furo
+sphinx-lint
 jaraco.tidelift>=1.4
 
 [testing]
 pytest>=6
 pytest-checkdocs>=2.4
-pytest-flake8
-flake8<5
 pytest-cov
 pytest-enabler>=1.3
+pytest-ruff
 cssselect
 jaraco.test>=5.1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/docs/conf.py 
new/cssutils-2.7.0/docs/conf.py
--- old/cssutils-2.6.0/docs/conf.py     2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/docs/conf.py     2023-06-09 03:46:33.000000000 +0200
@@ -1,8 +1,13 @@
-#!/usr/bin/env python3
-extensions = ['sphinx.ext.autodoc', 'jaraco.packaging.sphinx', 'rst.linker']
+extensions = [
+    'sphinx.ext.autodoc',
+    'jaraco.packaging.sphinx',
+]
 
 master_doc = "index"
+html_theme = "furo"
 
+# Link dates and other references in the changelog
+extensions += ['rst.linker']
 link_files = {
     '../CHANGES.rst': dict(
         using=dict(GH='https://github.com'),
@@ -28,7 +33,7 @@
     )
 }
 
-# Be strict about any broken references:
+# Be strict about any broken references
 nitpicky = True
 
 # Include Python intersphinx mapping to prevent failures
@@ -38,4 +43,7 @@
     'python': ('https://docs.python.org/3', None),
 }
 
+# Preserve authored syntax for defaults
+autodoc_preserve_defaults = True
+
 extensions += ['jaraco.tidelift']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/encutils/__init__.py 
new/cssutils-2.7.0/encutils/__init__.py
--- old/cssutils-2.6.0/encutils/__init__.py     2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/encutils/__init__.py     2023-06-09 03:46:33.000000000 
+0200
@@ -50,9 +50,9 @@
     'EncodingInfo',
 ]
 
+from email.message import Message
 import html.parser
 import io
-import cgi
 import re
 import sys
 import urllib.request
@@ -315,8 +315,11 @@
         pass
 
     if p.content_type:
-        media_type, params = cgi.parse_header(p.content_type)
-        encoding = params.get('charset')  # defaults to None
+        m = Message()
+        m['content-type'] = p.content_type
+
+        media_type = m.get_content_type()
+        encoding = m.get_param('charset')  # defaults to None
         if encoding:
             encoding = encoding.lower()
         if log:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/examples/parse.py 
new/cssutils-2.7.0/examples/parse.py
--- old/cssutils-2.6.0/examples/parse.py        2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/examples/parse.py        2023-06-09 03:46:33.000000000 
+0200
@@ -6,7 +6,6 @@
 
 
 def main():
-
     css = '''/* This is a comment */
     body {
         background: white;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/examples/website.py 
new/cssutils-2.7.0/examples/website.py
--- old/cssutils-2.6.0/examples/website.py      2022-08-22 04:25:33.000000000 
+0200
+++ new/cssutils-2.7.0/examples/website.py      2023-06-09 03:46:33.000000000 
+0200
@@ -114,7 +114,7 @@
     True
     >>> # returns the new Selector:
     >>> sheet.cssRules[1].selectorList.appendSelector('a')
-    cssutils.css.Selector(selectorText=u'a')
+    cssutils.css.Selector(selectorText='a')
     >>> print(sheet.cssText.decode())
     @import url(example.css) tv, print;
     body, a {
@@ -139,7 +139,7 @@
     >>> # work with properties:
     >>> proplist = style.getProperties('background', all=True)
     >>> proplist
-    [cssutils.css.Property(name='background', value=u'white url(paper.png) 
scroll', priority=u''), cssutils.css.Property(name='background', value=u'white 
url(ledger.png) fixed', priority=u'')]
+    [cssutils.css.Property(name='background', value='white url(paper.png) 
scroll', priority=''), cssutils.css.Property(name='background', value='white 
url(ledger.png) fixed', priority='')]
     >>> for prop in proplist: print(prop.value)
     white url(paper.png) scroll
     white url(ledger.png) fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/mypy.ini new/cssutils-2.7.0/mypy.ini
--- old/cssutils-2.6.0/mypy.ini 2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/mypy.ini 2023-06-09 03:46:33.000000000 +0200
@@ -1,2 +1,5 @@
 [mypy]
 ignore_missing_imports = True
+# required to support namespace packages
+# https://github.com/python/mypy/issues/14057
+explicit_package_bases = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/pyproject.toml 
new/cssutils-2.7.0/pyproject.toml
--- old/cssutils-2.6.0/pyproject.toml   2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/pyproject.toml   2023-06-09 03:46:33.000000000 +0200
@@ -13,8 +13,8 @@
 [tool.pytest-enabler.mypy]
 # addopts = "--mypy"
 
-[tool.pytest-enabler.flake8]
-addopts = "--flake8"
-
 [tool.pytest-enabler.cov]
 addopts = "--cov"
+
+[tool.pytest-enabler.ruff]
+addopts = "--ruff"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/pytest.ini 
new/cssutils-2.7.0/pytest.ini
--- old/cssutils-2.6.0/pytest.ini       2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/pytest.ini       2023-06-09 03:46:33.000000000 +0200
@@ -1,17 +1,27 @@
 [pytest]
 norecursedirs=dist build .tox .eggs
 addopts=--doctest-modules
-doctest_optionflags=ALLOW_UNICODE ELLIPSIS
 filterwarnings=
-       # Suppress deprecation warning in flake8
-       ignore:SelectableGroups dict interface is deprecated::flake8
+       ## upstream
+
+       # Ensure ResourceWarnings are emitted
+       default::ResourceWarning
 
        # shopkeep/pytest-black#55
        ignore:<class 'pytest_black.BlackItem'> is not using a cooperative 
constructor:pytest.PytestDeprecationWarning
        ignore:The \(fspath. py.path.local\) argument to BlackItem is 
deprecated.:pytest.PytestDeprecationWarning
        ignore:BlackItem is an Item subclass and should not be a 
collector:pytest.PytestWarning
 
-       # tholo/pytest-flake8#83
-       ignore:<class 'pytest_flake8.Flake8Item'> is not using a cooperative 
constructor:pytest.PytestDeprecationWarning
-       ignore:The \(fspath. py.path.local\) argument to Flake8Item is 
deprecated.:pytest.PytestDeprecationWarning
-       ignore:Flake8Item is an Item subclass and should not be a 
collector:pytest.PytestWarning
+       # shopkeep/pytest-black#67
+       ignore:'encoding' argument not specified::pytest_black
+
+       # realpython/pytest-mypy#152
+       ignore:'encoding' argument not specified::pytest_mypy
+
+       # python/cpython#100750
+       ignore:'encoding' argument not specified::platform
+
+       # pypa/build#615
+       ignore:'encoding' argument not specified::build.env
+
+       ## end upstream
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/ruff.toml new/cssutils-2.7.0/ruff.toml
--- old/cssutils-2.6.0/ruff.toml        1970-01-01 01:00:00.000000000 +0100
+++ new/cssutils-2.7.0/ruff.toml        2023-06-09 03:46:33.000000000 +0200
@@ -0,0 +1,2 @@
+# ignore "line too long" as many lines are too long
+ignore = ["E501"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/setup.cfg new/cssutils-2.7.0/setup.cfg
--- old/cssutils-2.6.0/setup.cfg        2022-08-22 04:26:05.044268800 +0200
+++ new/cssutils-2.7.0/setup.cfg        2023-06-09 03:46:59.229071100 +0200
@@ -39,14 +39,13 @@
 testing = 
        pytest >= 6
        pytest-checkdocs >= 2.4
-       pytest-flake8
-       flake8 < 5
        pytest-black >= 0.3.7; \
        python_implementation != "PyPy"
        pytest-cov
        pytest-mypy >= 0.9.1; \
        python_implementation != "PyPy"
        pytest-enabler >= 1.3
+       pytest-ruff
        
        lxml; \
        python_version < "3.11"
@@ -54,9 +53,12 @@
        importlib_resources; python_version < "3.9"
        jaraco.test >= 5.1
 docs = 
-       sphinx
+       sphinx >= 3.5
        jaraco.packaging >= 9
        rst.linker >= 1.9
+       furo
+       sphinx-lint
+       
        jaraco.tidelift >= 1.4
 
 [options.entry_points]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cssutils-2.6.0/tox.ini new/cssutils-2.7.0/tox.ini
--- old/cssutils-2.6.0/tox.ini  2022-08-22 04:25:33.000000000 +0200
+++ new/cssutils-2.7.0/tox.ini  2023-06-09 03:46:33.000000000 +0200
@@ -8,10 +8,13 @@
 
 [testenv]
 deps =
+setenv =
+       PYTHONWARNDEFAULTENCODING = 1
 commands =
        pytest {posargs}
 usedevelop = True
-extras = testing
+extras =
+       testing
 
 [testenv:docs]
 extras =
@@ -20,6 +23,7 @@
 changedir = docs
 commands =
        python -m sphinx -W --keep-going . {toxinidir}/build/html
+       python -m sphinxlint
 
 [testenv:release]
 skip_install = True

Reply via email to