File: //usr/local/CyberPanel/lib/python3.10/site-packages/s3transfer/__pycache__/upload.cpython-310.pyc
o
�h)w � @ s� d dl Z d dlmZ d dlmZmZ d dlmZ d dlm Z m
Z
mZmZ d dl
mZmZmZmZ G dd� d�ZG d d
� d
�ZG dd� d�ZG d
d� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZdS )� N)�BytesIO��readable�seekable)�IN_MEMORY_UPLOAD_TAG)�CompleteMultipartUploadTask�CreateMultipartUploadTask�SubmissionTask�Task)�ChunksizeAdjuster�DeferredOpenFile�
get_callbacks�get_filtered_dictc @ s. e Zd Zddd�Zdd� Zdd� Zdd � Zd
S )�AggregatedProgressCallback� c C s || _ || _d| _dS )a� Aggregates progress updates for every provided progress callback
:type callbacks: A list of functions that accepts bytes_transferred
as a single argument
:param callbacks: The callbacks to invoke when threshold is reached
:type threshold: int
:param threshold: The progress threshold in which to take the
aggregated progress and invoke the progress callback with that
aggregated progress total
r N)�
_callbacks�
_threshold�_bytes_seen)�self� callbacks� threshold� r �G/usr/local/CyberPanel/lib/python3.10/site-packages/s3transfer/upload.py�__init__! s
z#AggregatedProgressCallback.__init__c C s* | j |7 _ | j | jkr| �� d S d S �N)r r �_trigger_callbacks)r �bytes_transferredr r r �__call__1 s �z#AggregatedProgressCallback.__call__c C s | j dkr| �� dS dS )z@Flushes out any progress that has not been sent to its callbacksr N)r r �r r r r �flush6 s
�z AggregatedProgressCallback.flushc C s"