
    {hE                     J    d Z ddlmZmZ ddlmZmZ ddlmZ  G d de      Z	y)	z
Base provider class for batch processing.

This module defines the abstract base class that all batch providers must implement.
    )ABCabstractmethod)AnyOptional   )BatchJobInfoc            	          e Zd ZdZe	 ddedeeeef      defd       Z	ededeeef   fd       Z
ededefd	       Zedededdfd
       Zededeeef   fd       Zededeeef   fd       Zeddedee   fd       Zy)BatchProviderz2Abstract base class for batch processing providersN	file_pathmetadatareturnc                      y)z(Submit a batch job and return the job IDN )selfr   r   kwargss       `/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/instructor/batch/providers/base.pysubmit_batchzBatchProvider.submit_batch   s    
 	    batch_idc                      y)zGet the status of a batch jobNr   r   r   s     r   
get_statuszBatchProvider.get_status        	r   c                      y)z"Retrieve batch results as a stringNr   r   s     r   retrieve_resultszBatchProvider.retrieve_results   r   r   c                      y)z Download batch results to a fileNr   )r   r   r   s      r   download_resultszBatchProvider.download_results    r   r   c                      y)zCancel a batch jobNr   r   s     r   cancel_batchzBatchProvider.cancel_batch%   r   r   c                      y)zDelete a batch jobNr   r   s     r   delete_batchzBatchProvider.delete_batch*   r   r   limitc                      y)zList batch jobsNr   )r   r"   s     r   list_batcheszBatchProvider.list_batches/   r   r   )N)
   )__name__
__module____qualname____doc__r   strr   dictr   r   r   r   r   r   r!   intlistr   r$   r   r   r   r
   r
      s/   <CG(0c3h(@	  3 4S>            S T#s(^   S T#s(^   # tL/A  r   r
   N)
r)   abcr   r   typingr   r   modelsr   r
   r   r   r   <module>r1      s!    $   !&C &r   