bpo-31784: Use time.time_ns() in uuid.uuid1() (GH-11189)

uuid.uuid1() now calls time.time_ns() rather than
int(time.time() * 1e9). Replace also int(nanoseconds/100)
with nanoseconds // 100. Add an unit test.
This commit is contained in:
Victor Stinner 2018-12-18 11:45:13 +01:00 committed by GitHub
parent 1dd035954b
commit 62a68b762a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 2 deletions

View file

@ -728,10 +728,10 @@ def uuid1(node=None, clock_seq=None):
global _last_timestamp
import time
nanoseconds = int(time.time() * 1e9)
nanoseconds = time.time_ns()
# 0x01b21dd213814000 is the number of 100-ns intervals between the
# UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00.
timestamp = int(nanoseconds/100) + 0x01b21dd213814000
timestamp = nanoseconds // 100 + 0x01b21dd213814000
if _last_timestamp is not None and timestamp <= _last_timestamp:
timestamp = _last_timestamp + 1
_last_timestamp = timestamp