File: //lib/python3/dist-packages/botocore/retries/__pycache__/adaptive.cpython-310.pyc
o
.&�a � @ sr d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ e�e�Z dd� Z
G dd� de�ZG d d
� d
e�Z
dS )� N)�bucket)�
throttling)�standardc C sz t �� }tjd|�� d�}t jd|d�}t|�}tjt� � d�}t
|||||d�}| jj�
d|j� | jj�
d|j� |S ) Nr )�starting_max_rate�
start_time� )�max_rate�clock)�retry_event_adapter)�
rate_adjustor�rate_clocker�token_bucket�throttling_detectorr zbefore-sendzneeds-retry)r �Clockr �CubicCalculator�current_time�TokenBucket�RateClockerr �ThrottlingErrorDetector�RetryEventAdapter�ClientRateLimiter�meta�events�register�on_sending_request�on_receiving_response)�clientr r r
r r �limiter� r �;/usr/lib/python3/dist-packages/botocore/retries/adaptive.py�register_retry_handler
s. �����r c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) r g @c C s2 || _ || _|| _|| _|| _d| _t�� | _d S )NF) �_rate_adjustor�
_rate_clocker�
_token_bucket�_throttling_detector�_clock�_enabled� threading�Lock�_lock)�selfr r r
r r r r r �__init__* s zClientRateLimiter.__init__c K s | j r
| j�� d S d S �N)r&