1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# HG changeset patch
# User Alan Pevec <apevec@redhat.com>
# Date 1562844713 -7200
# Thu Jul 11 13:31:53 2019 +0200
# 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,
|