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)?

Lo que he probado hasta ahora

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?

Respuestas a la pregunta(3)

Su respuesta a la pregunta