Hello community,
here is the log from the commit of package python-cssselect2 for
openSUSE:Factory checked in at 2020-04-07 10:19:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cssselect2 (Old)
and /work/SRC/openSUSE:Factory/.python-cssselect2.new.3248 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cssselect2"
Tue Apr 7 10:19:28 2020 rev:6 rq:790649 version:0.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cssselect2/python-cssselect2.changes
2019-09-23 12:09:23.221885787 +0200
+++
/work/SRC/openSUSE:Factory/.python-cssselect2.new.3248/python-cssselect2.changes
2020-04-07 10:19:35.785714054 +0200
@@ -1,0 +2,7 @@
+Wed Apr 1 14:58:45 UTC 2020 - Marketa Calabkova <[email protected]>
+
+- Update to 0.3.0
+ * Drop Python2 support
+ * Improve packaging and testing
+
+-------------------------------------------------------------------
Old:
----
cssselect2-0.2.2.tar.gz
New:
----
cssselect2-0.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cssselect2.spec ++++++
--- /var/tmp/diff_new_pack.i4s1wa/_old 2020-04-07 10:19:36.649715016 +0200
+++ /var/tmp/diff_new_pack.i4s1wa/_new 2020-04-07 10:19:36.653715019 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-cssselect2
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,21 +19,23 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-cssselect2
-Version: 0.2.2
+Version: 0.3.0
Release: 0
Summary: CSS selectors for Python ElementTree
License: BSD-3-Clause
Group: Development/Languages/Python
URL: https://github.com/Kozea/cssselect2/
Source:
https://files.pythonhosted.org/packages/source/c/cssselect2/cssselect2-%{version}.tar.gz
-BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module setuptools >= 39.2.0}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-tinycss2
+Requires: python-webencodings
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module tinycss2}
+BuildRequires: %{python_module webencodings}
# /SECTION
%python_subpackages
@@ -49,6 +51,7 @@
%prep
%setup -q -n cssselect2-%{version}
sed -i '/addopts/d' setup.cfg
+sed -i -e 's/pytest-.*//' setup.cfg
%build
%python_build
@@ -62,7 +65,7 @@
%pytest cssselect2/tests
%files %{python_files}
-%doc CHANGES README.rst
+%doc README.rst
%license LICENSE
%{python_sitelib}/*
++++++ cssselect2-0.2.2.tar.gz -> cssselect2-0.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/.coveragerc
new/cssselect2-0.3.0/.coveragerc
--- old/cssselect2-0.2.2/.coveragerc 2017-06-17 23:22:17.000000000 +0200
+++ new/cssselect2-0.3.0/.coveragerc 1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-[run]
-branch = True
-
-[report]
-exclude_lines =
- pragma: no cover
- def __repr__
- raise NotImplementedError
-omit =
- .*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/.gitignore
new/cssselect2-0.3.0/.gitignore
--- old/cssselect2-0.2.2/.gitignore 2017-06-17 23:38:10.000000000 +0200
+++ new/cssselect2-0.3.0/.gitignore 1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-*.pyc
-*.egg-info
-/.cache
-/.coverage
-/.eggs
-/build
-/dist
-/env
-/htmlcov
-/profile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/.travis.yml
new/cssselect2-0.3.0/.travis.yml
--- old/cssselect2-0.2.2/.travis.yml 2019-06-30 21:51:15.000000000 +0200
+++ new/cssselect2-0.3.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-language: python
-sudo: false
-
-git:
- submodules: false
-
-matrix:
- include:
- - os: linux
- python: 2.7
- - os: linux
- python: 3.5
- - os: linux
- python: 3.6
- - dist: xenial
- python: 3.7
- - os: osx
- language: generic
- env: PYTHON_VERSION=3
-
-before_install:
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew pin numpy gdal postgis; fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew upgrade python; fi
-
-install:
- - pip$PYTHON_VERSION install --upgrade -e.[test]
-
-script:
- - python$PYTHON_VERSION setup.py test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/CHANGES new/cssselect2-0.3.0/CHANGES
--- old/cssselect2-0.2.2/CHANGES 2019-09-06 10:48:44.000000000 +0200
+++ new/cssselect2-0.3.0/CHANGES 1970-01-01 01:00:00.000000000 +0100
@@ -1,37 +0,0 @@
-cssselect2 changelog
-====================
-
-
-Version 0.2.2
--------------
-
-Released on 2019-09-06.
-
-* Optimize lang attribute selectors.
-
-
-Version 0.2.1
--------------
-
-Released on 2017-10-02.
-
-* Fix documentation.
-
-
-Version 0.2.0
--------------
-
-Released on 2017-08-16.
-
-* Fix some selectors for HTML documents with no namespace.
-* Don't crash when the attribute comparator is unknown.
-* Don't crash when there are empty attribute classes.
-* Follow semantic versioning.
-
-
-Version 0.1
------------
-
-Released on 2017-07-07.
-
-* Initial release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/MANIFEST.in
new/cssselect2-0.3.0/MANIFEST.in
--- old/cssselect2-0.2.2/MANIFEST.in 2017-06-17 22:33:38.000000000 +0200
+++ new/cssselect2-0.3.0/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-include README.rst CHANGES LICENSE tox.ini .coveragerc
-recursive-include docs *
-prune docs/_build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/PKG-INFO
new/cssselect2-0.3.0/PKG-INFO
--- old/cssselect2-0.2.2/PKG-INFO 2019-09-06 10:49:59.000000000 +0200
+++ new/cssselect2-0.3.0/PKG-INFO 2020-03-16 22:26:28.000000000 +0100
@@ -1,11 +1,15 @@
Metadata-Version: 2.1
Name: cssselect2
-Version: 0.2.2
+Version: 0.3.0
Summary: CSS selectors for Python ElementTree
-Home-page: http://packages.python.org/cssselect2/
+Home-page: https://cssselect2.readthedocs.io/
Author: Simon Sapin
-Author-email: [email protected]
+Author-email: [email protected]
License: BSD
+Project-URL: Documentation, https://cssselect2.readthedocs.io/
+Project-URL: Code, https://github.com/Kozea/cssselect2/
+Project-URL: Issue tracker, https://github.com/Kozea/cssselect2/issues
+Project-URL: Donation, https://www.patreon.com/kozea
Description: cssselect2: CSS selectors for Python ElementTree
################################################
@@ -28,12 +32,27 @@
Quick facts:
* Free software: BSD licensed
- * Compatible with Python 2.7+ and 3.3+
+ * Compatible with Python 3.5+
* Latest documentation: http://cssselect2.readthedocs.io/
* Source, issues and pull requests `on Github
<https://github.com/Kozea/cssselect2/>`_
* Releases `on PyPI <http://pypi.python.org/pypi/cssselect2>`_
* Install with ``pip install cssselect2``
-Platform: UNKNOWN
+Keywords: css,elementtree
+Platform: Linux
+Platform: macOS
+Platform: Windows
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Topic :: Internet :: WWW/HTTP
+Requires-Python: >=3.5
+Description-Content-Type: text/x-rst
+Provides-Extra: doc
Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/README.rst
new/cssselect2-0.3.0/README.rst
--- old/cssselect2-0.2.2/README.rst 2017-10-01 00:42:21.000000000 +0200
+++ new/cssselect2-0.3.0/README.rst 2020-01-26 14:18:10.000000000 +0100
@@ -20,7 +20,7 @@
Quick facts:
* Free software: BSD licensed
-* Compatible with Python 2.7+ and 3.3+
+* Compatible with Python 3.5+
* Latest documentation: http://cssselect2.readthedocs.io/
* Source, issues and pull requests `on Github
<https://github.com/Kozea/cssselect2/>`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2/VERSION
new/cssselect2-0.3.0/cssselect2/VERSION
--- old/cssselect2-0.2.2/cssselect2/VERSION 1970-01-01 01:00:00.000000000
+0100
+++ new/cssselect2-0.3.0/cssselect2/VERSION 2020-03-16 22:22:15.000000000
+0100
@@ -0,0 +1 @@
+0.3.0
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2/__init__.py
new/cssselect2-0.3.0/cssselect2/__init__.py
--- old/cssselect2-0.2.2/cssselect2/__init__.py 2019-09-06 10:47:13.000000000
+0200
+++ new/cssselect2-0.3.0/cssselect2/__init__.py 2020-01-26 19:53:27.000000000
+0100
@@ -1,4 +1,3 @@
-# coding: utf8
"""
cssselect2
----------
@@ -10,9 +9,8 @@
"""
-from __future__ import unicode_literals
-
import operator
+from pathlib import Path
from webencodings import ascii_lower
@@ -21,7 +19,7 @@
from .parser import SelectorError # noqa
from .tree import ElementWrapper # noqa
-VERSION = '0.2.2'
+VERSION = __version__ = (Path(__file__).parent / 'VERSION').read_text().strip()
class Matcher(object):
@@ -36,8 +34,7 @@
self.order = 0
def add_selector(self, selector, payload):
- """
- Add a selector and its payload to the matcher.
+ """Add a selector and its payload to the matcher.
:param selector:
A :class:`CompiledSelector` object.
@@ -75,8 +72,7 @@
self.other_selectors.append(entry)
def match(self, element):
- """
- Match selectors against the given element.
+ """Match selectors against the given element.
:param element:
An :class:`ElementWrapper`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2/_compat.py
new/cssselect2-0.3.0/cssselect2/_compat.py
--- old/cssselect2-0.2.2/cssselect2/_compat.py 2017-06-17 22:33:38.000000000
+0200
+++ new/cssselect2-0.3.0/cssselect2/_compat.py 1970-01-01 01:00:00.000000000
+0100
@@ -1,9 +0,0 @@
-try:
- basestring = basestring
-except NameError:
- basestring = str
-
-try:
- from itertools import ifilter
-except ImportError:
- ifilter = filter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2/compiler.py
new/cssselect2-0.3.0/cssselect2/compiler.py
--- old/cssselect2-0.2.2/cssselect2/compiler.py 2019-09-06 10:46:12.000000000
+0200
+++ new/cssselect2-0.3.0/cssselect2/compiler.py 2020-01-26 20:13:53.000000000
+0100
@@ -1,7 +1,3 @@
-# coding: utf8
-
-from __future__ import unicode_literals
-
import re
from tinycss2.nth import parse_nth
@@ -18,8 +14,7 @@
"""Compile a (comma-separated) list of selectors.
:param input:
- A :term:`tinycss2:string`,
- or an iterable of tinycss2 :term:`tinycss2:component values` such as
+ A string, or an iterable of tinycss2 component values such as
the :attr:`~tinycss2.ast.QualifiedRule.predule` of a style rule.
:param namespaces:
A optional dictionary of all `namespace prefix declarations
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2/parser.py
new/cssselect2-0.3.0/cssselect2/parser.py
--- old/cssselect2-0.2.2/cssselect2/parser.py 2019-09-06 10:46:09.000000000
+0200
+++ new/cssselect2-0.3.0/cssselect2/parser.py 2020-01-26 20:13:37.000000000
+0100
@@ -1,30 +1,27 @@
-# coding: utf8
"""
cssselect2.parser
-----------------
- A parser for CSS selectors, based on the tinycss tokenizer.
+ A parser for CSS selectors, based on the tinycss2 tokenizer.
:copyright: (c) 2012 by Simon Sapin, 2017 by Guillaume Ayoub.
:license: BSD, see LICENSE for more details.
"""
-from __future__ import unicode_literals
-
from tinycss2 import parse_component_value_list
-from ._compat import basestring
-
__all__ = ['parse']
def parse(input, namespaces=None):
- """
+ """Yield tinycss2 selectors found in given ``input``.
+
:param input:
- A :term:`string`, or an iterable of :term:`component values`.
+ A string, or an iterable of tinycss2 component values.
+
"""
- if isinstance(input, basestring):
+ if isinstance(input, str):
input = parse_component_value_list(input)
tokens = TokenStream(input)
namespaces = namespaces or {}
@@ -197,8 +194,11 @@
def parse_qualified_name(tokens, namespaces, is_attribute=False):
- """Returns None (not a qualified name) or (ns, local),
- in which None is a wildcard. The empty string for ns is "no namespace".
+ """Return ``(namespace, local)`` for given tokens.
+
+ Can also return ``None`` for a wildcard.
+
+ The empty string for ``namespace`` means "no namespace".
"""
peek = tokens.peek()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2/tests/__init__.py
new/cssselect2-0.3.0/cssselect2/tests/__init__.py
--- old/cssselect2-0.2.2/cssselect2/tests/__init__.py 2017-08-14
11:46:37.000000000 +0200
+++ new/cssselect2-0.3.0/cssselect2/tests/__init__.py 2020-01-26
14:19:04.000000000 +0100
@@ -1,4 +1,3 @@
-# coding: utf8
"""
cssselect2.tests
----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2/tests/test_cssselect2.py
new/cssselect2-0.3.0/cssselect2/tests/test_cssselect2.py
--- old/cssselect2-0.2.2/cssselect2/tests/test_cssselect2.py 2019-06-30
21:39:56.000000000 +0200
+++ new/cssselect2-0.3.0/cssselect2/tests/test_cssselect2.py 2020-01-26
15:57:03.000000000 +0100
@@ -1,4 +1,3 @@
-# coding: utf8
"""
cssselect2.tests
----------------
@@ -23,12 +22,12 @@
def load_json(filename):
- return json.load(open(resource(filename)))
+ return json.load(open(resource(filename), encoding='utf-8'))
def get_test_document():
document = etree.parse(resource('content.xhtml'))
- parent = next(e for e in document.getiterator() if e.get('id') == 'root')
+ parent = next(e for e in document.iter() if e.get('id') == 'root')
# Setup namespace tests
for id in ('any-namespace', 'no-namespace'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2/tree.py
new/cssselect2-0.3.0/cssselect2/tree.py
--- old/cssselect2-0.2.2/cssselect2/tree.py 2019-09-06 10:46:09.000000000
+0200
+++ new/cssselect2-0.3.0/cssselect2/tree.py 2020-01-26 20:07:25.000000000
+0100
@@ -1,12 +1,5 @@
-# coding: utf8
-
-from __future__ import unicode_literals
-
-import xml.etree.ElementTree as etree
-
from webencodings import ascii_lower
-from ._compat import basestring, ifilter
from .compiler import compile_selector_list, split_whitespace
@@ -67,10 +60,9 @@
@classmethod
def from_html_root(cls, root, content_language=None):
- """Same as :meth:`from_xml_root`,
- but for documents parsed with an HTML parser
- like `html5lib <http://html5lib.readthedocs.org/>`_,
- which should be the case of documents with the ``text/html`` MIME type.
+ """Same as :meth:`from_xml_root`, but for documents parsed with an
HTML parser
+ like `html5lib`_, which should be the case of documents with the
+ ``text/html`` MIME type.
Compared to :meth:`from_xml_root`,
this makes element attribute names in Selectors case-insensitive.
@@ -99,7 +91,7 @@
if parent is not None:
#: The :attr:`parent`’s children
#: as a list of
- #: ElementTree :class:`~xml.etree.ElementTree.Element`s.
+ #: ElementTree :class:`~xml.etree.ElementTree.Element`\ s.
#: For the root (which has no parent)
self.etree_siblings = parent.etree_children
else:
@@ -233,7 +225,7 @@
"""
tests = self._compile(selectors)
if len(tests) == 1:
- return ifilter(tests[0], self.iter_subtree())
+ return filter(tests[0], self.iter_subtree())
elif selectors:
return (
element
@@ -269,7 +261,7 @@
are not included.
"""
- return [c for c in self.etree_element if isinstance(c.tag, basestring)]
+ return [c for c in self.etree_element if isinstance(c.tag, str)]
@cached_property
def local_name(self):
@@ -315,8 +307,9 @@
# Root elememnt
if is_html:
content_language = None
- for meta in etree_iter(self.etree_element,
- '{http://www.w3.org/1999/xhtml}meta'):
+ iterator = self.etree_element.iter(
+ '{http://www.w3.org/1999/xhtml}meta')
+ for meta in iterator:
http_equiv = meta.get('http-equiv', '')
if ascii_lower(http_equiv) == 'content-language':
content_language = _parse_content_language(
@@ -351,14 +344,6 @@
return tag[1:pos], tag[pos + 1:]
-if hasattr(etree.Element, 'iter'):
- def etree_iter(element, tag=None):
- return element.iter(tag)
-else:
- def etree_iter(element, tag=None):
- return element.getiterator(tag)
-
-
def _parse_content_language(value):
if value is not None and ',' not in value:
parts = split_whitespace(value)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2.egg-info/PKG-INFO
new/cssselect2-0.3.0/cssselect2.egg-info/PKG-INFO
--- old/cssselect2-0.2.2/cssselect2.egg-info/PKG-INFO 2019-09-06
10:49:59.000000000 +0200
+++ new/cssselect2-0.3.0/cssselect2.egg-info/PKG-INFO 2020-03-16
22:26:28.000000000 +0100
@@ -1,11 +1,15 @@
Metadata-Version: 2.1
Name: cssselect2
-Version: 0.2.2
+Version: 0.3.0
Summary: CSS selectors for Python ElementTree
-Home-page: http://packages.python.org/cssselect2/
+Home-page: https://cssselect2.readthedocs.io/
Author: Simon Sapin
-Author-email: [email protected]
+Author-email: [email protected]
License: BSD
+Project-URL: Documentation, https://cssselect2.readthedocs.io/
+Project-URL: Code, https://github.com/Kozea/cssselect2/
+Project-URL: Issue tracker, https://github.com/Kozea/cssselect2/issues
+Project-URL: Donation, https://www.patreon.com/kozea
Description: cssselect2: CSS selectors for Python ElementTree
################################################
@@ -28,12 +32,27 @@
Quick facts:
* Free software: BSD licensed
- * Compatible with Python 2.7+ and 3.3+
+ * Compatible with Python 3.5+
* Latest documentation: http://cssselect2.readthedocs.io/
* Source, issues and pull requests `on Github
<https://github.com/Kozea/cssselect2/>`_
* Releases `on PyPI <http://pypi.python.org/pypi/cssselect2>`_
* Install with ``pip install cssselect2``
-Platform: UNKNOWN
+Keywords: css,elementtree
+Platform: Linux
+Platform: macOS
+Platform: Windows
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Topic :: Internet :: WWW/HTTP
+Requires-Python: >=3.5
+Description-Content-Type: text/x-rst
+Provides-Extra: doc
Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2.egg-info/SOURCES.txt
new/cssselect2-0.3.0/cssselect2.egg-info/SOURCES.txt
--- old/cssselect2-0.2.2/cssselect2.egg-info/SOURCES.txt 2019-09-06
10:49:59.000000000 +0200
+++ new/cssselect2-0.3.0/cssselect2.egg-info/SOURCES.txt 2020-03-16
22:26:28.000000000 +0100
@@ -1,21 +1,16 @@
-.coveragerc
-.gitignore
-.travis.yml
-CHANGES
LICENSE
-MANIFEST.in
README.rst
-example.py
setup.cfg
setup.py
+cssselect2/VERSION
cssselect2/__init__.py
-cssselect2/_compat.py
cssselect2/compiler.py
cssselect2/parser.py
cssselect2/tree.py
cssselect2.egg-info/PKG-INFO
cssselect2.egg-info/SOURCES.txt
cssselect2.egg-info/dependency_links.txt
+cssselect2.egg-info/not-zip-safe
cssselect2.egg-info/requires.txt
cssselect2.egg-info/top_level.txt
cssselect2/tests/LICENSE
@@ -26,6 +21,4 @@
cssselect2/tests/make_valid_selectors_json.sh
cssselect2/tests/shakespeare.html
cssselect2/tests/test_cssselect2.py
-cssselect2/tests/valid_selectors.json
-docs/conf.py
-docs/index.rst
\ No newline at end of file
+cssselect2/tests/valid_selectors.json
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2.egg-info/not-zip-safe
new/cssselect2-0.3.0/cssselect2.egg-info/not-zip-safe
--- old/cssselect2-0.2.2/cssselect2.egg-info/not-zip-safe 1970-01-01
01:00:00.000000000 +0100
+++ new/cssselect2-0.3.0/cssselect2.egg-info/not-zip-safe 2020-01-26
19:55:12.000000000 +0100
@@ -0,0 +1 @@
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/cssselect2.egg-info/requires.txt
new/cssselect2-0.3.0/cssselect2.egg-info/requires.txt
--- old/cssselect2-0.2.2/cssselect2.egg-info/requires.txt 2019-09-06
10:49:59.000000000 +0200
+++ new/cssselect2-0.3.0/cssselect2.egg-info/requires.txt 2020-03-16
22:26:28.000000000 +0100
@@ -1,4 +1,10 @@
+setuptools>=39.2.0
tinycss2
+webencodings
+
+[doc]
+sphinx
+sphinx_rtd_theme
[test]
pytest-runner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/docs/conf.py
new/cssselect2-0.3.0/docs/conf.py
--- old/cssselect2-0.2.2/docs/conf.py 2017-09-30 21:53:41.000000000 +0200
+++ new/cssselect2-0.3.0/docs/conf.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,80 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# cssselect2 documentation build configuration file.
-
-import codecs
-import re
-from os import path
-
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = 'cssselect2'
-copyright = '2012-2017, Simon Sapin'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The full version, including alpha/beta/rc tags.
-release = re.search("VERSION = '([^']+)'", codecs.open(
- path.join(path.dirname(path.dirname(__file__)), 'cssselect2',
'__init__.py'),
- encoding='utf-8',
-).read().strip()).group(1)
-
-# The short X.Y version.
-version = '.'.join(release.split('.')[:2])
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-html_theme = 'sphinx_rtd_theme'
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'cssselect2doc'
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- ('index', 'cssselect2', 'cssselect2 Documentation',
- ['Simon Sapin'], 1)
-]
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- ('index', 'cssselect2', 'cssselect2 Documentation',
- 'Simon Sapin', 'cssselect2', 'One line description of project.',
- 'Miscellaneous'),
-]
-
-# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {
- 'py2': ('http://docs.python.org/2', None),
- 'py3': ('http://docs.python.org/3', None),
- 'webencodings': ('http://pythonhosted.org/webencodings/', None)}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/docs/index.rst
new/cssselect2-0.3.0/docs/index.rst
--- old/cssselect2-0.2.2/docs/index.rst 2017-10-01 01:11:55.000000000 +0200
+++ new/cssselect2-0.3.0/docs/index.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
-.. include:: ../README.rst
-
-
-Installation
-============
-
-Installing cssselect2 with pip_ should Just Work::
-
- pip install cssselect2
-
-This will also automatically install cssselect2’s only dependency, tinycss2_.
-cssselect2 and tinycss2 both only contain Python code and should work on any
-Python implementation, although they’re only tested on CPython.
-
-.. _pip: http://pip-installer.org/
-.. _tinycss2: http://tinycss2.readthedocs.io/
-
-
-Basic Example
-=============
-
-Here is a classical cssselect2 workflow:
-
-- parse a CSS stylesheet using tinycss2_,
-- store the CSS rules in a :meth:`~cssselect2.Matcher` object,
-- parse an HTML document using an ElementTree-like parser,
-- wrap the HTML tree in a :meth:`~cssselect2.ElementWrapper` object,
-- find the CSS rules matching each HTML tag, using the matcher and the wrapper.
-
-.. literalinclude:: ../example.py
-
-.. module:: cssselect2
-.. autoclass:: Matcher
- :members:
-.. autofunction:: compile_selector_list
-.. autoclass:: ElementWrapper
- :members:
-.. autoclass:: SelectorError
-
-
-.. include:: ../CHANGES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/example.py
new/cssselect2-0.3.0/example.py
--- old/cssselect2-0.2.2/example.py 2017-10-01 01:15:17.000000000 +0200
+++ new/cssselect2-0.3.0/example.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
-from xml.etree import ElementTree
-
-import cssselect2
-import tinycss2
-
-
-# Parse CSS and add rules to the matcher
-
-matcher = cssselect2.Matcher()
-
-rules = tinycss2.parse_stylesheet('''
- body { font-size: 2em }
- body p { background: red }
- p { color: blue }
-''', skip_whitespace=True)
-
-for rule in rules:
- selectors = cssselect2.compile_selector_list(rule.prelude)
- selector_string = tinycss2.serialize(rule.prelude)
- content_string = tinycss2.serialize(rule.content)
- payload = (selector_string, content_string)
- for selector in selectors:
- matcher.add_selector(selector, payload)
-
-
-# Parse HTML and find CSS rules applying to each tag
-
-html_tree = ElementTree.fromstring('''
- <html>
- <body>
- <p>Test</p>
- </body>
- </html>
-''')
-wrapper = cssselect2.ElementWrapper.from_html_root(html_tree)
-for element in wrapper.iter_subtree():
- tag = element.etree_element.tag.split('}')[-1]
- print('Found tag "{}" in HTML'.format(tag))
-
- matches = matcher.match(element)
- if matches:
- for match in matches:
- specificity, order, pseudo, payload = match
- selector_string, content_string = payload
- print('Matching selector "{}" ({})'.format(
- selector_string, content_string))
- else:
- print('No rule matching this tag')
- print()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/setup.cfg
new/cssselect2-0.3.0/setup.cfg
--- old/cssselect2-0.2.2/setup.cfg 2019-09-06 10:49:59.000000000 +0200
+++ new/cssselect2-0.3.0/setup.cfg 2020-03-16 22:26:28.000000000 +0100
@@ -1,15 +1,95 @@
-[aliases]
-test = pytest
+[metadata]
+name = cssselect2
+url = https://cssselect2.readthedocs.io/
+version = file: cssselect2/VERSION
+license = BSD
+license_file = LICENSE
+description = CSS selectors for Python ElementTree
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+author = Simon Sapin
+author_email = [email protected]
+platforms =
+ Linux
+ macOS
+ Windows
+keywords =
+ css
+ elementtree
+classifiers =
+ Development Status :: 5 - Production/Stable
+ Intended Audience :: Developers
+ License :: OSI Approved :: BSD License
+ Programming Language :: Python :: 3
+ Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
+ Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3.8
+ Topic :: Internet :: WWW/HTTP
+project_urls =
+ Documentation = https://cssselect2.readthedocs.io/
+ Code = https://github.com/Kozea/cssselect2/
+ Issue tracker = https://github.com/Kozea/cssselect2/issues
+ Donation = https://www.patreon.com/kozea
+
+[options]
+packages = find:
+zip_safe = false
+setup_requires = pytest-runner
+install_requires =
+ setuptools>=39.2.0
+ tinycss2
+ webencodings
+tests_require =
+ pytest-runner
+ pytest-cov
+ pytest-flake8
+ pytest-isort
+python_requires = >= 3.5
+
+[options.package_data]
+cssselect2 = VERSION
+cssselect2.tests = *
+
+[options.extras_require]
+doc =
+ sphinx
+ sphinx_rtd_theme
+test =
+ pytest-runner
+ pytest-cov
+ pytest-flake8
+ pytest-isort
[bdist_wheel]
-universal = 1
+python-tag = py3
+
+[build_sphinx]
+source-dir = docs
+build-dir = docs/_build
+
+[aliases]
+test = pytest
[tool:pytest]
-addopts = --cov=cssselect2 --flake8 --isort cssselect2
-norecursedirs = dist .cache .git build *.egg-info .eggs venv
+addopts = --flake8 --isort cssselect2
+norecursedirs = build dist .cache .eggs .git
+
+[coverage:run]
+branch = True
+include = cssselect2/*
+
+[coverage:report]
+exclude_lines =
+ pragma: no cover
+ def __repr__
+ raise NotImplementedError
+omit =
+ .*
[isort]
default_section = THIRDPARTY
+multi_line_output = 4
[egg_info]
tag_build =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cssselect2-0.2.2/setup.py
new/cssselect2-0.3.0/setup.py
--- old/cssselect2-0.2.2/setup.py 2017-07-07 11:35:07.000000000 +0200
+++ new/cssselect2-0.3.0/setup.py 2020-01-26 19:54:46.000000000 +0100
@@ -1,36 +1,12 @@
#!/usr/bin/env python
-# coding: utf8
-import os.path
-import re
import sys
from setuptools import setup
-ROOT = os.path.dirname(__file__)
-README = open(os.path.join(ROOT, 'README.rst')).read()
-INIT_PY = open(os.path.join(ROOT, 'cssselect2', '__init__.py')).read()
-VERSION = re.search("VERSION = '([^']+)'", INIT_PY).group(1)
+if sys.version_info.major < 3:
+ raise RuntimeError(
+ 'cssselect2 does not support Python 2.x anymore. '
+ 'Please use Python 3 or install an older version of cssselect2.')
-needs_pytest = {'pytest', 'test', 'ptr'}.intersection(sys.argv)
-pytest_runner = ['pytest-runner'] if needs_pytest else []
-
-setup(
- name='cssselect2',
- version=VERSION,
- author='Simon Sapin',
- author_email='[email protected]',
- description='CSS selectors for Python ElementTree',
- long_description=README,
- url='http://packages.python.org/cssselect2/',
- license='BSD',
- packages=['cssselect2'],
- package_data={'cssselect2': ['tests/*']},
- install_requires=['tinycss2'],
- setup_requires=pytest_runner,
- test_suite='cssselect2.tests',
- tests_require=[
- 'pytest-runner', 'pytest-cov', 'pytest-flake8', 'pytest-isort'],
- extras_require={'test': [
- 'pytest-runner', 'pytest-cov', 'pytest-flake8', 'pytest-isort']},
-)
+setup()