
    f jU                       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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-m.Z.m/Z/m0Z0m1Z1 dd
l2m3Z3m4Z4m5Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@ erd dlAmBZBmCZC ddgZD e	d          ZEe G d de                      ZF G d dejG                  ZGd@dZHdAdZIdBd ZJdCd!ZKe G d" d#e                      ZL G d$ d%          ZMdDd*ZNdEd/ZOdFd1ZPereGZ5n G d2 de6eG          Z5e3rd d3lmQZQ dFd4ZRnes G d5 d6e5eeE                   ZSdFd7ZRdGd9ZT G d: d;ed<=          ZUe G d> d?ejG                              ZVdS )H    )annotationsN)TYPE_CHECKINGAnyTypeUnionGenericTypeVarCallablecast)datedatetime)
UnpackLiteralClassVarProtocolRequired	TypedDict	TypeGuardfinaloverrideruntime_checkable)	FieldInfo   )	BodyIncExQueryModelTHeadersTimeoutNotGiven
AnyMappingHttpxRequestFiles)
PropertyInfois_listis_given
is_mapping
parse_dateparse_datetimestrip_not_givenextract_type_argis_annotated_typestrip_annotated_type)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)
ModelFieldModelFieldsSchema	BaseModelr/   _Tc                      e Zd ZU ded<   dS )_ConfigProtocolboolallow_population_by_field_nameN__name__
__module____qualname____annotations__     bC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\openai/_models.pyr>   r>   E   s         ((((((rG   r>   c                  H    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s6e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'	d0 fd*            Z xZS  xZS )1r;   allow)extraClassVar[ConfigDict]model_configreturnset[str]c                    | j         S N)__fields_set__selfs    rH   model_fields_setzBaseModel.model_fields_setO   s     &&rG   c                  2    e Zd ZU ej        j        Zded<   dS )BaseModel.Configr   rK   N)rB   rC   rD   pydanticExtrarJ   rK   rE   rF   rG   rH   ConfigrW   U   s(         !-E------rG   rZ   strc                \    |                                   d|                     d           dS )N(z, ))__repr_name____repr_str__rS   s    rH   __str__zBaseModel.__str__X   s5     $$&&CC):):4)@)@CCCCrG   NclsType[ModelT]_fields_setset[str] | Nonevaluesobjectr   c                   |                      |           }i }t          |           }t          |t                    r|j        n|                    d          }|t                      }t          |           }|                                D ]]\  }}	|	j	        }
|
|
|vr|r|}
|
|v r1t          ||
         |	|
          ||<   |                    |           Kt          |	          ||<   ^i }|                                D ]0\  }
}|
|vr't          r|||
<   |                    |
           |||
<   1t                              |d|           t          rUt                              |dd            t                              |d|           t                              |d|           n0|                                 t                              |d|           |S )Npopulate_by_name)valuefieldkey__dict____pydantic_private____pydantic_extra____pydantic_fields_set__rR   )__new__r5   
isinstancer>   r@   getsetr6   itemsalias_construct_fieldaddr7   r-   rg   __setattr___init_private_attributes)rb   rd   rf   mfields_valuesconfigri   model_fieldsnamerk   rl   _extrarj   s                rH   	constructzBaseModel.construct_   s    KK+-!#&& &/220F11.// 	  	 %%K',,'--// 		? 		?KD%+C s&0 5E f} ?&6VC[PU[^&_&_&_d#%%%%&7&>&>d## ,,.. 	/ 	/JC,& / /"'F3KKOOC((().M#&1j-888 
	Aq"8$???q"6???q";[IIII &&((( q"2K@@@rG   pythonFT)	modeincludeexcludeby_aliasexclude_unsetexclude_defaultsexclude_none
round_tripwarningsr   Literal['json', 'python'] | strr   r   r   r   r?   r   r   r   r   r   dict[str, Any]c       	            |dk    rt          d          |dk    rt          d          |	dk    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.
            r   z%mode is only supported in Pydantic v2F+round_trip is only supported in Pydantic v2T)warnings is only supported in Pydantic v2)r   r   r   r   r   r   )
