Current File : //proc/self/root/usr/lib/python3/dist-packages/botocore/retries/__pycache__/bucket.cpython-312.pyc |
�
P��e� � �L � d Z ddlZddlZddlmZ G d� d� Z G d� d� Zy)zEThis module implements token buckets used for client side throttling.� N)�CapacityNotAvailableErrorc � � e Zd Zd� Zd� Zd� Zy)�Clockc � � y �N� ��selfs �9/usr/lib/python3/dist-packages/botocore/retries/bucket.py�__init__zClock.__init__ s � �� c �. � t j |� y r )�time�sleep�r
�amounts r r zClock.sleep s � ��
�
�6�r
c �* � t j � S r )r r s r �current_timezClock.current_time s � ��y�y�{�r
N)�__name__�
__module__�__qualname__r r r r r
r r r s � �
��r
r c � � e Zd ZdZefd�Zed� � Zej d� � Zed� � Zed� � Z dd�Z
d� Zd � Zd
� Z
y)
�TokenBucketg �?c �� � d | _ d | _ d| _ || _ d | _ || _ t
j � | _ t
j | j � | _
|| _ y )Nr )�
_fill_rate�
_max_capacity�_current_capacity�_clock�_last_timestamp� _min_rate� threading�Lock�_lock� Condition�_new_fill_rate_condition�max_rate)r
r&