
    +hS@                    r   d dl mZ d dlZd dl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mZmZmZmZmZmZmZmZ d dlZd dlZd dl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(m)Z)m*Z*m+Z+m,Z, dd
l-m.Z.m/Z/ ddl-m0Z1 ddl-m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z; ddgZ< e	d      Z=e G d de             Z> G d dej~                        Z?d%dZ@d&dZAd'dZBd(dZCere?Z0n G d de1e?      Z0e.rd dlmDZD d(dZEnes G d de0ee=         ZFd(dZEd)dZG G d d ed!"      ZHe G d# d$ej~                               ZIy)*    )annotationsN)TYPE_CHECKINGAnyTypeUnionGenericTypeVarCallablecast)datedatetime)	UnpackLiteralClassVarProtocolRequired	TypedDictfinaloverrideruntime_checkable)	FieldInfo   )	BodyIncExQueryModelTHeadersTimeoutNotGiven
AnyMappingHttpxRequestFiles)is_listis_given
is_mapping
parse_dateparse_datetimestrip_not_given)PYDANTIC_V2
ConfigDict)GenericModel)get_argsis_union	parse_obj
get_originis_literal_typeget_model_configget_model_fieldsfield_get_default)RAW_RESPONSE_HEADER	BaseModelr*   _Tc                      e Zd ZU ded<   y)_ConfigProtocolboolallow_population_by_field_nameN__name__
__module____qualname____annotations__     A/var/www/html/venv/lib/python3.12/site-packages/openai/_models.pyr7   r7   <   s    $((r@   r7   c                  v    e Zd ZU er ed      Zded<   n#eedd              Z	 G d de
j                        Zedd       Zee	 d	 	 	 	 	 	 	 dd
              ZeseZesVedd	d	ddddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd       Zed	d	d	ddddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd       Z xZS  xZS )r4   allow)extraClassVar[ConfigDict]model_configc                    | j                   S N)__fields_set__selfs    rA   model_fields_setzBaseModel.model_fields_setF   s     &&&r@   c                  D    e Zd ZU ej                  j
                  Zded<   y)BaseModel.Configr   rD   N)r;   r<   r=   pydanticExtrarC   rD   r>   r?   r@   rA   ConfigrN   L   s    !--E3-r@   rQ   c                L    | j                          d| j                  d       dS )N(z, ))__repr_name____repr_str__rJ   s    rA   __str__zBaseModel.__str__O   s-     $$&'q):):4)@(ACCr@   Nc                .   | j                  |       }i }t        |       }t        |t              r|j                  n|j                  d      }|
t               }t        |       }|j                         D ]S  \  }}	|	j                  }
|
|
|vr|r|}
|
|v r&t        ||
   |	|
      ||<   |j                  |       Ft        |	      ||<   U i }|j                         D ],  \  }
}|
|vst        r|||
<   |j                  |
       |||
<   . t        j                  |d|       t        rGt        j                  |dd        t        j                  |d|       t        j                  |d|       |S |j!                          t        j                  |d|       |S )Npopulate_by_name)valuefieldkey__dict____pydantic_private____pydantic_extra____pydantic_fields_set__rI   )__new__r0   
isinstancer7   r9   getsetr1   itemsalias_construct_fieldaddr2   r(   object__setattr___init_private_attributes)cls_fields_setvaluesmfields_valuesconfigrY   model_fieldsnamer[   r\   _extrarZ   s                rA   	constructzBaseModel.constructV   s    KK+-!#& &/2 11./ 	 %K','--/ 		?KD%++C{s&05Ef}&6VC[PU[^&_d#%&7&>d#		?  ,,. 	/JC,&"'F3KOOC().M#&	/ 	1j-8q"8$?q"6?q";[I  &&( q"2K@r@   pythonFT)	modeincludeexcludeby_aliasexclude_unsetexclude_defaultsexclude_none
round_tripwarningsc       	            |dk7  rt        d      |dk7  rt        d      |	dk7  rt        d      t        
| 	  ||||||      S )a  Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump

            Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

            Args:
                mode: The mode in which `to_python` should run.
                    If mode is 'json', the dictionary will only contain JSON serializable types.
                    If mode is 'python', the dictionary may contain any Python objects.
                include: A list of fields to include in the output.
                exclude: A list of fields to exclude from the output.
                by_alias: Whether to use the field's alias in the dictionary key if defined.
                exclude_unset: Whether to exclude fields that are unset or None from the output.
                exclude_defaults: Whether to exclude fields that are set to their default value from the output.
                exclude_none: Whether to exclude fields that have a value of `None` from the output.
                round_trip: Whether to enable serialization and deserialization round-trip support.
                warnings: Whether to log warnings when invalid fields are encountered.

            Returns:
                A dictionary representation of the model.
            rv   z%mode is only supported in Pydantic v2F+round_trip is only supported in Pydantic v2T)warnings is only supported in Pydantic v2)rx   ry   rz   r{   r|   r}   )
