
    ":h7                     4    d dl Z d dlZd dlmZ  G d d      Zy)    N)timec                   "    e Zd ZddZd ZddZy)	ThrottlerNc                     || _         ddddddd| _        | j                  j                  |       t        j                         | _        d| _        y )Ng      ?gMbP?r   i  )
refillRatedelaycosttokensmaxCapacitycapacityF)loopconfigupdatecollectionsdequequeuerunning)selfr   r   s      [/var/www/html/turnos/venv/lib/python3.12/site-packages/ccxt/async_support/base/throttler.py__init__zThrottler.__init__   sO    	
 	6" &&(
    c                   K   t               dz  }| j                  rY| j                  d   \  }}|| j                  d   n|}| j                  d   dk\  r| j                  dxx   |z  cc<   |j	                         s|j                  d        | j                  j                          t        j                  d       d {    t        | j                        dk(  rd| _        nt        j                  | j                  d          d {    t               dz  }||z
  }|}t        | j                  d   || j                  d   z  z   | j                  d         | j                  d<   | j                  rXy y 7 7 pw)	Ni  r   r	   r
   Fr   r   r   )r   r   r   r   done
set_resultpopleftasynciosleeplenmin)r   last_timestampfuturer	   nowelapseds         r   looperzThrottler.looper   sA    $ll::a=LFD*.,4;;v&DD{{8$)H%-%{{}%%d+

""$mmA&&&tzz?a'#(DLmmDKK$8999ftm.!$(+DKK,AGdkkZfNgDg,gimititu  jA  )BH%# ll ' :s,   B<E;>E7?A	E;E9	A*E;5E;9E;c           	         t        j                         }t        | j                        | j                  d   kD  r0t        dt        t        | j                  d               z   dz         | j                  j                  ||f       | j                  s6d| _	        t        j                  | j                         | j                         |S )Nr   z$throttle queue is over maxCapacity (zH), see https://github.com/ccxt/ccxt/issues/11645#issuecomment-1195695526T)r   )r   Futurer   r   r   RuntimeErrorstrintappendr   ensure_futurer$   r   )r   r	   r!   s      r   __call__zThrottler.__call__*   s    !tzz?T[[77ECPTP[P[\iPjLkHll  pz   z  {  {

64.)||DL!!$++-dii@r   )N)__name__
__module____qualname__r   r$   r,    r   r   r   r      s    B*r   r   )r   r   r   r   r0   r   r   <module>r1      s      , ,r   