
    6i%                    V   U d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
mZmZmZ ddlmZmZ ddlmZ  ede	      Z G d
 deee         Z G d de      Z G d dee      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zeee   ef   Zded<   y)z
Data models and types for batch processing.

This module contains all the Pydantic models, enums, and type definitions
used throughout the batch processing system.
    )annotations)AnyUnionTypeVarGeneric)	TypeAlias)	BaseModelField
ConfigDict)datetimetimezone)EnumT)boundc                  F    e Zd ZU dZded<   ded<   dZded<    ed	      Zy
)BatchSuccessz&Successful batch result with custom_idstr	custom_idr   resultTboolsuccess)arbitrary_types_allowedN)__name__
__module____qualname____doc____annotations__r   r   model_config     b/root/.openclaw/workspace/visionaryfx/venv/lib/python3.12/site-packages/instructor/batch/models.pyr   r      s#    0NIGTd;Lr    r   c                  L    e Zd ZU dZded<   ded<   ded<   dZded<   d	Zd
ed<   y	)
BatchErrorz+Error information for failed batch requestsr   r   
error_typeerror_messageFr   r   Ndict[str, Any] | Noneraw_data)r   r   r   r   r   r   r'   r   r    r!   r#   r#      s*    5NOGT&*H#*r    r#   c                  (    e Zd ZdZdZdZdZdZdZdZ	y)	BatchStatusz(Normalized batch status across providerspending
processing	completedfailed	cancelledexpiredN)
r   r   r   r   PENDING
PROCESSING	COMPLETEDFAILED	CANCELLEDEXPIREDr   r    r!   r)   r)   &   s#    2GJIFIGr    r)   c                  t    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded<   dZ
ded	<   dZded
<   y)BatchTimestampsz Comprehensive timestamp trackingNzdatetime | None
created_at
started_atcompleted_at	failed_atcancelled_at
expired_at
expires_at)r   r   r   r   r8   r   r9   r:   r;   r<   r=   r>   r   r    r!   r7   r7   1   sK    *"&J&"&J&$(L/(!%I%$(L/("&J&"&J&r    r7   c                      e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded<   dZ
ded	<   dZded
<   dZded<   y)BatchRequestCountsz'Unified request counts across providersNz
int | Nonetotalr,   r-   r+   	succeedederroredr.   r/   )r   r   r   r   rA   r   r,   r-   r+   rB   rC   r.   r/   r   r    r!   r@   r@   =   sY    1E: !Iz FJ "J
! Iz GZ Iz GZr    r@   c                  <    e Zd ZU dZdZded<   dZded<   dZded<   y)BatchErrorInfozBatch-level error informationN
str | Noner$   r%   
error_code)r   r   r   r   r$   r   r%   rG   r   r    r!   rE   rE   N   s#    '!J
! $M:$!J
!r    rE   c                  J    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   y)
BatchFileszFile references for batch jobNrF   input_file_idoutput_file_iderror_file_idresults_url)	r   r   r   r   rJ   r   rK   rL   rM   r   r    r!   rI   rI   V   s-    ' $M:$!%NJ% $M:$"K"r    rI   c                      e Zd ZU dZded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   dZded<    ee      Zded<   dZ	ded<   dZ
ded<   dZded<   dZded<   edd       Zedd       Zy)BatchJobInfozJEnhanced unified batch job information with comprehensive provider supportr   idproviderr)   status
raw_statusr7   
timestampsr@   request_countsrI   filesNzBatchErrorInfo | Noneerror)default_factorydict[str, Any]metadatar&   r'   rF   modelendpointcompletion_windowc                   t         j                  t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  d}t        |j                  d      r(t        j                  |d   t        j                        nd|j                  d      r(t        j                  |d   t        j                        nd|j                  d      r(t        j                  |d   t        j                        nd|j                  d      r(t        j                  |d   t        j                        nd|j                  d      r(t        j                  |d   t        j                        nd|j                  d	      r(t        j                  |d	   t        j                        nd|j                  d
      r(t        j                  |d
   t        j                        nd      }|j                  di       }t        |j                  d      |j                  d      |j                  d            }t        |j                  d      |j                  d      |j                  d            }d}|j                  d      r@|d   }t        |j                  d      |j                  d      |j                  d            } | |d   d|j                  |d   t         j                        |d   |||||j                  di       ||j                  d      |j                  d             S )!z!Create from OpenAI batch response)