ValueErrorsuperdict)rK   rw   rx   ry   rz   r{   r|   r}   r~   r   	__class__s             rA   
model_dumpzBaseModel.model_dump   sj    D x !HIIU" !NOO4 !LMM7<!+!1)    r@   )	indentrx   ry   rz   r{   r|   r}   r~   r   c       	   	     p    |dk7  rt        d      |	dk7  rt        d      t        
| 	  |||||||      S )a  Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump_json

            Generates a JSON representation of the model using Pydantic's `to_json` method.

            Args:
                indent: Indentation to use in the JSON output. If None is passed, the output will be compact.
                include: Field(s) to include in the JSON output. Can take either a string or set of strings.
                exclude: Field(s) to exclude from the JSON output. Can take either a string or set of strings.
                by_alias: Whether to serialize using field aliases.
                exclude_unset: Whether to exclude fields that have not been explicitly set.
                exclude_defaults: Whether to exclude fields that have the default value.
                exclude_none: Whether to exclude fields that have a value of `None`.
                round_trip: Whether to use serialization/deserialization between JSON and class instance.
                warnings: Whether to show any warnings that occurred during serialization.

            Returns:
                A JSON string representation of the model.
            Fr   Tr   )r   rx   ry   rz   r{   r|   r}   )r   r   json)rK   r   rx   ry   rz   r{   r|   r}   r~   r   r   s             rA   model_dump_jsonzBaseModel.model_dump_json   sY    @ U" !NOO4 !LMM7<!+!1)    r@   )returnzset[str])r   strrH   )rl   zType[ModelT]rm   set[str] | Nonern   ri   r   r   )rw   zLiteral['json', 'python'] | strrx   r   ry   r   rz   r8   r{   r8   r|   r8   r}   r8   r~   r8   r   r8   r   zdict[str, Any])r   z
int | Nonerx   r   ry   r   rz   r8   r{   r8   r|   r8   r}   r8   r~   r8   r   r8   r   r   )r;   r<   r=   r(   r)   rF   r>   propertyr   rL   rO   
BaseConfigrQ   rW   classmethodru   r   model_constructr   r   __classcell__r   s   @rA   r4   r4   A   s   -7g-F*F 
		' 
 
	'	.X(( 	. D D  (,55$5 5 
	5  5n  $ 
 5=!!""'%*!&$!.	 2.	 	.	
 .	 .	  .	 #.	 .	 .	 .	 .	 
.	` 
 "&!!""'%*!&$!+	 +	 	+	
 +	 +	  +	 #+	 +	 +	 +	 +	 
+	q r@   c                    | t        |      S t        r|j                  }nt        t        |j
                        }|t        d|       t        | |      S )Nz"Unexpected field type is None for rZ   type_)r2   r(   
annotationr   typeouter_type_RuntimeErrorconstruct_type)rZ   r[   r\   r   s       rA   rg   rg      sW    } ''  T5,,-}?uEFFU33r@   c                    t        |       xs | }t        |       rt        |       D ]  }t        |      s y yt	        |t
              xs t	        |t              S )zWReturns whether or not the given type is either a `BaseModel` or a union of `BaseModel`TF)r.   r,   r+   is_basemodel
issubclassr4   r*   )r   originvariants      rA   r   r   
  sT    '%F 	GG$	 fi(LJv|,LLr@   c           	        t        |      xs |}t        |      }t        |      r	 t        ||       S |t        k(  rJt        |       s| S t        |      \  }}| j                         D ci c]  \  }}|t        ||       c}}S t        |      st        |t              st        |t              rt        |       r;| D 	cg c]/  }	t        |	      r  t        t         |      j"                  di |	n|	1 c}	S t        |       rBt        |t              r |j"                  di | S  t        t         |      j"                  di | S |t$        k(  r-t        |       s| S |d   }
| D 	cg c]  }	t        |	|
       c}	S |t&        k(  r&t)        | t*              rt'        |       }|| k7  r| S |S | S |t,        k(  r	 t/        |       S |t0        k(  r	 t3        |       S | S # t        $ r Y nw xY w|D ]   }	 t        | |      c S # t        $ r Y w xY w t        d|       c c}}w c c}	w c c}	w # t        $ r | cY S w xY w# t        $ r | cY S w xY w)zLoose coercion to the expected type with construction of nested values.

    If the given value does not match the expected type then it is returned as-is.
    r   rZ   r   z0Could not convert data into a valid instance of r   r?   )r.   r+   r,   validate_type	Exceptionr   r   r   r$   re   r/   r   r4   r*   r"   r   r   ru   listfloatrb   intr   r&   r   r%   )rZ   r   r   argsr   _
items_typer\   itementry
inner_typecoerceds               rA   r   r     sY    '%FE?D	 uE:: ~% L :SXS^S^S`aic4^$jAAaa5!z&)'D
SY[gHh5>ejk\a:e;L.De$..77RWWkke%+&u///-4U#--666~u~L!W
KPQ%U*=QQeS!ElG%N	!%(( }	e$$ Ls  		  	G%EAA 	 MeWUVV b l R  	L	  	L	sY   G +H4H$H#4
H( 	
H9 	G"!G"+G::	HH(H65H69IIc                    t        j                  |       r4t        | t        j                        rt        t        t        | |            S t        t        t        | |            S )z@Strict validation that the given value matches the expected typer   )	inspectisclassr   rO   r4   r   r5   r-   _validate_non_model_typer   s     rA   r   r   a  sF    u*UH4F4F"GB	%/00,5FGGr@   c                      e Zd Zy)r*   N)r;   r<   r=   r?   r@   rA   r*   r*   o  s    r@   )TypeAdapterc                6    t        |       j                  |      S rH   )r   validate_pythonr   s     rA   r   r   v  s    5!11%88r@   c                      e Zd ZU dZded<   y)	RootModelzUsed as a placeholder to easily convert runtime types to a Pydantic format
        to provide validation.

        For example:
        ```py
        validated = RootModel[int](__root__='5').__root__
        # validated: 5
        ```
        r5   __root__N)r;   r<   r=   __doc__r>   r?   r@   rA   r   r   {  s    	 r@   r   c                j    t        |       j                  |      }t        t        |j                        S rH   )_create_pydantic_modelvalidater   r5   r   )r   rZ   models      rA   r   r     s(    &u-66u=B''r@   c                    t         |    S rH   )r   )r   s    rA   r   r     s    r@   c                  r    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   y)FinalRequestOptionsInputzRequired[str]methodurlr   paramsr   headersr   max_retrieszfloat | Timeout | NonetimeoutzHttpxRequestFiles | Nonefilesr   idempotency_keyr   	json_datar    
