#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.