Cómo generar un UUID aleatorio que sea reproducible (con una semilla) en Python
losuuid4 () función del módulo de Pythonuuid
genera un UUID aleatorio y parece generar uno diferente 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')
Me gustaría poder generar el mismo UUID aleatorio cada vez que ejecuto un script, es decir, me gustaría sembrar el generador aleatorio enuuid4()
. ¿Hay alguna forma de hacer esto? (¿O lograr esto por algún otro medio)?
Tengo que generar un UUID usando eluuid.UUID()
método con un entero aleatorio de 128 bits (de una instancia sembrada derandom.Random()
) como entrada:
import uuid
import random
rd = random.Random()
rd.seed(0)
uuid.UUID(rd.getrandbits(128))
Sin embargo,UUID()
parece no aceptar esto 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'
¿Cualquier otra sugerencia?