#26237: uuid.UUID() generates 'invalid syntax' and 'badly formed' uuids
-------------------------------+--------------------------------------
Reporter: MalikRumi | Owner: nobody
Type: Bug | Status: closed
Component: Uncategorized | Version: 1.9
Severity: Normal | Resolution: invalid
Keywords: uuid | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Changes (by charettes):
* status: new => closed
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
* resolution: => invalid
Old description:
> Background: I've been struggling for about a week trying to use fixtures
> to load initial data into a website. See
> http://stackoverflow.com/questions/35463713/badly-formed-hexadecimal-
> uuid-string-error-in-django-fixture-json-uuid-conversi and
> https://groups.google.com/forum/#!topic/django-users/Q4zybgExDyY.
>
> Once I did the test suggested to me on SO, it became clear that this was
> not a json issue. That test was as follows:
>
> In [5]: e.uuid
> Out[5]: UUID('61877565-5fe5-4175-9f2b-d24704df0b74')
> In [6]: uuid.UUID(61877565-5fe5-4175-9f2b-d24704df0b74)
> File "<ipython-input-6-56137f5f4eb6>", line 1
> uuid.UUID(61877565-5fe5-4175-9f2b-d24704df0b74)
> ^
> SyntaxError: invalid syntax # It doesn't show here for some
> reason, but the caret is pointing to the 4th '5' in the 12th position,
> from left to right.
>
> It did not matter if I copy pasted the uuid or retyped the whole thing by
> hand, I got the same error. If I quoted the uuid, I got a different
> error:
>
> In [7]: uuid.UUID('61877565-5fe5-4175-9f2b-d24704df0b74')
> ---------------------------------------------------------------------------
> NameError Traceback (most recent call
> last)
> <ipython-input-7-3b4d3e5bd156> in <module>()
> ----> 1 uuid.UUID('61877565-5fe5-4175-9f2b-d24704df0b74')
>
> NameError: name 'uuid' is not defined
>
> I am using Ubuntu 15.10, Django 1.9.1, Postgresql 9.4 and Python 2.7.10.
> I don't know if this a Python issue rather than a Django issue, but it
> can't, or shouldn't, be that Django/Python can't accept, recognize, or
> evaluate a uuid it generated seconds earlier.
New description:
Background: I've been struggling for about a week trying to use fixtures
to load initial data into a website. See
http://stackoverflow.com/questions/35463713/badly-formed-hexadecimal-uuid-
string-error-in-django-fixture-json-uuid-conversi and
https://groups.google.com/forum/#!topic/django-users/Q4zybgExDyY.
Once I did the test suggested to me on SO, it became clear that this was
not a json issue. That test was as follows:
{{{
In [5]: e.uuid
Out[5]: UUID('61877565-5fe5-4175-9f2b-d24704df0b74')
In [6]: uuid.UUID(61877565-5fe5-4175-9f2b-d24704df0b74)
File "<ipython-input-6-56137f5f4eb6>", line 1
uuid.UUID(61877565-5fe5-4175-9f2b-d24704df0b74)
^
SyntaxError: invalid syntax # It doesn't show here for some reason, but
the caret is pointing to the 4th '5' in the 12th position, from left to
right.
}}}
It did not matter if I copy pasted the uuid or retyped the whole thing by
hand, I got the same error. If I quoted the uuid, I got a different error:
{{{
In [7]: uuid.UUID('61877565-5fe5-4175-9f2b-d24704df0b74')
---------------------------------------------------------------------------
NameError Traceback (most recent call
last)
<ipython-input-7-3b4d3e5bd156> in <module>()
----> 1 uuid.UUID('61877565-5fe5-4175-9f2b-d24704df0b74')
NameError: name 'uuid' is not defined
}}}
I am using Ubuntu 15.10, Django 1.9.1, Postgresql 9.4 and Python 2.7.10. I
don't know if this a Python issue rather than a Django issue, but it
can't, or shouldn't, be that Django/Python can't accept, recognize, or
evaluate a uuid it generated seconds earlier.
--
Comment:
Hi MalikRumi,
I'm afraid this has nothing to do with Django.
From what I can see the first exception occurred because you forgot to
quote the string you attempted to pass to the `uuid.UUID` constructor.
You can get a similar exception by simply pasting the expression
`61877565-5fe5-4175-9f2b-d24704df0b74` in a Python shell.
The second exception occurred because you attempted to construct a
`uuid.UUID` instance by referring to the `uuid` module which you has not
imported in your shell global context. I guess you simply imported `UUID`
from `uuid` (you did `from uuid import UUID` instead of `import uuid`).
I suppose you got confused because the representation of `uuid.UUID`
objects (`repr(uuid.UUID('61877565-5fe5-4175-9f2b-d24704df0b74'))`), which
is what your shell is displaying by default in `Out[N]:`, always include
the `uuid` module prefix.
In the future please stick to the support channel (like the thread on
django-users@) until you get a confirmation this is actually a bug as this
tracker is not meant to be used as a support platform.
--
Ticket URL: <https://code.djangoproject.com/ticket/26237#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/067.e1c7dcb7e30ccdc750458b937e5802f2%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.