Hello community, here is the log from the commit of package python-tldextract for openSUSE:Factory checked in at 2020-09-21 17:17:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-tldextract (Old) and /work/SRC/openSUSE:Factory/.python-tldextract.new.4249 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tldextract" Mon Sep 21 17:17:08 2020 rev:7 rq:835186 version:2.2.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-tldextract/python-tldextract.changes 2020-05-19 14:48:08.228025829 +0200 +++ /work/SRC/openSUSE:Factory/.python-tldextract.new.4249/python-tldextract.changes 2020-09-21 17:19:36.739752336 +0200 @@ -1,0 +2,20 @@ +Thu Sep 17 11:47:16 UTC 2020 - Dirk Mueller <dmuel...@suse.com> + +- update to 2.2.3: + * Fix concurrent access to cache file when using tldextract in multiple threads ([#146](https://github.com/john-kurkowski/tldextract/pull/146)) + * Relocate version number, to avoid costly imports ([#187](https://github.com/john-kurkowski/tldextract/pull/187)) + * Catch `IndexError` caused by upstream punycode bug ([#200](https://github.com/john-kurkowski/tldextract/pull/200)) + * Drop support for EOL Python 3.4 ([#186](https://github.com/john-kurkowski/tldextract/pull/186)) + * Explain warning better + +------------------------------------------------------------------- +Wed Sep 16 21:32:26 UTC 2020 - Dirk Mueller <dmuel...@suse.com> + +- update to 2.2.2: + * Fix concurrent access to cache file when using tldextract in multiple threads ([#146](https://github.com/john-kurkowski/tldextract/pull/146)) + * Relocate version number, to avoid costly imports ([#187](https://github.com/john-kurkowski/tldextract/pull/187)) + * Catch `IndexError` caused by upstream punycode bug ([#200](https://github.com/john-kurkowski/tldextract/pull/200)) + * Drop support for EOL Python 3.4 ([#186](https://github.com/john-kurkowski/tldextract/pull/186)) + * Explain warning better + +------------------------------------------------------------------- Old: ---- tldextract-2.2.2.tar.gz New: ---- tldextract-2.2.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-tldextract.spec ++++++ --- /var/tmp/diff_new_pack.50B1vA/_old 2020-09-21 17:19:38.643753805 +0200 +++ /var/tmp/diff_new_pack.50B1vA/_new 2020-09-21 17:19:38.647753809 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-tldextract -Version: 2.2.2 +Version: 2.2.3 Release: 0 Summary: Python module to separate the TLD of a URL License: BSD-3-Clause @@ -35,6 +35,7 @@ BuildRequires: %{python_module requests} >= 2.1.0 BuildRequires: %{python_module responses} ### END test requirements +BuildRequires: %{python_module setuptools_scm} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros ++++++ tldextract-2.2.2.tar.gz -> tldextract-2.2.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/.gitignore new/tldextract-2.2.3/.gitignore --- old/tldextract-2.2.2/.gitignore 2015-11-18 17:15:06.000000000 +0100 +++ new/tldextract-2.2.3/.gitignore 2020-08-06 02:45:18.000000000 +0200 @@ -1,8 +1,10 @@ *.pyc *.tld_set .cache +.eggs build dist +tldextract/_version.py tldextract_app/tldextract tldextract_app/web tldextract.egg-info diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/CHANGELOG.md new/tldextract-2.2.3/CHANGELOG.md --- old/tldextract-2.2.2/CHANGELOG.md 2019-10-16 02:07:39.000000000 +0200 +++ new/tldextract-2.2.3/CHANGELOG.md 2020-08-06 03:20:00.000000000 +0200 @@ -3,6 +3,15 @@ After upgrading, update your cache file by deleting it or via `tldextract --update`. +## 2.2.3 (2020-08-05) + +* Bugfixes + * Fix concurrent access to cache file when using tldextract in multiple threads ([#146](https://github.com/john-kurkowski/tldextract/pull/146)) + * Relocate version number, to avoid costly imports ([#187](https://github.com/john-kurkowski/tldextract/pull/187)) + * Catch `IndexError` caused by upstream punycode bug ([#200](https://github.com/john-kurkowski/tldextract/pull/200)) + * Drop support for EOL Python 3.4 ([#186](https://github.com/john-kurkowski/tldextract/pull/186)) + * Explain warning better + ## 2.2.2 (2019-10-15) * Bugfixes @@ -16,7 +25,6 @@ * Use the latest pylint that works in Python 2 * Appease pylint with the new rules * Support Python 3.8-dev - * Drop support for EOL Python 3.4 ## 2.2.1 (2019-03-05) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/LICENSE new/tldextract-2.2.3/LICENSE --- old/tldextract-2.2.2/LICENSE 2019-10-16 02:07:21.000000000 +0200 +++ new/tldextract-2.2.3/LICENSE 2020-08-06 03:10:05.000000000 +0200 @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2019, John Kurkowski +Copyright (c) 2020, John Kurkowski All rights reserved. Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/PKG-INFO new/tldextract-2.2.3/PKG-INFO --- old/tldextract-2.2.2/PKG-INFO 2019-10-16 02:10:39.000000000 +0200 +++ new/tldextract-2.2.3/PKG-INFO 2020-08-06 03:35:15.232657400 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tldextract -Version: 2.2.2 +Version: 2.2.3 Summary: Accurately separate the TLD from the registered domain and subdomains of a URL, using the Public Suffix List. By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well. Home-page: https://github.com/john-kurkowski/tldextract Author: John Kurkowski @@ -44,5 +44,5 @@ Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 -Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.* Description-Content-Type: text/markdown diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/README.md new/tldextract-2.2.3/README.md --- old/tldextract-2.2.2/README.md 2019-10-16 02:07:21.000000000 +0200 +++ new/tldextract-2.2.3/README.md 2020-08-06 02:34:18.000000000 +0200 @@ -1,6 +1,6 @@ # tldextract -## Python Module [![PyPI version](https://badge.fury.io/py/tldextract.svg)](https://badge.fury.io/py/tldextract) [![Build Status](https://travis-ci.org/john-kurkowski/tldextract.svg?branch=master)](https://travis-ci.org/john-kurkowski/tldextract) +## Python Module [![PyPI version](https://badge.fury.io/py/tldextract.svg)](https://badge.fury.io/py/tldextract) [![Build Status](https://travis-ci.com/john-kurkowski/tldextract.svg?branch=master)](https://travis-ci.com/john-kurkowski/tldextract) `tldextract` accurately separates the gTLD or ccTLD (generic or country code top-level domain) from the registered domain and subdomains of a URL. For diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/pylintrc new/tldextract-2.2.3/pylintrc --- old/tldextract-2.2.2/pylintrc 2019-10-16 02:07:21.000000000 +0200 +++ new/tldextract-2.2.3/pylintrc 2020-08-06 02:45:18.000000000 +0200 @@ -358,7 +358,7 @@ max-parents=7 # Maximum number of attributes for a class (see R0902). -max-attributes=7 +max-attributes=8 # Minimum number of public methods for a class (see R0903). min-public-methods=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/setup.py new/tldextract-2.2.3/setup.py --- old/tldextract-2.2.2/setup.py 2019-10-16 02:07:39.000000000 +0200 +++ new/tldextract-2.2.3/setup.py 2020-08-06 02:45:18.000000000 +0200 @@ -26,31 +26,37 @@ """ import sys + from setuptools import setup -if sys.version_info < (2, 7): - raise RuntimeError("Python 2.6 is EOL and no longer supported. " - "Please upgrade your Python or use an older " - "version of tldextract.") +if sys.version_info < (3, 5) and not ( + sys.version_info[0] == 2 and sys.version_info[1] == 7 +): + raise RuntimeError( + "Python %s.%s is EOL and no longer supported. " + "Please upgrade your Python or use an older " + "version of tldextract." % (sys.version_info[0], sys.version_info[1]) + ) -INSTALL_REQUIRES = ["setuptools", "idna", "requests>=2.1.0", "requests-file>=1.4"] +INSTALL_REQUIRES = ["idna", "requests>=2.1.0", "requests-file>=1.4"] setup( name="tldextract", - version="2.2.2", author="John Kurkowski", author_email="john.kurkow...@gmail.com", - description=("Accurately separate the TLD from the registered domain and " - "subdomains of a URL, using the Public Suffix List. By " - "default, this includes the public ICANN TLDs and their " - "exceptions. You can optionally support the Public Suffix " - "List's private domains as well."), + description=( + "Accurately separate the TLD from the registered domain and " + "subdomains of a URL, using the Public Suffix List. By " + "default, this includes the public ICANN TLDs and their " + "exceptions. You can optionally support the Public Suffix " + "List's private domains as well." + ), license="BSD License", keywords="tld domain subdomain url parse extract urlparse urlsplit public suffix list", url="https://github.com/john-kurkowski/tldextract", - packages=['tldextract'], + packages=["tldextract"], include_package_data=True, - python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', + python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", long_description=__doc__, long_description_content_type="text/markdown", classifiers=[ @@ -65,9 +71,8 @@ "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", ], - entry_points={ - 'console_scripts': [ - 'tldextract = tldextract.cli:main', ] - }, + entry_points={"console_scripts": ["tldextract = tldextract.cli:main",]}, + setup_requires=["setuptools_scm"], + use_scm_version={"write_to": "tldextract/_version.py",}, install_requires=INSTALL_REQUIRES, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tests/main_test.py new/tldextract-2.2.3/tests/main_test.py --- old/tldextract-2.2.2/tests/main_test.py 2019-10-16 02:07:21.000000000 +0200 +++ new/tldextract-2.2.3/tests/main_test.py 2020-08-06 02:34:18.000000000 +0200 @@ -127,6 +127,9 @@ assert_extract('http://xn--zckzap6140b352by.blog.so-net.xn--wcvs22d.hk', ('xn--zckzap6140b352by.blog.so-net.xn--wcvs22d.hk', 'xn--zckzap6140b352by.blog', 'so-net', 'xn--wcvs22d.hk')) + assert_extract('http://xn--&.so-net.com', + ('xn--&.so-net.com', + 'xn--&', 'so-net', 'com')) def test_puny_with_non_puny(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tldextract/__init__.py new/tldextract-2.2.3/tldextract/__init__.py --- old/tldextract-2.2.2/tldextract/__init__.py 2017-10-25 07:05:27.000000000 +0200 +++ new/tldextract-2.2.3/tldextract/__init__.py 2020-08-06 02:45:18.000000000 +0200 @@ -1,4 +1,5 @@ """Export tldextract's public interface.""" -from .cli import __version__ from .tldextract import extract, TLDExtract + +from ._version import version as __version__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tldextract/_version.py new/tldextract-2.2.3/tldextract/_version.py --- old/tldextract-2.2.2/tldextract/_version.py 1970-01-01 01:00:00.000000000 +0100 +++ new/tldextract-2.2.3/tldextract/_version.py 2020-08-06 03:35:15.000000000 +0200 @@ -0,0 +1,4 @@ +# coding: utf-8 +# file generated by setuptools_scm +# don't change, don't track in version control +version = '2.2.3' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tldextract/cli.py new/tldextract-2.2.3/tldextract/cli.py --- old/tldextract-2.2.2/tldextract/cli.py 2019-10-16 02:07:21.000000000 +0200 +++ new/tldextract-2.2.3/tldextract/cli.py 2020-08-06 02:45:18.000000000 +0200 @@ -4,15 +4,8 @@ import logging import sys -try: - import pkg_resources - __version__ = pkg_resources.get_distribution('tldextract').version # pylint: disable=no-member -except ImportError: - __version__ = '(local)' -except pkg_resources.DistributionNotFound: - __version__ = '(local)' - from .tldextract import TLDExtract +from ._version import version as __version__ try: unicode @@ -30,7 +23,7 @@ prog='tldextract', description='Parse hostname from a url or fqdn') - parser.add_argument('--version', action='version', version='%(prog)s ' + __version__) # pylint: disable=no-member + parser.add_argument('--version', action='version', version='%(prog)s ' + __version__) parser.add_argument('input', metavar='fqdn|url', type=unicode, nargs='*', help='fqdn or url') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tldextract/tldextract.py new/tldextract-2.2.3/tldextract/tldextract.py --- old/tldextract-2.2.2/tldextract/tldextract.py 2019-10-16 02:07:21.000000000 +0200 +++ new/tldextract-2.2.3/tldextract/tldextract.py 2020-08-06 02:56:41.000000000 +0200 @@ -58,6 +58,7 @@ import os import pkgutil import re +import threading import idna @@ -193,6 +194,7 @@ self.suffix_list_urls = tuple(url.strip() for url in suffix_list_urls if url.strip()) self.cache_file = os.path.expanduser(cache_file or '') + self.cache_file_lock = threading.Lock() self.fallback_to_snapshot = fallback_to_snapshot if not (self.suffix_list_urls or self.cache_file or self.fallback_to_snapshot): raise ValueError("The arguments you have provided disable all ways for tldextract " @@ -264,8 +266,8 @@ if self._extractor: return self._extractor - - tlds = self._get_cached_tlds() + with self.cache_file_lock: + tlds = self._get_cached_tlds() if tlds: tlds.extend(self.extra_suffixes) self._extractor = _PublicSuffixListTLDExtractor(tlds) @@ -289,7 +291,8 @@ raise Exception("tlds is empty, but fallback_to_snapshot is set" " to false. Cannot proceed without tlds.") - self._cache_tlds(tlds) + with self.cache_file_lock: + self._cache_tlds(tlds) tlds.extend(self.extra_suffixes) self._extractor = _PublicSuffixListTLDExtractor(tlds) @@ -342,7 +345,16 @@ with open(self.cache_file, 'w') as cache_file: json.dump(tlds, cache_file) except IOError as ioe: - LOG.warning("unable to cache TLDs in file %s: %s", self.cache_file, ioe) + LOG.warning( + ( + "unable to cache TLDs in file %s. This will refresh the " + "Public Suffix List over HTTP every app startup. " + "Construct your `TLDExtract` with a writable `cache_file` or " + "set `cache_file=False` to silence this warning. %s" + ), + self.cache_file, + ioe, + ) TLD_EXTRACTOR = TLDExtract() @@ -403,6 +415,6 @@ if looks_like_puny: try: return idna.decode(label.encode('ascii')).lower() - except UnicodeError: + except (UnicodeError, IndexError): pass return lowered diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tldextract.egg-info/PKG-INFO new/tldextract-2.2.3/tldextract.egg-info/PKG-INFO --- old/tldextract-2.2.2/tldextract.egg-info/PKG-INFO 2019-10-16 02:10:39.000000000 +0200 +++ new/tldextract-2.2.3/tldextract.egg-info/PKG-INFO 2020-08-06 03:35:15.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tldextract -Version: 2.2.2 +Version: 2.2.3 Summary: Accurately separate the TLD from the registered domain and subdomains of a URL, using the Public Suffix List. By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well. Home-page: https://github.com/john-kurkowski/tldextract Author: John Kurkowski @@ -44,5 +44,5 @@ Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 -Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.* Description-Content-Type: text/markdown diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tldextract.egg-info/SOURCES.txt new/tldextract-2.2.3/tldextract.egg-info/SOURCES.txt --- old/tldextract-2.2.2/tldextract.egg-info/SOURCES.txt 2019-10-16 02:10:39.000000000 +0200 +++ new/tldextract-2.2.3/tldextract.egg-info/SOURCES.txt 2020-08-06 03:35:15.000000000 +0200 @@ -20,6 +20,7 @@ tldextract/.tld_set_snapshot tldextract/__init__.py tldextract/__main__.py +tldextract/_version.py tldextract/cli.py tldextract/remote.py tldextract/tldextract.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tldextract.egg-info/requires.txt new/tldextract-2.2.3/tldextract.egg-info/requires.txt --- old/tldextract-2.2.2/tldextract.egg-info/requires.txt 2019-10-16 02:10:39.000000000 +0200 +++ new/tldextract-2.2.3/tldextract.egg-info/requires.txt 2020-08-06 03:35:15.000000000 +0200 @@ -1,4 +1,3 @@ -setuptools idna requests>=2.1.0 requests-file>=1.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tldextract-2.2.2/tox.ini new/tldextract-2.2.3/tox.ini --- old/tldextract-2.2.2/tox.ini 2019-10-16 02:07:21.000000000 +0200 +++ new/tldextract-2.2.3/tox.ini 2020-08-06 02:34:18.000000000 +0200 @@ -16,5 +16,8 @@ [testenv:codestyle] deps = pycodestyle +commands = pycodestyle tldextract tldextract_app tests {posargs} + +[pycodestyle] # E501 - line too long -commands = pycodestyle tldextract tldextract_app tests --ignore=E501 {posargs} +ignore = E501