
    j                         d dl Z d dlZd dlmZ d dlmZ ddlmZ dej                  de
fdZej                   G d	 d
             Z G d de j                        Zy)    N)Optional)messages   )typesmessagereturnc                 6    t        | t        j                        S )z4Helper to check if provided message supports upload.)
isinstancer   CreateAttachmentMessage)r   s    }/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/file_upload/base_upload_manager.pymessage_supports_uploadr   
   s    gx??@@    c                   ,    e Zd ZU eed<   eed<   eed<   y)RemainingUploadDatauploadsbytes
total_sizeN)__name__
__module____qualname__int__annotations__ r   r   r   r      s    LJOr   r   c            	       r   e Zd Zej                  dej                  deej                     deej                     ddfd       Zej                  defd       Zej                  defd       Zej                  dd	ee   d
edefd       Zej                  d	ee   defd       Zej                  dd       Zy)BaseFileUploadManagerr   on_upload_successon_upload_failedr   Nc                      y Nr   )selfr   r   r   s       r   uploadzBaseFileUploadManager.upload   s     	r   c                      y r   r   r    s    r   remaining_dataz$BaseFileUploadManager.remaining_data        r   c                      y r   r   r#   s    r   all_donezBaseFileUploadManager.all_done$   r%   r   timeout
sleep_timec                      y r   r   )r    r(   r)   s      r   flushzBaseFileUploadManager.flush(   r%   r   c                      y r   r   )r    r(   s     r   failed_uploadsz$BaseFileUploadManager.failed_uploads,   r%   r   c                      y r   r   r#   s    r   closezBaseFileUploadManager.close0   r%   r   )   )r   N)r   r   r   abcabstractmethodr   BaseMessager   upload_typesOnUploadSuccessCallbackOnUploadFailureCallbackr!   r   r$   boolr'   floatr   r+   r-   r/   r   r   r   r   r      s   %% $L$H$HI #<#G#GH	
 
  	 3   	$   	Xe_ # d   	huo #   	 r   r   )r1   dataclassestypingr   opik.message_processingr    r   r4   r3   r7   r   	dataclassr   ABCr   r   r   r   <module>r?      s_    
   , #AX%9%9 Ad A
   CGG r   