Como gerar um UUID aleatório que é reproduzível (com uma semente) em Python
ouuid4 () função do módulo do Pythonuuid
gera um UUID aleatório e parece gerar um diferente a cada vez:
In [1]: import uuid
In [2]: uuid.uuid4()
Out[2]: UUID('f6c9ad6c-eea0-4049-a7c5-56253bc3e9c0')
In [3]: uuid.uuid4()
Out[3]: UUID('2fc1b6f9-9052-4564-9be0-777e790af58f')
Gostaria de poder gerar o mesmo UUID aleatório toda vez que executar um script - ou seja, gostaria de propagar o gerador aleatório nouuid4()
. Existe uma maneira de fazer isso? (Ou conseguir isso por outros meios)?
Eu tenho que gerar um UUID usando ouuid.UUID()
com um número inteiro aleatório de 128 bits (de uma instância semeada derandom.Random()
) como entrada:
import uuid
import random
rd = random.Random()
rd.seed(0)
uuid.UUID(rd.getrandbits(128))
Contudo,UUID()
parece não aceitar isso como entrada:
Traceback (most recent call last):
File "uuid_gen_seed.py", line 6, in <module>
uuid.UUID(rd.getrandbits(128))
File "/usr/lib/python2.7/uuid.py", line 133, in __init__
hex = hex.replace('urn:', '').replace('uuid:', '')
AttributeError: 'long' object has no attribute 'replace'
Alguma outra sugestão?