This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2013年10月04日 11:18 by makronized, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| issue19164.patch | jgauthier, 2013年11月18日 03:05 | review | ||
| Messages (6) | |||
|---|---|---|---|
| msg198943 - (view) | Author: Marco Buccini (makronized) | Date: 2013年10月04日 11:18 | |
When you try to use uuid.UUID() without arguments you get a TypeError exception saying that you can actually use an integer (while you cannot). Python 2.6.8 (default, Apr 26 2013, 16:24:53) [GCC 4.6.3] on linux2 >>> uuid.UUID() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.6/uuid.py", line 129, in __init__ raise TypeError('need one of hex, bytes, bytes_le, fields, or int') TypeError: need one of hex, bytes, bytes_le, fields, or int >>> uuid.UUID(uuid.uuid4().int) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.6/uuid.py", line 131, in __init__ hex = hex.replace('urn:', '').replace('uuid:', '') AttributeError: 'long' object has no attribute 'replace' So, let's check with an integer - maybe an int has 'replace'. >>> uuid.UUID(1231231) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.6/uuid.py", line 131, in __init__ hex = hex.replace('urn:', '').replace('uuid:', '') AttributeError: 'int' object has no attribute 'replace' No, it doesn't. Anyway, with a propery hex value, it works (of course!). >>> uuid.UUID(uuid.uuid4().hex) UUID('89b1283d-c32e-4b8a-a9e3-a699445fdd4d') |
|||
| msg198946 - (view) | Author: Vajrasky Kok (vajrasky) * | Date: 2013年10月04日 13:01 | |
The exception message is correct. You can give an integer argument. But you have to use keyword argument.
>>> uuid.UUID(int=uuid.uuid4().int)
UUID('62ad61e5-b492-4f01-81e6-790049051c4f')
From the documentation:
__init__(self, hex=None, bytes=None, bytes_le=None, fields=None, int=None, v
ersion=None)
| Create a UUID from either a string of 32 hexadecimal digits,
| a string of 16 bytes as the 'bytes' argument, a string of 16 bytes
| in little-endian order as the 'bytes_le' argument, a tuple of six
| integers (32-bit time_low, 16-bit time_mid, 16-bit time_hi_version,
| 8-bit clock_seq_hi_variant, 8-bit clock_seq_low, 48-bit node) as
| the 'fields' argument, or a single 128-bit integer as the 'int'
| argument. When a string of hex digits is given, curly braces,
| hyphens, and a URN prefix are all optional. For example, these
| expressions all yield the same UUID:
|
|||
| msg198955 - (view) | Author: Georg Brandl (georg.brandl) * (Python committer) | Date: 2013年10月04日 15:12 | |
Yeah, the first message should probably say "one of the hex, bytes, bytes_le, fields, or int arguments must be given" |
|||
| msg262069 - (view) | Author: Elena Oat (Elena.Oat) * | Date: 2016年03月20日 11:32 | |
I tested the patch and it seems fine. Also ran tests for uuid.py and it they passed. |
|||
| msg262079 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2016年03月20日 14:48 | |
New changeset f736aea929c2 by Berker Peksag in branch '3.5': Issue #19164: Improve exception message of uuid.UUID() https://hg.python.org/cpython/rev/f736aea929c2 New changeset e59b799df6e2 by Berker Peksag in branch 'default': Issue #19164: Improve exception message of uuid.UUID() https://hg.python.org/cpython/rev/e59b799df6e2 |
|||
| msg262080 - (view) | Author: Berker Peksag (berker.peksag) * (Python committer) | Date: 2016年03月20日 14:48 | |
Thanks! |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:51 | admin | set | github: 63363 |
| 2016年03月20日 14:48:58 | berker.peksag | set | status: open -> closed versions: + Python 3.6, - Python 2.7, Python 3.4 nosy: + berker.peksag messages: + msg262080 resolution: fixed stage: patch review -> resolved |
| 2016年03月20日 14:48:15 | python-dev | set | nosy:
+ python-dev messages: + msg262079 |
| 2016年03月20日 11:32:05 | Elena.Oat | set | nosy:
+ Elena.Oat messages: + msg262069 |
| 2014年12月08日 21:29:34 | serhiy.storchaka | set | keywords:
+ needs review stage: needs patch -> patch review versions: + Python 3.4, Python 3.5 |
| 2013年11月18日 03:05:28 | jgauthier | set | files:
+ issue19164.patch keywords: + patch |
| 2013年10月05日 00:31:32 | ezio.melotti | set | keywords:
+ easy nosy: + ezio.melotti stage: needs patch versions: + Python 2.7, - Python 2.6 |
| 2013年10月04日 15:12:44 | georg.brandl | set | nosy:
+ georg.brandl messages: + msg198955 |
| 2013年10月04日 13:01:10 | vajrasky | set | nosy:
+ vajrasky messages: + msg198946 |
| 2013年10月04日 11:18:10 | makronized | create | |