
    ԋgV                    |    d dl mZ d dlmZ d dlmZmZmZ 	 d dlm	Z	  G d d      Z
 G d d      Zy	# e$ r Y w xY w)
    )annotations)defaultdict)HashableIterableSequence)TDigestc                  P    e Zd ZU ded<   ded<   dZdddZddZddZdd	Zdd
Z	y)DigestSequence[float]	intervalszlist[TDigest]
componentsr   r   c                V    || _         |D cg c]  }t                c}| _        y c c}w N)r   r   r   selfr   _s      3lib/python3.12/site-packages/distributed/counter.py__init__zDigest.__init__   s$    &DN2;<)Qwy)<DO<s   &c                @    | j                   d   j                  |       y Nr   )r   addr   items     r   r   z
Digest.add   s    OOA""4(    c                @    | j                   d   j                  |       y r   )r   update)r   seqs     r   r   zDigest.update   s    OOA%%c*r   c                r   t        t        | j                        dz
        D ]  }d| j                  d   z  | j                  |   z  }| j                  |   j	                  |      }| j                  |   j	                  d|z
        }| j                  |dz      j                  |       || j                  |<    y N   g?r   )rangelenr   r   scalemerge)r   ifracpartrests        r   shiftzDigest.shift   s    3t~~.23T^^A..1BBq)//5q)//D9A&,,T2%)" 4r   c                :    t        d | j                  D              S )Nc              3  <   K   | ]  }|j                           y wr   )size.0ds     r   	<genexpr>zDigest.size.<locals>.<genexpr>%   s     9Aqvvxs   sumr   r   s    r   r-   zDigest.size$   s    9999r   N)   <   i  r   r   )r   floatreturnNone)r   zIterable[float]r:   r;   r:   r;   r:   r9   )
__name__
__module____qualname____annotations__	__slots__r   r   r   r*   r-    r   r   r
   r
      s,    ""!!/		=	)	+	*	:r   r
   c                  H    e Zd ZU ded<   ded<   dZdddZddZddZdd	Zy
)Counterr   r   z"list[defaultdict[Hashable, float]]r   r   c                `    || _         |D cg c]  }t        t               c}| _        y c c}w r   )r   r   intr   r   s      r   r   zCounter.__init__-   s'    "5>?Y;s+Y??s   +c                8    | j                   d   |xx   dz  cc<   y )Nr   r!   )r   r   s     r   r   zCounter.add1   s    4 A% r   c           	     F   t        t        | j                        dz
        D ]  }d| j                  d   z  | j                  |   z  }| j                  |   j	                         D ci c]  \  }}|||z   }}}| j                  |   j	                         D ci c]  \  }}||d|z
  z   }}}|j	                         D ]"  \  }}| j                  |dz      |xx   |z  cc<   $ t        t              }|j                  |       || j                  |<    y c c}}w c c}}w r    )r"   r#   r   r   itemsr   rG   r   )r   r&   r'   kvr(   r)   r0   s           r   r*   zCounter.shift4   s   s4>>*Q./A**T^^A->>D,0OOA,>,D,D,FG,FDAqAq4xK,FDG26//!2D2J2J2LM2L$!QAqAH~%2LDM

1A&q)Q.) %.9#.>AHHTN!"DOOA 0GMs   'DDc                :    t        d | j                  D              S )Nc              3  N   K   | ]  }t        |j                                 y wr   )r3   valuesr.   s     r   r1   zCounter.size.<locals>.<genexpr>A   s     <Oq3qxxz?Os   #%r2   r4   s    r   r-   zCounter.size@   s    <DOO<<<r   Nr5   r8   )r   r   r:   r;   r<   r=   )	r>   r?   r@   rA   rB   r   r   r*   r-   rC   r   r   rE   rE   (   s(    22+I@&
#=r   rE   N)
__future__r   collectionsr   collections.abcr   r   r   crickr   r
   ImportErrorrE   rC   r   r   <module>rU      sB    " # 8 8:
: :8= =A  		s   3 ;;