#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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
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.

Reply via email to