
    g3fi!                        U d Z ddlmZ ddlZddlmZ ddlmZ ej                  rddlmZ dZ
ded<   dd	Zddd
ZdgZy)zUUID utility functions.

This module exports a uuid7 function to generate monotonic, time-ordered UUIDs
for tracing and similar operations.
    )annotationsN)UUID)uuid7i ʚ;ztyping.Final_NANOS_PER_SECONDc                0    t        | t              \  }}||fS )zDSplit a nanosecond timestamp into seconds and remaining nanoseconds.)divmodr   nanosecondssecondsnanoss      W/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_core/utils/uuid.py_to_timestamp_and_nanosr      s    K):;NGUE>    c                P    | 
t               S t        |       \  }}t        ||      S )a  Generate a UUID from a Unix timestamp in nanoseconds and random bits.

    UUIDv7 objects feature monotonicity within a millisecond.

    Args:
        nanoseconds: Optional ns timestamp. If not provided, uses current time.

    Returns:
        A UUIDv7 object.
    )	timestampr   )_uuid_utils_uuid7r   r	   s      r   r   r      s.    2  "",[9NGUwe<<r   r   )r
   intreturnztuple[int, int])N)r
   z
int | Noner   r   )__doc__
__future__r   typinguuidr   uuid_utils.compatr   r   TYPE_CHECKINGr   __annotations__r   __all__ r   r   <module>r      sB    #   8	"/ < /=> )r   