o
    i                     @   sT   d Z ddlZdefddZdedefddZd	edefd
dZd	edefddZdS )zTime utilities for the Pipecat framework.

This module provides utility functions for time handling including
ISO8601 formatting, nanosecond conversions, and human-readable
time string formatting.
    Nreturnc                   C   s   t j t jjjddS )zGet the current UTC time as an ISO8601 formatted string.

    Returns:
        The current UTC time in ISO8601 format with millisecond precision.
    milliseconds)timespec)datetimenowtimezoneutc	isoformat r
   r
   F/home/ubuntu/.local/lib/python3.10/site-packages/pipecat/utils/time.pytime_now_iso8601   s   r   secondsc                 C   s   t | d S )zConvert seconds to nanoseconds.

    Args:
        seconds: The number of seconds to convert.

    Returns:
        The equivalent number of nanoseconds as an integer.
     ʚ;)int)r   r
   r
   r   seconds_to_nanoseconds   s   	r   nanosecondsc                 C   s   | d S )zConvert nanoseconds to seconds.

    Args:
        nanoseconds: The number of nanoseconds to convert.

    Returns:
        The equivalent number of seconds as a float.
    r   r
   )r   r
   r
   r   nanoseconds_to_seconds&   s   	r   c                 C   sd   t | }t|d }t|d d }t|d }t|t| d }| d|dd|dd|dS )zConvert nanoseconds to a human-readable time string.

    Args:
        nanoseconds: The number of nanoseconds to convert.

    Returns:
        A formatted time string in "H:MM:SS.microseconds" format.
    i  <   i@B :02.06)r   r   )r   total_secondshoursminutesr   microsecondsr
   r
   r   nanoseconds_to_str2   s   	 r   )	__doc__r   strr   floatr   r   r   r   r
   r
   r
   r   <module>   s   	