import os
from uuid import SafeUUID

from ._uuid_utils import (
    MAX,
    NAMESPACE_DNS,
    NAMESPACE_OID,
    NAMESPACE_URL,
    NAMESPACE_X500,
    NIL,
    RESERVED_FUTURE,
    RESERVED_MICROSOFT,
    RESERVED_NCS,
    RFC_4122,
    UUID,
    __version__,
    getnode,
    uuid1,
    uuid3,
    uuid4,
    uuid5,
    uuid6,
    uuid7,
    uuid8,
)
from ._uuid_utils import (
    _uuid4_int as _uuid4_int,
)
from ._uuid_utils import (
    _uuid7_int as _uuid7_int,
)
from ._uuid_utils import (
    reseed as reseed_rng,
)

# Reseed the RNG in the child process after a fork.
# Otherwise both parent and child processes may generate the same UUIDs for some time.
if hasattr(os, "fork"):
    os.register_at_fork(after_in_child=reseed_rng)

__all__ = [
    "MAX",
    "NAMESPACE_DNS",
    "NAMESPACE_OID",
    "NAMESPACE_URL",
    "NAMESPACE_X500",
    "NIL",
    "RESERVED_FUTURE",
    "RESERVED_MICROSOFT",
    "RESERVED_NCS",
    "RFC_4122",
    "UUID",
    "SafeUUID",
    "__version__",
    "getnode",
    "reseed_rng",
    "uuid1",
    "uuid3",
    "uuid4",
    "uuid5",
    "uuid6",
    "uuid7",
    "uuid8",
]