ValueErrorsuperdict)rT   r   r   r   r   r   r   r   r   r   	__class__s             rH   
model_dumpzBaseModel.model_dump   s    D x J !HIIIU" P !NOOO4 N !LMMM77<<!+!1)     rG   )	indentr   r   r   r   r   r   r   r   r   
int | Nonec       	   	         |dk    rt          d          |	dk    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   r   r   r   r   r   r   )r   r   json)rT   r   r   r   r   r   r   r   r   r   r   s             rH   model_dump_jsonzBaseModel.model_dump_json   st    @ U" P !NOOO4 N !LMMM77<<!+!1)     rG   )rN   rO   )rN   r[   rQ   )rb   rc   rd   re   rf   rg   rN   r   )r   r   r   r   r   r   r   r?   r   r?   r   r?   r   r?   r   r?   r   r?   rN   r   )r   r   r   r   r   r   r   r?   r   r?   r   r?   r   r?   r   r?   r   r?   rN   r[   )rB   rC   rD   r-   r.   rM   rE   propertyr   rU   rX   
BaseConfigrZ   ra   classmethodr   r   model_constructr   r   __classcell__r   s   @rH   r;   r;   J   s         .-7Zg-F-F-FFFFFF 
		' 	' 	' 
 
	'	. 	. 	. 	. 	.X( 	. 	. 	. D D D XD  (,5 5 5 5 X [5n  $ $ c 
 5=!!""'%*!&$!.	 .	 .	 .	 .	 .	 .	 
.	` 
 "&!!""'%*!&$!+	 +	 +	 +	 +	 +	 +	 
+	 +	 +	 +	 +	qc c c crG   rj   rg   rk   r   rl   r[   rN   c                    | t          |          S t          r|j        }nt          t          |j                  }|t          d|           t          | |          S )Nz"Unexpected field type is None for rj   type_)r7   r-   
annotationr   typeouter_type_RuntimeErrorconstruct_type)rj   rk   rl   r   s       rH   rw   rw     so     ( ''' . T5,-- GEEEFFFU3333rG   r   r   r?   c                    t          |           r&t          |           D ]}t          |          r dS dS t          |           S )zWReturns whether or not the given type is either a `BaseModel` or a union of `BaseModel`TF)r1   r0   is_basemodelis_basemodel_type)r   variants     rH   r   r     sV      	 	GG$$ tt uU###rG   /TypeGuard[type[BaseModel] | type[GenericModel]]c                x    t          |           p| }t          |t                    pt          |t                    S rQ   )r3   
issubclassr;   r/   )r   origins     rH   r   r     s3    '%Ffi((LJv|,L,LLrG   c                N   t                    r(t                    dd         }t          d          nt                      }t	                    p}t                    }t          |          r	 t          t          d          |           S # t          $ r Y nw xY wt          |          }|rtt          |           re|                     |j        p|j                  }|rBt          |t                    r-|j                            |          }|rt#          ||           S |D ]%}	 t#          | |          c S # t          $ r Y "w xY wt%          d           |t&          k    rCt          |           s| S t                    \  }	fd	|                                 D             S t+                    st-          |t.                    st-          |t0                    rnt3          |           rfd
| D             S t          |           rBt-          t.                    r j        di | S  t          t6                    j        di | S |t8          k    r't3          |           s| S |d         fd| D             S |t:          k    r0t          | t<                    rt;          |           }
|
| k    r| S |
S | S t>          k    r"	 tA          |           S # t          $ r | cY S w xY wtB          k    r"	 tE          |           S # t          $ r | cY S w xY w| S )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   Nr   ztype[object]r   rj   )unionmeta_annotationsr   z0Could not convert data into a valid instance of c                :    i | ]\  }}|t          |           S r   r   ).0rl   item
items_types      rH   
<dictcomp>z"construct_type.<locals>.<dictcomp>_  s,    aaaic4^$jAAAaaarG   c                r    g | ]3}t          |          r  t          t                    j        d i |n|4S )rF   )r&   r   r   r   )r   entryr   s     rH   
<listcomp>z"construct_type.<locals>.<listcomp>c  sK    kkk\a:e;L;LW.De$$.77777RWkkkrG   c                2    g | ]}t          |           S r   r   )r   r   
inner_types     rH   r   z"construct_type.<locals>.<listcomp>p  s&    QQQ%U*===QQQrG   rF   )#r+   r0   r*   tupler3   r1   validate_typer   	Exception_build_discriminated_union_metar&   rs   field_alias_from
field_namerr   r[   mappingr   r   r   ru   r4   r   r;   r/   r$   r   r   listfloatintr   r(   r   r'   )rj   r   metar   argsdiscriminatorvariant_valuevariant_typer   _coercedr   r   s    `         @@rH   r   r   $  s     qrr" **ww '%FE??D #W	 tNE'B'B%PPPP 	 	 	D	" 8eVZ[[[ 	KZ.. 	K!IIm&D&`H`aaM KM3!?!? K,488GG K)EJJJJ  	 	G%EAAAAAA    UeUUVVV~ b%   	L :aaaaSXS^S^S`S`aaaa5!! 7z&)'D'D 7
SY[gHhHh 75>> 	lkkkkejkkkke 	7%++ 0&u/////-4U##-66666~ Ru~~ 	L!W
QQQQ5QQQQ eS!! 	EllG% N 	!%((( 	 	 	LLL	 } 	e$$$ 	 	 	LLL	 LsH   9B 
B%$B%4E
EEK& &K54K5L L"!L"c                      e Zd ZU ded<   dS )CachedDiscriminatorTypeDiscriminatorDetails__discriminator__NrA   rF   rG   rH   r   r     s         ++++++rG   r   c                  <    e Zd ZU ded<   	 ded<   	 ded<   	 ddZdS )r   r[   r   
str | Noner   dict[str, type]r   discriminator_fielddiscriminator_aliasrN   Nonec               0    || _         || _        || _        d S rQ   )r   r   r   )rT   r   r   r   s       rH   __init__zDiscriminatorDetails.__init__  s      - 3rG   N)r   r   r   r[   r   r   rN   r   )rB   rC   rD   rE   r   rF   rG   rH   r   r     s^         OOO !    
	4 	4 	4 	4 	4 	4rG   r   r   r   tuple[Any, ...]DiscriminatorDetails | Nonec                8   t          | t                    r| j        S d }|D ]'}t          |t                    r|j        	|j        } n(|sd S i }d }t          |           D ]}t          |          }t          |          rt          rbt          ||          }|s;|
                    d          }|d         }|d         dk    r%|d         D ]}	t          |	t                    r|||	<   t          d|j                  
                    |          }
