
    H>qjV                         d dl Z d dlZd dlmZ  G d d      Z e       Zd Z e       Zd	de	deej                     fdZ
y)
    N)AsyncIteratorc                       e Zd Zd Zd ZeZy)_NoValuec                      y)NF selfs    L/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/eventkit/util.py__bool__z_NoValue.__bool__   s        c                      y)Nz	<NoValue>r   r   s    r
   __repr__z_NoValue.__repr__
   s    r   N)__name__
__module____qualname__r   r   __str__r   r   r
   r   r      s     Gr   r   c                  F    t        j                         j                         S )z'Get asyncio event loop, running or not.)asyncioget_event_loop_policyget_event_loopr   r   r
   r   r      s    ((*99;;r   stepreturnc                N  K   t        | dd      }t        j                  j                  |      }t	        |t        j
                        r|}|j                         }nt        j
                  |      }| }|dk(  st	        |t        t        f      rV|t        j
                  |      z   }t        j                  j                  |t        |j                         |z        z        }nHt	        |t        j                        r.t        j                  j                  |j                         |      }||k  r|||z
  |z  |z  z  }t	        |t        j                        r/t        j                  j                  |j                         |      }n/t	        |t        t        f      r|t        j
                  |      z   }|||k  rct        j                  j                  |      }||z
  j                         }t        j                  |       d{    | ||z  }|\||k  rbyy7 w)a  
    Iterator that waits periodically until certain time points are
    reached while yielding those time points.

    Args:
        start: Start time, can be specified as:

            * ``datetime.datetime``.
            * ``datetime.time``: Today is used as date.
            * ``int`` or ``float``: Number of seconds relative to now.
              Values will be quantized to the given step.
        end: End time, can be specified as:

            * ``datetime.datetime``.
            * ``datetime.time``: Today is used as date.
            * ``None``: No end limit.
        step: Number of seconds, or ``datetime.timedelta``,
            to space between values.
    tzinfoN)secondsr   )getattrdtdatetimenow
isinstance	timedeltatotal_secondsintfloatfromtimestamp	timestamptimecombinetodayr   sleep)startendr   tzr   deltatsecss           r
   	timeranger1      s    * 
$	'B
++//"
C$%""$T*AAvAU|,",,q))KK%%3q{{}t+,,.	Arww	KK		Q/3w	q3w5 E))#rwwkk!!#))+s3	C#u	&BLL--
+ckkoob!C&&(mmD!!!	U
 +c 	"s   HH%	H#
H%H%!H%)r   N   )r   r   r   typingr   r   NO_VALUEr   main_event_loopr$   r1   r   r   r
   <module>r6      sM         :<
 !"3U 3%3r   