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


Reply via email to