
    tgj|                    f    S SK Jr  S SKJr  S SKJrJr  \" SS9 " S S5      5       r " S S	5      rg
)    )annotations)	dataclass)datetime	timedeltaT)frozenc                  N    \ rS rSr% SrS\S'   SrS\S'   SrS\S'   S	rS\S
'   Sr	g)SchedulePolicy      intfast_seconds   rank_seconds<   candle_secondsi,  regime_seconds N)
__name__
__module____qualname____firstlineno__r   __annotations__r   r   r   __static_attributes__r       C/mnt/data/HANZ_v2.2_Realtime_Gateway/src/hanz_realtime/scheduler.pyr	   r	      s*    L#L#NCNCr   r	   c                  6    \ rS rSrSSS jjrS	S jrS
S jrSrg)SmartSchedulerr   Nc                B    U=(       d
    [        5       U l        0 U l        g N)r	   policy	_last_run)selfr    s     r   __init__SmartScheduler.__init__   s    0 0.0r   c                    U R                  U5      nU R                  R                  U5      nUb  X$-
  U:  a  X R                  U'   gg)NTF)	_intervalr!   get)r"   tasknowintervalpreviouss        r   dueSmartScheduler.due   sE    >>$'>>%%d+s~9#&NN4 r   c                    U R                   R                  U R                   R                  U R                   R                  U R                   R                  S.nX;  a  [        SU 35      e[        X!   S9$ )N)fastrankcandleregimezUnknown task: )seconds)r    r   r   r   r   KeyErrorr   )r"   r(   mappings      r   r&   SmartScheduler._interval   sd    KK,,KK,,kk00kk00	
 ^D6233//r   )r!   r    r   )r    zSchedulePolicy | NonereturnNone)r(   strr)   r   r7   bool)r(   r9   r7   r   )r   r   r   r   r#   r,   r&   r   r   r   r   r   r      s    1	0r   r   N)
__future__r   dataclassesr   r   r   r	   r   r   r   r   <module>r=      s6    " ! ( $  0 0r   