|
s|
j        }|
j        rEt!          |
j                  r1t          |
j                  D ]}	t          |	t                    r|||	<   
|sd S t#          |||          }|t          t          |           _        |S )Nserialization_aliasschemar   literalexpectedzdict[str, FieldInfo])r   r   r   )rr   r   r   r#   r   r0   r,   r   r-   _extract_field_schema_pv2rs   r[   r   
__fields__rv   r   r4   r   )r   r   discriminator_field_namer   r   r   r   rk   field_schemar   
field_infodetailss               rH   r   r     s   %011 '&&+/&  
j,// 	J4L 	'1'?$E# t!G&*E?? 5 5&w//W%% 	5 51';STT  ',ii0E&F&F#$X'94 5!-j!9 5 5%eS11 5-4GEN!"8':LMMQQRjkk
!  '1&6#( 5_Z=R-S-S 5!)**?!@!@ 5 5%eS11 5-4GEN t"4/  G
 >ED	 %((:NrG   modeltype[BaseModel]r   ModelField | Nonec                    | j         }|d         dk    rd S |d         }|d         dk    rd S t          d|          }|d                             |          }|sd S t          d|          S )Nr   r   r   zmodel-fieldsr:   fieldsr9   )__pydantic_core_schema__r   rs   )r   r   r   fields_schemark   s        rH   r   r     s    +Ff~  t8$MV. t,m<<M(#''
33E te$$$rG   type[_T]c                    t          j        |           r=t          | t          j                  r#t          t          t          | |                    S t          t          t          | |                    S )z@Strict validation that the given value matches the expected typer   )	inspectisclassr   rX   r;   r   r<   r2   _validate_non_model_typer   s     rH   r   r     s`    u 1*UH4F"G"G 1B	%//000,5FFFGGGrG   c                      e Zd ZdS )r/   N)rB   rC   rD   rF   rG   rH   r/   r/     s        rG   )TypeAdapterc                F    t          |                               |          S rQ   )r   validate_pythonr   s     rH   r   r     s    5!!11%888rG   c                      e Zd ZU dZded<   dS )	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
        ```
        r<   __root__N)rB   rC   rD   __doc__rE   rF   rG   rH   r   r     s%         	 	 	rG   r   c                z    t          |                               |          }t          t          |j                  S rQ   )_create_pydantic_modelvalidater   r<   r   )r   rj   r   s      rH   r   r   ,  s/    &u--66u==B'''rG   Type[RootModel[_T]]c                    t           |          S rQ   )r   )r   s    rH   r   r   0  s    rG   c                  t    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<   dS )FinalRequestOptionsInputzRequired[str]methodurlr   paramsr   headersr   max_retrieszfloat | Timeout | NonetimeoutzHttpxRequestFiles | Nonefilesr[   idempotency_keyr   	json_datar!   
extra_jsonNrA   rF   rG   rH   r  r  4  s         MMM########OOOrG   r  F)totalc                  v    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_allowedrL   rM   c                      e Zd ZU dZded<   dS )FinalRequestOptions.ConfigTr?   r  N)rB   rC   rD   r  rE   rF   rG   rH   rZ   r  V  s$         ,0#000000rG   rZ   r   rN   c                H    t          | j        t                    r|S | j        S rQ   )rr   r
  r    )rT   r
  s     rH   get_max_retriesz#FinalRequestOptions.get_max_retriesY  s&    d&11 	rG   r   c                    t          | j                  sd S | j                            t                    r/i | j        | _        | j                            t                     d S d S rQ   )r%   r	  rs   r8   poprS   s    rH   _strip_raw_response_headerz.FinalRequestOptions._strip_raw_response_header^  sg    %% 	F</00 	2+dl+DLL011111	2 	2rG   rd   re   rf    Unpack[FinalRequestOptionsInput]c                    d |                                 D             }t          r t                      j        |fi |S t	          t
           t                      j        |fi |          S )Nc                4    i | ]\  }}|t          |          S rF   )r)   )r   rl   rj   s      rH   r   z1FinalRequestOptions.construct.<locals>.<dictcomp>r  s8     "
 "
 "
 U ''"
 "
 "
rG   )ru   r-   r   r   r   r  r   )rb   rd   rf   kwargsr   s       rH   r   zFinalRequestOptions.constructl  s    "
 "
 %llnn	"
 "
 "
  	B*577*;AA&AAA'):):;)Q)Q&)Q)QRRRrG   )r
  r   rN   r   )rN   r   rQ   )rd   re   rf   r  rN   r  )rB   rC   rD   rE   r  r    r	  r
  r  r  r  r  r  r  r-   r.   rM   rX   r   rZ   r  r  r   r   r   r   r   r   s   @rH   r  r  A  s        KKKHHHF(0

G2222(0

K22225=XZZG????,0E0000(,O,,,,9AKCCCC $(I''''*.J.... 1-7ZPT-U-U-UUUUUU	1 	1 	1 	1 	1X( 	1 	1 	1       
2 2 2 2  (,S S S S S S [S  $#$ $ $ $rG   r  )rj   rg   rk   r   rl   r[   rN   rg   )r   r   rN   r?   )r   r   rN   r   )rj   rg   r   r   rN   rg   )r   r   r   r   rN   r   )r   r   r   r[   rN   r   )r   r   rj   rg   rN   r<   )r   r<   rN   r  )W
__future__r   r   typingr   r   r   r   r   r	   r
   r   r   r   typing_extensionsr   r   r   r   r   r   r   r   r   r   rX   pydantic.genericspydantic.fieldsr   _typesr   r   r   r   r   r   r    r!   r"   _utilsr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   _compatr-   r.   r/   BaseGenericModelr0   r1   r2   r3   r4   r5   r6   r7   
_constantsr8   pydantic_core.core_schemar9   r:   __all__r<   r>   r;   rw   r   r   r   r   r   r   r   r   r   r   r   r   r  r  rF   rG   rH   <module>r,     sy   " " " " " "  T T T T T T T T T T T T T T T T T T T T # # # # # # # #                             % % % % % %
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                                 , + + + + + HGGGGGGGG
'WT]] ) ) ) ) )h ) ) )w w w w w" w w wt4 4 4 4	$ 	$ 	$ 	$M M M M
c c c cL , , , , ,h , , ,&4 &4 &4 &4 &4 &4 &4 &4R8 8 8 8v% % % %$H H H H  LL    '      $$$$$$9 9 9 9 9 
      L'"+   ( ( ( (       
 
 
 
 
y 
 
 
 
 <$ <$ <$ <$ <$(, <$ <$ <$ <$ <$rG   