
    D_i!                        % S r SSKJr  SSKrSSKJr  SSKJr  \R                  (       a  SSKJr  Sr
S\S'   SS	 jrSSS
 jjrS/rg)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                ,    [        U [        5      u  pX4$ )zDSplit a nanosecond timestamp into seconds and remaining nanoseconds.)divmodr   nanosecondssecondsnanoss      S/home/james-whalen/.local/lib/python3.13/site-packages/langchain_core/utils/uuid.py_to_timestamp_and_nanosr      s    K):;NG>    c                H    U c
  [        5       $ [        U 5      u  p[        XS9$ )zGenerate 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  "",[9NGw<<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   