
    H>qj#                     b   d dl Z d dlZd dlmZ ddlmZ ddlmZ ddlm	Z	  G d d	e      Z
 G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Zy)"    N)deque   )Op)Iterate   )NO_VALUEc                       e Zd ZdZddZy)Count Nc                 ^    t        j                  ||      }t        j                  | ||       y N)	itertoolscountr   __init__)selfstartstepsourceits        U/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/eventkit/ops/aggregate.pyr   zCount.__init__   s$    __UD)r6*    )r   r   N__name__
__module____qualname__	__slots__r   r   r   r   r
   r
   
   s    I+r   r
   c                   "    e Zd ZdZedfdZd Zy)Reduce)_func_initializer_prevNc                 b    t        j                  | |       || _        || _        t        | _        y r   )r   r   r   r    r   r!   )r   funcinitializerr   s       r   r   zReduce.__init__   s&    
D&!
'
r   c                 N   | j                   t        u rW| j                  t        u r|| _         y | j                  | j                  |      | _         | j	                  | j                          y | j                  | j                   |      | _         | j	                  | j                          y r   )r!   r   r    r   emitr   args     r   	on_sourcezReduce.on_source   sq    ::!  H, 
!ZZ(9(93?
		$**%DJJ4DJIIdjj!r   )r   r   r   r   r   r   r)   r   r   r   r   r      s    2I)1$ 	"r   r   c                       e Zd ZdZddZy)Minr   Nc                 N    t         j                  | t        t        d      |       y Ninf)r   r   minfloatr   r   s     r   r   zMin.__init__*   s    c5<8r   r   r   r   r   r   r+   r+   '   s    I9r   r+   c                       e Zd ZdZddZy)Maxr   Nc                 P    t         j                  | t        t        d       |       y r-   )r   r   maxr0   r1   s     r   r   zMax.__init__1   s    cE%L=&9r   r   r   r   r   r   r3   r3   .   s    I:r   r3   c                       e Zd ZdZddZy)Sumr   Nc                 P    t         j                  | t        j                  ||       y r   )r   r   operatoraddr   r   r   s      r   r   zSum.__init__8       hllE6:r   )r   Nr   r   r   r   r7   r7   5       I;r   r7   c                       e Zd ZdZddZy)Productr   Nc                 P    t         j                  | t        j                  ||       y r   )r   r   r9   mulr;   s      r   r   zProduct.__init__?   r<   r   )r   Nr   r   r   r   r?   r?   <   r=   r   r?   c                       e Zd ZdZddZd Zy)Mean)_count_sumNc                 L    t        j                  | |       d| _        d| _        y )Nr   )r   r   rD   rE   r1   s     r   r   zMean.__init__F   s    
D&!	r   c                     | xj                   dz  c_         | xj                  |z  c_        | j                  | j                  | j                   z         y )Nr   )rD   rE   r&   r'   s     r   r)   zMean.on_sourceK   s7    q		S			$))dkk)*r   r   r   r   r   r   r   r)   r   r   r   rC   rC   C   s    "I
+r   rC   c                       e Zd ZdZddZy)Anyr   Nc                 6    t         j                  | d d|       y )Nc                      | xs t        |      S r   boolprevvs     r   <lambda>zAny.__init__.<locals>.<lambda>U   s    dod1g r   Fr   r   r1   s     r   r   zAny.__init__T   s    =ufMr   r   r   r   r   r   rJ   rJ   Q       INr   rJ   c                       e Zd ZdZddZy)Allr   Nc                 6    t         j                  | d d|       y )Nc                      | xr t        |      S r   rM   rO   s     r   rR   zAll.__init__.<locals>.<lambda>\   s    d.>tAw r   TrS   r1   s     r   r   zAll.__init__[   s    >fMr   r   r   r   r   r   rV   rV   X   rT   r   rV   c                       e Zd ZdZddZd Zy)Ema)_f1_f2r!   Nc                     t        j                  | |       |xs d|dz   z  | _        d| j                  z
  | _        t        | _        y )Ng       @r   )r   r   r[   r\   r   r!   )r   nweightr   s       r   r   zEma.__init__b   s:    
D&!*SAE]txx<
r   c                     | j                   t        u r|}nEt        | j                   |      D cg c]$  \  }}| j                  |z  | j                  |z  z   & }}}|| _          | j
                  |  y c c}}w r   )r!   r   zipr\   r[   r&   )r   argsvaluepas        r   r)   zEma.on_sourceh   sq    ::!E 9<DJJ8MO0411txx!|+OE O
		5Os   )A2)NNNrH   r   r   r   rZ   rZ   _   s    'Ir   rZ   c                       e Zd ZdZddZd Zy)Pairwise)r!   	_has_prevNc                 >    t        j                  | |       d| _        y )NF)r   r   rh   r1   s     r   r   zPairwise.__init__u   s    
D&!r   c                     t        |      dk(  r|d   n	|r|nt        }| j                  r$| j                  | j                  |       || _        y d| _        || _        y )Nr   r   T)lenr   rh   r&   r!   )r   rb   rc   s      r   r)   zPairwise.on_sourcey   sM    t9>Qtt>>IIdjj%( 
 "DN
r   r   rH   r   r   r   rg   rg   r   s    &Ir   rg   c                   $    e Zd ZdZddZd Zd Zy)List_valuesNc                 >    t        j                  | |       g | _        y r   )r   r   rn   r1   s     r   r   zList.__init__   s    
D&!r   c                     | j                   j                  t        |      dk(  r
|d          y |r|       y t               y Nr   r   )rn   appendrk   r   r   rb   s     r   r)   zList.on_source   s:    4yA~DG	G374	G=E	Gr   c                 f    | j                  | j                         t        j                  | |       y r   )r&   rn   r   on_source_doner1   s     r   ru   zList.on_source_done   s"    		$,,
$'r   r   )r   r   r   r   r   r)   ru   r   r   r   rm   rm      s    IG(r   rm   c                       e Zd ZdZddZd Zy)Deque)rD   _qNc                 \    t        j                  | |       || _        t               | _        y r   )r   r   rD   r   rx   )r   r   r   s      r   r   zDeque.__init__   s     
D&!'r   c                 6   | j                   j                  t        |      dk(  r|d   n	|r|nt               | j                  r<t        | j                         | j                  kD  r| j                   j                          | j                  | j                          y rq   )rx   rr   rk   r   rD   popleftr&   rs   s     r   r)   zDeque.on_source   sb    4yA~DG44X	G;;3tww<$++5GGOO		$''r   r   rH   r   r   r   rw   rw      s     I
r   rw   )r   r9   collectionsr   opr   	transformr   utilr   r
   r   r+   r3   r7   r?   rC   rJ   rV   rZ   rg   rm   rw   r   r   r   <module>r      s         +G +"R "*9& 9:& :;& ;;f ;+2 +N& NN& N" &r  (2 ( B r   