File: //lib/python3.6/site-packages/botocore/retries/__pycache__/bucket.cpython-36.pyc
3
�T_� � @ sD d Z ddlZddlZddlmZ G dd� de�ZG dd� de�ZdS )zEThis module implements token buckets used for client side throttling.� N)�CapacityNotAvailableErrorc @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�Clockc C s d S )N� )�selfr r �/usr/lib/python3.6/bucket.py�__init__ s zClock.__init__c C s t j|� d S )N)�time�sleep)r �amountr r r r s zClock.sleepc C s t j � S )N)r )r r r r �current_time s zClock.current_timeN)�__name__�
__module__�__qualname__r r r r r r r r s r c @ sp e Zd ZdZefdd�Zedd� �Zejdd� �Zedd� �Zed d
� �Z dd
d�Z
dd� Zdd� Zdd� Z
dS )�TokenBucketg �?c C sF d | _ d | _d| _|| _d | _|| _tj� | _tj | j�| _
|| _d S )Nr )�
_fill_rate�
_max_capacity�_current_capacity�_clock�_last_timestamp� _min_rate� threadingZLock�_lockZ Condition�_new_fill_rate_condition�max_rate)r r ZclockZmin_rater r r r s
zTokenBucket.__init__c C s | j S )N)r )r r r r r "