gh-89083: add support for UUID version 8 (RFC 9562)#123224
gh-89083: add support for UUID version 8 (RFC 9562)#123224vstinner merged 14 commits intopython:mainfrom
Conversation
vstinner
left a comment
There was a problem hiding this comment.
The change mostly LGTM, but there is missing documentation in uuid.rst ("TODO" ;-)).
|
By the way, |
|
I had a little interrogation here. Should we use keyword-only parameters (if so, which names? with/without the I also wondered whether to keep |
|
I'm fine with |
| b = random.getrandbits(12) | ||
| if c is None: | ||
| import random | ||
| c = random.getrandbits(62) |
There was a problem hiding this comment.
Does it make sense / is it possible to reject values outside the expected value range? For example, reject negative numbers?
Maybe something like:
orig_a = a
a &= 0xffff_ffff_ffff
if a != orig_a: raise ValueError("...")
I don't know. Would it be consistent with other uuid functions?
There was a problem hiding this comment.
UUIDv1 does not reject them so I wouldn't worry too much about it. v3 and v5 are not based on integral inputs.
There was a problem hiding this comment.
I'm fine with having the same behavior than uuid1() in this case, since it's documented.
vstinner
left a comment
There was a problem hiding this comment.
LGTM but I would prefer to have a second core dev to review the feature.
|
(What's New conflict resolved) |
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
|
Thanks Hugo for the review! I've changed the docstrings in tests to regular comments to avoid cluttering the output in verbose mode and used |
|
Merged, thanks @picnixz. |
Simplest implementation of UUIDv8. Extensible implementation where hash functions can be used may be a follow-up PR / feature.
Entropy considerations can be discussed directly on the PR since the issue is becoming larger and larger (but we could also consider opening a separate issue to discuss the implementation more in details).
📚 Documentation preview 📚: https://cpython-previews--123224.org.readthedocs.build/