
    g'                     d   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZ d Zd	 Zd
 Zdej:                  eeeef   fdZdej:                  eef   fdZdej@                  dej:                  eeeef   dej:                  eef   fdZ!dej@                  dej:                  eef   dej:                  eef   fdZ"dej:                  eef   dee#   fdZ$ejJ                  	 	 d0dej@                  dedee&   de&def
d       Z'ejJ                  	 	 d0dej@                  dedee&   de&def
d       Z'	 	 d1dej@                  dej:                  eef   dee&   de&dej:                  eef   f
dZ'ejJ                  	 	 d0dej@                  dedee&   de&def
d       Z(ejJ                  	 	 d0dej@                  dedee&   de&def
d       Z(	 	 d0dej@                  dej:                  eef   dee&   de&dej:                  eef   f
dZ(dej@                  de#dee)   fdZ*dejV                  e   defd Z,d!ejV                  e   defd"Z-g d#Z.d$ed%e#fd&Z/d$ed%e#fd'Z0d$ed%e#fd(Z1d$efd)Z2 G d* d+      Z3 G d, d-e3      Z4 G d. d/e3      Z5y)2    N)Optional)parse_schemareaderwriter   )	EmbedResponseEmbeddingsFloatsEmbedResponseEmbeddingsByTypeEmbedResponseApiMetaEmbedByTypeResponseEmbeddingsApiMetaBilledUnitsEmbedJobCreateEmbedJobResponseDataset)DatasetsCreateResponseDatasetsGetResponse)
get_fieldsc                  ,    t               t               z  S N)get_success_statesget_failed_states     A/var/www/openai/venv/lib/python3.12/site-packages/cohere/utils.pyget_terminal_statesr      s    "3"555r   c                  
    ddhS )Ncomplete	validatedr   r   r   r   r   r      s    $$r   c                  
    h dS )N>   failedskippedunknown	cancelledr   r   r   r   r   r      s    BBr   	awaitablec                 n    t        | dd       xs' t        | dd       xs t        t        | dd       dd       S )Njob_ididdatasetgetattrr$   s    r   get_idr,      sA    9h- 9D$1O 9SZ	9d+T4T9 9r   c                 P    t        | dd       xs t        t        | dd       dd       S )Nstatusr(   validation_statusr)   r+   s    r   get_validation_statusr0   #   s+    9h-xIW[9\^qsw1xxr   coherereturnc                 z   |j                   j                  dk(  s|j                   j                  dk(  r%| j                  j                  t	        |            S |j                   j                  dk(  s|j                   j                  dk(  r%| j
                  j                  t	        |            S t        d|       Nr   r   r'   r   r   zUnexpected awaitable type 	__class____name__
embed_jobsgetr,   datasets
ValueErrorr1   r$   s     r   get_jobr>   '   s     ##z1Y5H5H5Q5QUm5m  $$y(9$::				%	%)>	>)BUBUB^B^bzBz""fY&7"885i[ABBr   c                   K   |j                   j                  dk(  s|j                   j                  dk(  r-| j                  j                  t	        |             d {   S |j                   j                  dk(  s|j                   j                  dk(  r-| j
                  j                  t	        |             d {   S t        d|       7 q7 wr4   r6   r=   s     r   async_get_jobr@   3   s      ##z1Y5H5H5Q5QUm5m&&**fY.?*@@@				%	%)>	>)BUBUB^B^bzBz__((F9,=(>>>5i[ABB	 A>s%   ACCAC<C=CCjobc                     t        | t              rd| j                   d| j                   S t        | t              r0d| j
                  j                   d| j
                  j                   S y )Nz
