Hello community,

here is the log from the commit of package python-passlib for openSUSE:Factory 
checked in at 2019-10-09 15:17:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-passlib (Old)
 and      /work/SRC/openSUSE:Factory/.python-passlib.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-passlib"

Wed Oct  9 15:17:27 2019 rev:19 rq:734915 version:1.7.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-passlib/python-passlib.changes    
2019-03-19 10:00:25.587942976 +0100
+++ /work/SRC/openSUSE:Factory/.python-passlib.new.2352/python-passlib.changes  
2019-10-09 15:17:27.740806670 +0200
@@ -1,0 +2,6 @@
+Thu Oct  3 15:09:46 UTC 2019 - John Vandenberg <[email protected]>
+
+- Add two patches to fix Python 3.8 compatibility
+  * pr_9_1.patch and pr_9_2.patch
+
+-------------------------------------------------------------------

New:
----
  pr_9_1.patch
  pr_9_2.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-passlib.spec ++++++
--- /var/tmp/diff_new_pack.MyNBJB/_old  2019-10-09 15:17:28.452804836 +0200
+++ /var/tmp/diff_new_pack.MyNBJB/_new  2019-10-09 15:17:28.472804785 +0200
@@ -26,6 +26,9 @@
 URL:            https://bitbucket.org/ecollins/passlib
 Source:         
https://files.pythonhosted.org/packages/source/p/passlib/passlib-%{version}.tar.gz
 Patch0:         python-passlib-1.7.1-libxcrypt-compat.patch
+# Python 3.8 compatibility patches
+Patch1:         pr_9_1.patch
+Patch2:         pr_9_2.patch
 # test requirements
 BuildRequires:  %{python_module nose}
 BuildRequires:  %{python_module setuptools}
@@ -44,6 +47,8 @@
 %prep
 %setup -q -n passlib-%{version}
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
 
 %build
 %python_build

++++++ pr_9_1.patch ++++++
# HG changeset patch
# User Alan Pevec <[email protected]>
# Date 1562888158 -7200
# Branch stable
# Node ID 98c08467d15759acc3b0f88d2661f6e530147c33
# Parent  27866c441d18c7ce42e3f7afe824f89da4f8d21b
Fix for Python 3.8

This was a deprecation when running in Python 3.7:

DeprecationWarning: Using or importing the ABCs from 'collections' instead of 
from 'collections.abc' is deprecated, and in 3.8 it will stop working
  if isinstance(source, collections.Sequence):

diff --git a/passlib/utils/__init__.py b/passlib/utils/__init__.py
--- a/passlib/utils/__init__.py
+++ b/passlib/utils/__init__.py
@@ -6,7 +6,12 @@
 # core
 from binascii import b2a_base64, a2b_base64, Error as _BinAsciiError
 from base64 import b64encode, b64decode
-import collections
+try:
+    from collections.abc import Sequence
+    from collections.abc import Iterable
+except ImportError:
+    from collections import Sequence
+    from collections import Iterable
 from codecs import lookup as _lookup_codec
 from functools import update_wrapper
 import itertools
@@ -276,14 +281,14 @@
     """
     if size < 1:
         raise ValueError("size must be positive integer")
-    if isinstance(source, collections.Sequence):
+    if isinstance(source, Sequence):
         end = len(source)
         i = 0
         while i < end:
             n = i + size
             yield source[i:n]
             i = n
-    elif isinstance(source, collections.Iterable):
+    elif isinstance(source, Iterable):
         itr = iter(source)
         while True:
             chunk_itr = itertools.islice(itr, size)
++++++ pr_9_2.patch ++++++
# HG changeset patch
# User Alan Pevec <[email protected]>
# Date 1562844713 -7200
# Branch stable
# Node ID 58f3efd111e930baf39ff50df27ed7f2d24f759d
# Parent  4801587cebf01f5037ddc9cd52fc94708559bbfb
Remove time.clock(), deprecated in 3.8

The function time.clock(), used in passlib/utils/__init__.py
has been removed. It was deprecated since Python 3.3.
More info:
https://docs.python.org/3.8/whatsnew/3.8.html#api-and-feature-removals

To make the code both Python 2 and 3 compatible, use timeit.default_timer

diff --git a/passlib/utils/__init__.py b/passlib/utils/__init__.py
--- a/passlib/utils/__init__.py
+++ b/passlib/utils/__init__.py
@@ -30,6 +30,7 @@
 import time
 if stringprep:
     import unicodedata
+import timeit
 import types
 from warnings import warn
 # site
@@ -839,14 +840,7 @@
     assert secret and hash
     return safe_crypt(secret, hash) == hash
 
-# pick best timer function to expose as "tick" - lifted from timeit module.
-if sys.platform == "win32":
-    # On Windows, the best timer is time.clock()
-    from time import clock as timer
-else:
-    # On most other platforms the best timer is time.time()
-    from time import time as timer
-
+timer = timeit.default_timer
 # legacy alias, will be removed in passlib 2.0
 tick = timer
 
@@ -903,7 +897,7 @@
 
         # the current time, to whatever precision os uses
         time.time(),
-        time.clock(),
+        tick(),
 
         # if urandom available, might as well mix some bytes in.
         os.urandom(32).decode("latin-1") if has_urandom else 0,

Reply via email to