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 <[email protected]>
+
+- 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 <[email protected]>
+
+- 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 [](https://badge.fury.io/py/tldextract)
[](https://travis-ci.org/john-kurkowski/tldextract)
+## Python Module [](https://badge.fury.io/py/tldextract)
[](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="[email protected]",
- 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