Embed job z failed with status z$Dataset creation failed with status z and error : )
isinstancer   r&   r.   r   r(   r/   validation_error)rA   s    r   get_failure_reasonrE   >   si    #x CJJ<';CJJ<HH	C,	-5ckk6S6S5TTabebmbmb~b~a  A  	Ar   timeoutintervalc                      y r   r   r1   r$   rF   rG   s       r   waitrJ   F        r   c                      y r   r   rI   s       r   rJ   rJ   P   rK   r   c                    t        j                          }t               }t               }t        | |      }t	        |      |vre|)t        j                          |z
  |kD  rt        d| d      t        j                  |       t        d       t        | |      }t	        |      |vret	        |      |v rt        t        |            |S Nzwait timed out after z secondsz...)
timer   r   r>   r0   TimeoutErrorsleepprint	ExceptionrE   r1   r$   rF   rG   
start_timeterminal_statesfailed_statesrA   s           r   rJ   rJ   Z   s     J)+O%'M
&)
$C

$O
;499;#;g#E!6wixHII

8efi(  
$O
; S!]2*3/00Jr   c                    K   y wr   r   rI   s       r   
async_waitrY   t            c                    K   y wr   r   rI   s       r   rY   rY   ~   rZ   r[   c                   K   t        j                          }t               }t               }t        | |       d {   }t	        |      |vru|)t        j                          |z
  |kD  rt        d| d      t        j                  |       d {    t        d       t        | |       d {   }t	        |      |vrut	        |      |v rt        t        |            |S 7 7 V7 9wrN   )rO   r   r   r@   r0   rP   asynciorQ   rR   rS   rE   rT   s           r   rY   rY      s      J)+O%'Mfi0
0C

$O
;499;#;g#E!6wixHIImmH%%%e!&)44  
$O
; S!]2*3/00J 1
 	& 5s:   8C*C$AC*C&C*.C(/C*$C*&C*(C*objfieldc                 v    | D  cg c]  } t        | |      t        | |       }} |rt        |      S d S c c} w r   )r*   sum)r_   r`   non_nones      r   sum_fields_if_not_nonerd      s@    /2Vsgc56I6UU#sHV$3x=.$. Ws   66metasc           	      v   | r| d   j                   nd }| D cg c]  }|j                   }}t        |d      }t        |d      }t        |d      }t        |d      }| D ch c]"  }|j                  s|j                  D ]  }| $ }	}}t	        |t        ||||      t        |	            S c c}w c c}}w )Nr   input_tokensoutput_tokenssearch_unitsclassifications)rg   rh   ri   rj   )api_versionbilled_unitswarnings)rk   rl   rd   rm   r   r   list)
re   rk   metarl   rg   rh   ri   rj   warningrm   s
             r   merge_meta_fieldrq      s    */%(&&TK278%$D%%%L8),GL*<IM),GL,\;LMO$)XEDT]]$--w-EHX'%'%+	
 h	 	 9
 Ys   B0"B54B5	responsesc                    t        | D cg c]  }|j                  s|j                   c}      }dj                  d | D              }| D cg c]  }|j                  D ]  }|  }}}| d   j                  dk(  r]t        j                  t
        j                  t           |       }|D cg c]  }|j                  D ]  }|  }}}t        d||||      S t        j                  t
        j                  t           |       }	|	D cg c]  }|j                   }
}t        |	d   j                        D cg c]  }t        |	d   j                  |      |  }}|D ci c]&  }||
D cg c]  }t        ||      D ]  }|  c}}( }}}}t        j                  |      }t        d||||      S c c}w c c}}w c c}}w c c}w c c}w c c}}w c c}}}w )Nz, c              3   4   K   | ]  }|j                     y wr   r5   ).0responses     r   	<genexpr>z(merge_embed_responses.<locals>.<genexpr>   s     B	HHKK	s   r   embeddings_floats)response_typer'   texts
embeddingsro   embeddings_by_type)ry   r'   r{   rz   ro   )rq   ro   joinrz   ry   typingcastListr	   r{   r
   r   r*   r   	parse_obj)rr   rv   ro   response_idtextrz   rx   	embeddingr{   embeddings_typer|   xfieldsr`   embedding_by_typemerged_dictsembeddings_by_type_mergeds                    r   merge_embed_responsesr      s0   9V9xX]]9VWD))B	BBK "!HNND 	" 	! 
  |!!%88"KK4Q(RT]^ &7