validatingin_progress
finalizingr,   r-   r/   r.   
cancellingr8   )tzNin_progress_atr:   r;   r<   r=   r>   )r8   r9   r:   r;   r<   r=   r>   rU   rA   r,   r-   )rA   r,   r-   rJ   rK   rL   )rJ   rK   rL   errorstypemessagecode)r$   r%   rG   rP   openairR   rZ   r\   r]   )rP   rQ   rR   rS   rT   rU   rV   rW   rZ   r'   r\   r]   )r)   r0   r1   r2   r3   r5   r4   r7   getr   fromtimestampr   utcr@   rI   rE   )	cls
batch_data
status_maprT   request_counts_datarU   rV   rW   
error_datas	            r!   from_openaizBatchJobInfo.from_openai   s   
 &--&11%00$..!(("**$..%//	

 % >>,/ &&z,'?HLLQ >>"23 &&z2B'CU >>.1 &&z.'AhllS >>+. &&z+'>8<<P >>.1 &&z.'AhllS >>,/ &&z,'?HLLQ >>,/ &&z,'?HLLQE$

N )nn-=rB+%))'2)--k:&**84
 $..9%>>*:;$..9
 >>(##H-J"%>>&1(nnY7%>>&1E $>>*X"68K8KL!(+!)^^J3^^J/(nn-@A
 	
r    c                   t         j                  t         j                  t         j                  t         j                  t         j
                  d}d }t         ||j                  d             ||j                  d             ||j                  d             ||j                  d             ||j                  d                  }|j                  di       }t        |j                  d	      |j                  d
      |j                  d      |j                  d      |j                  d      |j                  d	d      |j                  d
d      z   |j                  dd      z         }t        |j                  d            } | |d   d|j                  |d   t         j                        |d   ||||      S )z$Create from Anthropic batch response)r`   endedr-   r.   r/   c                    | sy 	 t        | t              r| S t        | t              r%t        j                  | j	                  dd            S y # t
        t        f$ r Y y w xY w)NZz+00:00)
isinstancer   r   fromisoformatreplace
ValueErrorAttributeError)timestamp_values    r!   parse_iso_timestampz8BatchJobInfo.from_anthropic.<locals>.parse_iso_timestamp   sf    "ox8**5#11'//X>   / s   A 4A AAr8   cancel_initiated_atended_atr>   )r8   r9   r<   r:   r>   rU   r+   rB   rC   canceledr/   r   )r+   rB   rC   r.   r/   rA   rM   )rM   rP   	anthropicprocessing_status)rP   rQ   rR   rS   rT   rU   rV   r'   )r)   r1   r2   r3   r4   r5   r7   rj   r@   rI   r0   )rm   rn   ro   r}   rT   rp   rU   rV   s           r!   from_anthropiczBatchJobInfo.from_anthropic   s   
 '11 **!(($.."**

	  %*:>>,+GH*|, -Z^^<Q-RS,Z^^J-GH*:>>,+GH

 )nn-=rB+*..|<)--k:'++I6)-- (++I6%)),:!%%k156!%%i34
 "}5
 $ >>*-@"A;CVCVW!"56!)	
 		
r    )rn   rY   returnrO   )r   r   r   r   r   rW   r
   dictrZ   r'   r[   r\   r]   classmethodrr   r   r   r    r!   rO   rO   _   s    T 	GM O   '&  $(E '  %T:Hn:&*H#* E:Hj$(z([
 [
z C
 C
r    rO   r   BatchResultN)r   
__future__r   typingr   r   r   r   typing_extensionsr   pydanticr	   r
   r   r   r   enumr   r   r   r#   r   r)   r7   r@   rE   rI   rO   r   r   r   r    r!   <module>r      s    # / / ' 1 1 ' Cy!<9gaj <+ +#t 	'i 	' ""Y "# #B
9 B
L |A
:;Y ;r    