Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package soupsieve New upstream point release fixing a single bug, fairly minimally. [ Reason ] Fixes: https://github.com/facelessuser/soupsieve/issues/216 [ Impact ] Unable to parse documents with an XML namespace named "self". [ Tests ] The package has good test suite coverage, which is run at build time and in autopkgtests. [ Risks ] The change is pretty straightforward, and makes the code a little simpler (passing a dict instead of kwargs). This is a key package. The new version has already aged for 25 days. [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing unblock soupsieve/2.2.1-1
diff -Nru soupsieve-2.2/debian/changelog soupsieve-2.2.1/debian/changelog --- soupsieve-2.2/debian/changelog 2021-02-11 17:00:48.000000000 -0400 +++ soupsieve-2.2.1/debian/changelog 2021-03-28 14:15:20.000000000 -0400 @@ -1,3 +1,9 @@ +soupsieve (2.2.1-1) unstable; urgency=medium + + * New upstream point release. + + -- Stefano Rivera <stefa...@debian.org> Sun, 28 Mar 2021 11:15:20 -0700 + soupsieve (2.2-1) unstable; urgency=medium * New upstream release. diff -Nru soupsieve-2.2/docs/src/markdown/about/changelog.md soupsieve-2.2.1/docs/src/markdown/about/changelog.md --- soupsieve-2.2/docs/src/markdown/about/changelog.md 2021-02-09 15:57:00.000000000 -0400 +++ soupsieve-2.2.1/docs/src/markdown/about/changelog.md 2021-03-19 00:59:26.000000000 -0400 @@ -1,5 +1,9 @@ # Changelog +## 2.2.1 + +- **FIX**: Fix an issue with namespaces when one of the keys is `self`. + ## 2.2 - **NEW**: `:link` and `:any-link` no longer include `#!html <link>` due to a change in the level 4 selector diff -Nru soupsieve-2.2/docs/src/markdown/selectors/pseudo-classes.md soupsieve-2.2.1/docs/src/markdown/selectors/pseudo-classes.md --- soupsieve-2.2/docs/src/markdown/selectors/pseudo-classes.md 2021-02-09 15:57:00.000000000 -0400 +++ soupsieve-2.2.1/docs/src/markdown/selectors/pseudo-classes.md 2021-03-19 00:59:26.000000000 -0400 @@ -867,7 +867,7 @@ Level 4 CSS adds the additional pattern in the form `an+b of S` where `S` represents a selector list. `an+b` can also be substituted with `even` or `odd`. - Wen using the pattern `an+b of S`, the pattern will select elements from a sub-group of sibling elements that all + When using the pattern `an+b of S`, the pattern will select elements from a sub-group of sibling elements that all match the selector list (`[of S]?`), based on their position within that sub-group, using the pattern `an+b`, for every positive integer or zero value of `n`. The index of the first element is `1`. The values `a` and `b` must both be integers. @@ -961,7 +961,7 @@ Level 4 CSS adds the additional pattern in the form `an+b of S` where `S` represents a selector list. `an+b` can also be substituted with `even` or `odd`. - Wen using the pattern `an+b of S`, the pattern will select elements from a sub-group of sibling elements that all + When using the pattern `an+b of S`, the pattern will select elements from a sub-group of sibling elements that all match the selector list (`[of S]?`), based on their position within that sub-group, using the pattern `an+b`, for every positive integer or zero value of `n`. The index of the first element is `1`. The values `a` and `b` must both be integers. Elements will be counted from the end. diff -Nru soupsieve-2.2/PKG-INFO soupsieve-2.2.1/PKG-INFO --- soupsieve-2.2/PKG-INFO 2021-02-09 15:57:13.208084600 -0400 +++ soupsieve-2.2.1/PKG-INFO 2021-03-19 00:59:30.715582600 -0400 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: soupsieve -Version: 2.2 +Version: 2.2.1 Summary: A modern CSS selector implementation for Beautiful Soup. Home-page: https://github.com/facelessuser/soupsieve Author: Isaac Muse diff -Nru soupsieve-2.2/requirements/docs.txt soupsieve-2.2.1/requirements/docs.txt --- soupsieve-2.2/requirements/docs.txt 2021-02-09 15:57:00.000000000 -0400 +++ soupsieve-2.2.1/requirements/docs.txt 2021-03-19 00:59:26.000000000 -0400 @@ -1,4 +1,4 @@ -mkdocs_pymdownx_material_extras==1.1.3 +mkdocs_pymdownx_material_extras==1.2.2 mkdocs-git-revision-date-localized-plugin mkdocs-minify-plugin pyspelling diff -Nru soupsieve-2.2/soupsieve/css_types.py soupsieve-2.2.1/soupsieve/css_types.py --- soupsieve-2.2/soupsieve/css_types.py 2021-02-09 15:57:00.000000000 -0400 +++ soupsieve-2.2.1/soupsieve/css_types.py 2021-03-19 00:59:26.000000000 -0400 @@ -89,10 +89,10 @@ class ImmutableDict(Mapping): """Hashable, immutable dictionary.""" - def __init__(self, *args, **kwargs): + def __init__(self, arg): """Initialize.""" - arg = args[0] if args else kwargs + arg is_dict = isinstance(arg, dict) if ( is_dict and not all([isinstance(v, Hashable) for v in arg.values()]) or @@ -100,7 +100,7 @@ ): raise TypeError('All values must be hashable') - self._d = dict(*args, **kwargs) + self._d = dict(arg) self._hash = hash(tuple([(type(x), x, type(y), y) for x, y in sorted(self._d.items())])) def __iter__(self): @@ -133,39 +133,37 @@ class Namespaces(ImmutableDict): """Namespaces.""" - def __init__(self, *args, **kwargs): + def __init__(self, arg): """Initialize.""" # If there are arguments, check the first index. # `super` should fail if the user gave multiple arguments, # so don't bother checking that. - arg = args[0] if args else kwargs is_dict = isinstance(arg, dict) if is_dict and not all([isinstance(k, str) and isinstance(v, str) for k, v in arg.items()]): raise TypeError('Namespace keys and values must be Unicode strings') elif not is_dict and not all([isinstance(k, str) and isinstance(v, str) for k, v in arg]): raise TypeError('Namespace keys and values must be Unicode strings') - super(Namespaces, self).__init__(*args, **kwargs) + super(Namespaces, self).__init__(arg) class CustomSelectors(ImmutableDict): """Custom selectors.""" - def __init__(self, *args, **kwargs): + def __init__(self, arg): """Initialize.""" # If there are arguments, check the first index. # `super` should fail if the user gave multiple arguments, # so don't bother checking that. - arg = args[0] if args else kwargs is_dict = isinstance(arg, dict) if is_dict and not all([isinstance(k, str) and isinstance(v, str) for k, v in arg.items()]): raise TypeError('CustomSelectors keys and values must be Unicode strings') elif not is_dict and not all([isinstance(k, str) and isinstance(v, str) for k, v in arg]): raise TypeError('CustomSelectors keys and values must be Unicode strings') - super(CustomSelectors, self).__init__(*args, **kwargs) + super(CustomSelectors, self).__init__(arg) class Selector(Immutable): diff -Nru soupsieve-2.2/soupsieve/__init__.py soupsieve-2.2.1/soupsieve/__init__.py --- soupsieve-2.2/soupsieve/__init__.py 2021-02-09 15:57:00.000000000 -0400 +++ soupsieve-2.2.1/soupsieve/__init__.py 2021-03-19 00:59:26.000000000 -0400 @@ -44,11 +44,11 @@ """Compile CSS pattern.""" if namespaces is not None: - namespaces = ct.Namespaces(**namespaces) + namespaces = ct.Namespaces(namespaces) custom = kwargs.get('custom') if custom is not None: - custom = ct.CustomSelectors(**custom) + custom = ct.CustomSelectors(custom) if isinstance(pattern, SoupSieve): if flags: diff -Nru soupsieve-2.2/soupsieve/__meta__.py soupsieve-2.2.1/soupsieve/__meta__.py --- soupsieve-2.2/soupsieve/__meta__.py 2021-02-09 15:57:00.000000000 -0400 +++ soupsieve-2.2.1/soupsieve/__meta__.py 2021-03-19 00:59:26.000000000 -0400 @@ -188,5 +188,5 @@ return Version(major, minor, micro, release, pre, post, dev) -__version_info__ = Version(2, 2, 0, "final") +__version_info__ = Version(2, 2, 1, "final") __version__ = __version_info__._get_canonical() diff -Nru soupsieve-2.2/soupsieve.egg-info/PKG-INFO soupsieve-2.2.1/soupsieve.egg-info/PKG-INFO --- soupsieve-2.2/soupsieve.egg-info/PKG-INFO 2021-02-09 15:57:12.000000000 -0400 +++ soupsieve-2.2.1/soupsieve.egg-info/PKG-INFO 2021-03-19 00:59:30.000000000 -0400 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: soupsieve -Version: 2.2 +Version: 2.2.1 Summary: A modern CSS selector implementation for Beautiful Soup. Home-page: https://github.com/facelessuser/soupsieve Author: Isaac Muse diff -Nru soupsieve-2.2/tests/test_level3/test_not.py soupsieve-2.2.1/tests/test_level3/test_not.py --- soupsieve-2.2/tests/test_level3/test_not.py 2021-02-09 15:57:00.000000000 -0400 +++ soupsieve-2.2.1/tests/test_level3/test_not.py 2021-03-19 00:59:26.000000000 -0400 @@ -52,6 +52,6 @@ def test_none_inputs(self): """Test weird inputs.""" - soup = BS('<span foo-"something">text</span>', 'html.parser') + soup = BS('<span foo="something">text</span>', 'html.parser') soup.span['foo'] = None self.assertEqual(len(soup.select('span:not([foo])')), 0)