%6!.99	 9 %6 	 
 --!
 	
 !++fkk2O&PR[\ ,
+ + 	 
 ((:(E(EF  AF'RabcRdRoRoqrJsJ!F  A  
   ););%!():E!BI !B ); 
   	 
 %B$K$KL$Y!,.0
 	
] W
 
 A
s@   F7F7F<-G	G8GG#G.GGGjsonlcsvavror(   filepathc                     | j                   st        d      t        t        j                  | j                               }t        |d      5 }t        ||t        |              d d d        y # 1 sw Y   y xY w)NzDataset does not have a schemawb)schema_r<   r   jsonloadsopenr   dataset_generator)r(   r   schemaoutfiles       r   	save_avror      sV    ??9::$**W__56F	h	w 1' :; 
		s   A,,A5c                     t        |d      5 }t        |       D ])  }t        j                  ||       |j	                  d       + 	 d d d        y # 1 sw Y   y xY w)Nw
)r   r   r   dumpwrite)r(   r   r   datas       r   
save_jsonlr      sC    	h	%g.DIIdG$MM$ / 
		s   8AAc           	      ,   t        |d      5 }t        t        |             D ][  \  }}|dk(  r?t        j                  |t        |j                                     } |j                           j                  |       ] 	 d d d        y # 1 sw Y   y xY w)Nr   r   )
fieldnames)	r   	enumerater   r   
DictWriterrn   keyswriteheaderwriterow)r(   r   r   ir   r   s         r   save_csvr     sq    	h	 !27!;<GAtAvD<MN"""$FOOD!	 = 
		s   A3B

Bc              #     K   | j                   st        d      | j                   D ]X  }|j                  st        d      t        j                  |j                  d      }t        |j                        D ]  }|  Z y w)Nz#Dataset does not have dataset_partsz Dataset part does not have a urlT)stream)dataset_partsr<   urlrequestsr:   r   raw)r(   partresprecords       r   r   r     sj       >??%%xx?@@||DHHT2TXX&FL '	 &s   B Bc            	       F    e Zd Zeddededej                  d   fd       Zy)SdkUtilsr(   r   formatr   c                     |dk(  rt        | |      S |dk(  rt        | |      S |dk(  rt        | |      S t        dt               )Nr   r   r   z$unsupported format must be one of : )r   r   r   rS   supported_formats)r(   r   r   s      r   save_datasetzSdkUtils.save_dataset  sU    Wgx00U?GX..VWh//>?P>QRSSr   N)r   )	r8   
__module____qualname__staticmethodr   strr~   Literalr   r   r   r   r   r     s8    Tg T TfnnMc>d T Tr   r   c                       e Zd Zy)SyncSdkUtilsNr8   r   r   r   r   r   r   r   &      r   r   c                       e Zd Zy)AsyncSdkUtilsNr   r   r   r   r   r   *  r   r   r   )N
   )N   )6r^   r   r   rO   r~   r   r   fastavror   r   r    r   r	   r
   r   r   r   r   r   r   r;   r   r   	overridesr   r   r   r   Unionr,   r0   Anyr>   r@   r   rE   overloadfloatrJ   rY   intrd   r   rq   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s(    
      1 1a a a A !6%C9<< 68NPXZm mn9yV\\(<O2O%P y	CFJJ 	C||$:<RT\^q$qr	C))	+	CC

 Cv||DZ\rDr7s C))	+CFLL3F)FG HUXM   $(	

) % 	
    $(	

) % 	
   $(	

<< 68N NO % 	
 \\(//04  $(	

) % 	
    $(	

) % 	
   $(	

<< 68N NO % 	
 \\(//04/

 /3 /8C= /
FKK0 W (5
V[[%? 5
M 5
p - <w <# <   3  "g " "w 
T 
T	8 		H 	r   