extra_jsonNr:   r?   r@   rA   r   r     s<    	M####Or@   r   F)totalc                  `    e Zd ZU ded<   ded<   i Zded<    e       Zded<    e       Zded	<    e       Zd
ed<   dZ	ded<   dZ
ded<    e       Zded<   dZded<   dZded<   er ed      Zded<   n G d dej$                        Zd dZd!dZe	 d"	 	 	 	 	 d# fd       ZeseZ xZS  xZS )$FinalRequestOptionsr   r   r   r   r   zUnion[Headers, NotGiven]r   zUnion[int, NotGiven]r   z%Union[float, Timeout, None, NotGiven]r   NzUnion[HttpxRequestFiles, None]r   zUnion[str, None]r   z%Union[Callable[[Any], Any], NotGiven]post_parserzUnion[Body, None]r   zUnion[AnyMapping, None]r   T)arbitrary_types_allowedrE   rF   c                      e Zd ZU dZded<   y)FinalRequestOptions.ConfigTr8   r   N)r;   r<   r=   r   r>   r?   r@   rA   rQ   r     s    ,0#T0r@   rQ   c                R    t        | j                  t              r|S | j                  S rH   )rb   r   r   )rK   r   s     rA   get_max_retriesz#FinalRequestOptions.get_max_retries  s$    d&&1r@   c                    t        | j                        sy | j                  j                  t              r3i | j                  | _        | j                  j	                  t               y y rH   )r#   r   rc   r3   poprJ   s    rA   _strip_raw_response_headerz.FinalRequestOptions._strip_raw_response_header  sL    %<</0+dll+DLLL01 1r@   c                    |j                         D ci c]  \  }}|t        |       }}}t        rt        |   |fi |S t        t        t        |   |fi |      S c c}}w rH   )re   r'   r(   r   r   r   r   ru   )rl   rm   rn   r\   rZ   kwargsr   s         rA   ru   zFinalRequestOptions.construct  st     %lln	"
 U ''"
 "
 7*;A&AA'):;)Q&)QRR"
s   A")r   r   r   r   )r   NonerH   )rm   r   rn   z Unpack[FinalRequestOptionsInput]r   r   )r;   r<   r=   r>   r   r   r   r   r   r   r   r   r   r   r(   r)   rF   rO   r   rQ   r   r   r   ru   r   r   r   r   s   @rA   r   r     s    K	HFE(0
G%2(0
K%25=ZG2?,0E)0(,O%,9AK6C $(I '*.J'.-7PT-U*U	1X(( 	1 
2  (,S$S 3S 
	S S # r@   r   )rZ   ri   r[   r   r\   r   r   ri   )r   r   r   r8   )rZ   ri   r   r   r   ri   )r   ztype[_T]rZ   ri   r   r5   )r   r5   r   zType[RootModel[_T]])J
__future__r   r   typingr   r   r   r   r   r	   r
   r   r   r   typing_extensionsr   r   r   r   r   r   r   r   r   rO   pydantic.genericspydantic.fieldsr   _typesr   r   r   r   r   r   r   r    r!   _utilsr"   r#   r$   r%   r&   r'   _compatr(   r)   r*   BaseGenericModelr+   r,   r-   r.   r/   r0   r1   r2   
_constantsr3   __all__r5   r7   r4   rg   r   r   r   r   r   r   r   r   r   r?   r@   rA   <module>r      s7   "  T T T #
 
 
   %
 
 
  - 5	 	 	 ,
'T] )h ) )w"" wt4
MGTH L'  $9 
L'"+ ( 
y 
 <$(,, <$ <$r@   