
    Xi                       S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSK	J
r
  SSKJrJrJr  SSKJr  SSKJrJrJrJrJrJrJrJr  SSKJrJr  SS	KJrJrJrJ r J!r!  SS
K"J#r#  SSK$J%r%J&r&  SSK'J(r(  SSKJ)r)J*r*  SSK+J,r,  SSK-J.r.J/r/J0r0J1r1  SSK2J3r3J4r4J5r5J6r6  SSK7J8r8J9r9  SSK:J;r;J<r<  SSK=J>r>J?r?  SSK@JArA  SSKBJCrC  SSKDJErE  SSKFJGrGJHrHJIrIJJrJ  SSKKJLrLJMrM  \(       a!  SSKNJOrP  SSKNJQrQJRrR  SSKNJSrT  SSKUJVrV  SSK2JWrW  O\X" 5       rP\X" 5       rT\XR                  rZ " S  S!\[5      r\S"S#.   S:S$ jjr]\" S%5      r^\" S&\P\T\]4S'9 " S( S)\
5      5       r_S;S* jr`S<S+ jra            S=S, jrbS>S- jrcS?S. jrd        S@S/ jreS&S&SS"S0.               SAS1 jjrfSBS2 jrg " S3 S45      rh " S5 S65      riSCS7 jrjSCS8 jrk\SDS9 j5       rlg)Ez"Private logic for creating models.    )annotationsN)ABCMeta)cachepartialwraps)FunctionType)TYPE_CHECKINGAnyCallableGenericLiteralNoReturnTypeVarcast)PydanticUndefinedSchemaSerializer)TypeAliasTypedataclass_transform
deprecatedget_args
get_origin)typing_objects   )PydanticUndefinedAnnotationPydanticUserError)create_schema_validator)GenericBeforeBaseModelWarningPydanticDeprecatedSince20   )ConfigWrapper)DecoratorInfosPydanticDescriptorProxyget_attribute_from_basesunwrap_wrapped_function)collect_model_fieldsis_valid_field_nameis_valid_privateattr_namerebuild_model_fields)GenerateSchemaInvalidSchemaError)PydanticGenericMetadataget_model_typevars_map)import_cached_base_modelimport_cached_field_info)set_model_mocks)
NsResolver)generate_pydantic_signature)_make_forward_refeval_type_backportis_classvar_annotationparent_frame_namespace)LazyClassAttributeSafeGetItemProxy)Field)	FieldInfoModelPrivateAttr)PrivateAttr)	BaseModel)PydanticExtraInfoc                  0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )_ModelNamespaceDict4   zsA dictionary subclass that intercepts attribute setting on model classes and
warns about overriding of decorators.
c                   > U R                  US 5      nU(       aI  X#LaE  [        U[        5      (       a0  [        R                  " SU SUR
                  R                   S3SS9  [        TU ]!  X5      $ )N`z"` overrides an existing Pydantic `z` decoratorr   
stacklevel)	get
isinstancer"   warningswarndecorator_infodecorator_reprsuper__setitem__)selfkvexisting	__class__s       Y/var/www/html/venv/lib/python3.13/site-packages/pydantic/_internal/_model_construction.pyrL   _ModelNamespaceDict.__setitem__9   sj    D))jCZ.[.[MMA389P9P9_9_8``kl
 w"1((     )rN   strrO   objectreturnNone)__name__
__module____qualname____firstlineno____doc__rL   __static_attributes____classcell__rQ   s   @rR   r?   r?   4   s    ) )rT   r?   Finitc                    g)zOnly for typing purposes. Used as default value of `__pydantic_fields_set__`,
`__pydantic_extra__`, `__pydantic_private__`, so they could be ignored when
synthesizing the `__init__` signature.
NrU   rb   s    rR   NoInitFieldre   D   s    rT   _TT)kw_only_defaultfield_specifiersc                     ^  \ rS rSr   S               SU 4S jjjr\(       d  SS jr\SS j5       rSU 4S jjr	\
R                  r\
R                  r\SS j5       r\\" SSS	9SS
 j5       5       r\SS j5       rSU 4S jjrSrU =r$ )ModelMetaclassR   Nc           	     b
  >^%^&^' U(       Ga  [         R                  S:  a9  SU;   a  US   nO?SSKJn	Jn
Jn  U" U5      =n(       a  U
" XR                  S9nO0 nOUR                  S0 5      nU R                  U5      u  pn[        R                  " X#X5      nUR                  US'   [        X8UR                  X5      nU(       d  U(       a3  [        X25      m%T%b  [        T%5      S.U%4S jj5       nUUS	'   O	[         US	'   XS
'   0 UEUEUS'   [#        S[$        T(U ]L  " XX#40 UD65      n[)        5       nUR*                  n[,        U;   aF  UR/                  [,        5      UR/                  U5      :  a  [0        R2                  " [5        S5      SS9  [7        UR8                  SS5      (       + Ul        UR<                  UR<                  L a  SOS	Ul        0 Ul         [B        RD                  " USS9Ul#        URF                  RI                  U5        U(       a	  UUl%        GOv[7        US0 5      R                  SS5      m'[7        USS5      =(       d    T'm&T&(       Ga0  T'(       Ga(  [M        U&4S jT' 5       5      (       Gd  SSK'J(n  [S        U'4S jT& 5       5      nUT';   aU  UT&;  aO  SRU                  U Vs/ s H  nURV                  PM     sn5      nURV                   SU SURV                   SU S3nOT'U-   nSRU                  U Vs/ s H  n[Y        U5      PM     sn5      nS U S!3nS"U S#3n[,        U;  aF  SRU                  U Vs/ s H  nURV                  PM     snU/-   5      nUS$URV                   S%U S&3-  n[[        U5      eSST&S'.Ul%        SUl.        UR_                  5        H  u  nnURa                  UU5        M     U(       a  [c        [e        5       5      Ul3        [7        US(S5      n [i        U [j        5      (       a  [m        U 5      n [o        U S)9n![q        UUU!S*9  URF                  Rr                  R_                  5        V"V#s0 s H  u  n"n#U"U#Rt                  _M     sn#n"Ul;        URx                  (       a  [{        U5        O[}        UUU!SUS+9  UR~                  (       a  S,U;  a  [        UU5        [$        UUG]  " S0 UD6  U$ S- H  n$UR                  U$S5        M     UR                  S0 5      R                  5         [$        T(U ]L  " XX#40 UD6$ s  snf s  snf s  snf s  sn#n"f )/a-  Metaclass for creating Pydantic models.

Args:
    cls_name: The name of the class to be created.
    bases: The base classes of the class to be created.
    namespace: The attribute dictionary of the class to be created.
    __pydantic_generic_metadata__: Metadata for generic models.
    __pydantic_reset_parent_namespace__: Reset parent namespace.
    _create_model_module: The module of the class to be created, if created by `create_model`.
    **kwargs: Catch-all for any other keyword arguments.

Returns:
    The new class created by the metaclass.
)      __annotations__r   )Formatcall_annotate_function!get_annotate_from_class_namespace)formatmodel_configNc               ,   > [        X5        T" X5        g)z`We need to both initialize private attributes and call the user-defined model_post_init
method.
N)init_private_attributes)rM   contextoriginal_model_post_inits     rR   wrapped_model_post_init7ModelMetaclass.__new__.<locals>.wrapped_model_post_init   s    
 0>0?rT   model_post_init__class_vars____private_attributes__type[BaseModel]zClasses should inherit from `BaseModel` before generic classes (e.g. `typing.Generic[T]`) for pydantic generics to work properly.r   rC   __pydantic_base_init__FT)replace_wrapped_methods__pydantic_generic_metadata__
parametersrU   __parameters__c              3  ,   >#    U  H	  oT;   v   M     g 7fNrU   ).0xr   s     rR   	<genexpr>)ModelMetaclass.__new__.<locals>.<genexpr>   s     ?kYjTUZYjs   )RootModelRootTypec              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7fr   rU   )r   r   parent_parameterss     rR   r   r      s     .c*QQbHbqq*s   		z, zS is a subclass of `RootModel`, but does not include the generic type identifier(s) zL in its parameters. You should parametrize RootModel directly, e.g., `class z(RootModel[z	]): ...`.ztyping.Generic[]zJAll parameters must be present on typing.Generic; you should inherit from .z- Note: `typing.Generic` must go last: `class (z): ...`))originargsr   __pydantic_parent_namespace__)parent_namespace)config_wrapperns_resolver)raise_errorscreate_model_module__hash__)__pydantic_fields_set____pydantic_extra____pydantic_private__rM   r<   rw   r
   rX   rY   )Dsysversion_infoannotationlibrp   rq   rr   
FORWARDREFrE   _collect_bases_datar    	for_modelconfig_dictinspect_namespaceignored_typesget_model_post_initr   rv   r   rK   __new__r-   __mro__r   indexrG   rH   r   getattr__init____pydantic_custom_init__r{   __pydantic_post_init____pydantic_setattr_handlers__r!   build__pydantic_decorators__update_from_configr   all
root_modelr   tuplejoinrZ   rV   	TypeError__pydantic_complete__items__set_name__build_lenient_weakvaluedictr5   r   rF   dictunpack_lenient_weakvaluedictr0   set_model_fieldscomputed_fieldsinfo__pydantic_computed_fields__defer_buildr/   complete_model_classfrozenset_default_hash_func__pydantic_init_subclass__popclear))mcscls_namebases	namespacer   #__pydantic_reset_parent_namespace___create_model_modulekwargsraw_annotationsrp   rq   rr   annotatebase_field_names
class_varsbase_private_attributesr   private_attributesry   cls
BaseModel_mror   missing_parametersr   parameters_strerror_messagecombined_parametersgeneric_type_label	bases_strnameobjr   r   rN   rO   instance_slotrx   r   r   rQ   s)                                        @@@rR   r   ModelMetaclass.__new__T   sY   6 7*%2&/0A&BO po#DY#OOxO*@RcRc*d*,"+--0A2"FDGD[D[\aDbA*A*44U_N(6(B(BIn%!2N,H,H*" "%<+>y+P(+7 34@ 5@ 4KI/03JI/0*4&'2c5L2cPb2cI./(%'/#*d]c*deC13J++C#~#))G"4syy7L"L1B  ! 07s||E]_d/e+eC(++z/I/IIO` & 13C-*8*>*>s\`*aC'''::>J -4Q1$+C1PRT$U$Y$YZfhj$k!$S*:DAVEV
"3C?kYj?k<k<k>)..c*.c)c&(,==BS[eBe *.HZ3[HZ1AJJHZ3[)\"||n,-. /WWZWcWcVddop~o  @IJ & /@BT.T+)-DW3XDWqCFDW3X)Y/>~>Na-P*88J7K1N & #%/
 )-		u2Mu!1::u2MQcPd2d(eI)"OPSP\P\~]^_h^iiq rM $M22 #",51 ).C% 0557	c  d+ 8 34OPfPh4i16=cCbdh6i*D11#?@P#Q $6FGKS[Y
 '*&A&A&Q&Q&W&W&Y0&Yda166	&Y0C, ))$ %"!&(< $$9)D%c51
 #s6@@J "i! "i
 MM+R06687?3%MfMMg 4\ 4Y 3N>0s   0TT!T&T+c                n    U R                   R                  S5      nU(       a	  X;   a  X!   $ [        U5      e)zNThis is necessary to keep attribute access working for class attribute access.r}   )__dict__rE   AttributeError)rM   itemr   s      rR   __getattr__ModelMetaclass.__getattr__  s4    !%!2!23K!L!d&@)// &&rT   c                    [        5       $ r   )r?   )r   r   r   s      rR   __prepare__ModelMetaclass.__prepare__$  s    "$$rT   c                h   > [         R                  " SU R                   S3SS9  [        TU ]  U5      $ )Nz>For performance reasons, virtual subclasses registered using 'zK.register()' are not supported in 'isinstance()' and 'issubclass()' checks.r   rC   )rG   rH   r\   rK   register)rM   subclassrQ   s     rR   r   ModelMetaclass.register,  s?    LTM^M^L_ `M M	

 w))rT   c                L   [        5       n[        5       n[        5       n0 nU  H{  n[        XQ5      (       d  M  XQLd  M  UR                  [	        US0 5      R                  5       5        UR                  UR                  5        UR                  UR                  5        M}     X#U4$ )N__pydantic_fields__)r-   set
issubclassupdater   keysr|   r}   )r   r<   field_namesr   r   bases         rR   r   "ModelMetaclass._collect_bases_data7  s    ,.	 #"u
:<D$**t/D""741F#K#P#P#RS!!$"5"56"))$*E*EF  (:::rT   XThe `__fields__` attribute is deprecated, use the `model_fields` class property instead.)categoryc                P    [         R                  " S[        SS9  [        U S0 5      $ )Nr   r   rC   r   )rG   rH   r   r   rM   s    rR   
__fields__ModelMetaclass.__fields__F  s+    
 	f%	

 t2B77rT   c                    SU R                   ;  a  g[        SU R                  5      n[        SU R                  5      nUb  UR                  nOSn[        S UR                  5        5       5      =(       a    U$ )zWhether the fields were successfully collected (i.e. type hints were successfully resolved).

This is a private attribute, not meant to be used outside Pydantic.
r   Fdict[str, FieldInfo]zPydanticExtraInfo | NoneTc              3  8   #    U  H  oR                   v   M     g 7fr   )	_complete)r   
field_infos     rR   r   >ModelMetaclass.__pydantic_fields_complete__.<locals>.<genexpr>c  s     O:NJ'':Ns   )r   r   r   __pydantic_extra_info__completer   values)rM   field_infospydantic_extra_infoextra_completes       rR   __pydantic_fields_complete__+ModelMetaclass.__pydantic_fields_complete__R  sp     !5143K3KL"#=t?[?[\*099N!NO+:L:L:NOObTbbrT   c                d   > [        [        TU ]	  5       5      nSU;   a  UR                  S5        U$ )Nr   )listrK   __dir__remove)rM   
attributesrQ   s     rR   r  ModelMetaclass.__dir__e  s0    %'/+,
:%l+rT   rU   )NTN)r   rV   r   tuple[type[Any], ...]r   dict[str, Any]r   zPydanticGenericMetadata | Noner   boolr   
str | Noner   r
   rX   type)r   rV   rX   r
   )r   r
   r   r
   rX   zdict[str, object])r   type[_T]rX   r  )r   r  rX   z6tuple[set[str], set[str], dict[str, ModelPrivateAttr]])rX   r   )rX   r  )rX   z	list[str])rZ   r[   r\   r]   r   r	   r   classmethodr   r   r  __instancecheck____subclasscheck__staticmethodr   propertyr   r   r
  r  r_   r`   ra   s   @rR   rj   rj   R   s    IM48+/DNDN %DN "	DN
 (FDN .2DN )DN DN 
DN DNL 	' % %* ....; ; bmq8 8 c c$ rT   rj   c               "   [        U SS5      c  0 nU R                  R                  5        HS  u  p4UR                  (       a  UR	                  S0 U R
                  EUES9nOUR	                  SS9nU[        Ld  MO  XRU'   MU     [        U SU5        gg)zThis function is meant to behave like a BaseModel method to initialize private attributes.

It takes context as an argument since that's what pydantic-core passes when calling it.

Args:
    self: The BaseModel instance.
    context: The context.
r   NT)call_default_factoryvalidated_data)r  )r   r}   r   $default_factory_takes_validated_dataget_defaultr   r   object_setattr)rM   rw   pydantic_privater   private_attrdefaults         rR   rv   rv   l  s     t+T2:"&"="="C"C"ED@@&22)->c>cRb>c 3  '222M//)0& #F 	t35EF ;rT   c                f    SU ;   a  U S   $ [        5       n[        US5      nX2R                  La  U$ g)zaGet the `model_post_init` method from the namespace or the class bases, or `None` if not defined.r{   N)r-   r#   r{   )r   r   r<   r{   s       rR   r   r     sB    I%*++(*I.u6GHO777 8rT   c           
     8  ^ SSK JmJn  [        5       nU[	        5       -   n0 nSU;   d  SU ;   a  [        S5      e[        5       n	[        U R                  5       5       GH  u  pU
S:X  d  U
S:X  a  M  [        U[        5      (       aA  UR                  U S   :X  a.  SU ;   a(  UR                  R                  U S    S	35      (       a  Mj  [        X5      (       d  UR                  R                  S
:X  a  U	R                  U
5        M  [        UT5      (       aV  U
R                  S5      (       a  [!        SU
< S	35      e[#        U
5      (       a  [!        SSU
-   < SU
< S	35      eXU
'   X
	 GM  [        X5      (       a>  [#        U
5      (       d.  U
R%                  S5      =(       d    Sn[!        SU< SU
< S	35      eU
R                  S5      (       a  GMu  ['        U
5      (       a1  X;  d  [)        X   5      (       d  [+        TU" US95      X'   X
	 GM  GM  X;   a  GM  X;  d  GM  X;   a  [-        SU
< S3SS9e[        X5      (       a  [-        SU
< S3SS9e[-        SU
 SU< SU
 S3SS9e   UR                  5        GH  u  p['        U5      (       d  M  X;  d  M  X;  d  M&  [)        U5      (       a  M8  X;  d  M?  [/        USS5      S
:w  d  MR  [        U[0        5      (       aB  [2        R4                  " S5      nUb)   [7        [9        USSS 9UR:                  UR<                  S!9n[>        R@                  " [C        U5      5      (       a,  [E        U5      tnn[G        U4S" jU 5       S5      nUb  UX'   M  U" 5       X'   GM     U$ ! [         [
        4 a     Nrf = f)#a  Iterate over the namespace and:
* gather private attributes
* check for items which look like fields but are not (e.g. have no annotation) and warn.

Args:
    namespace: The attribute dictionary of the class to be created.
    raw_annotations: The (non-evaluated) annotations of the model.
    ignored_types: A tuple of ignore types.
    base_class_vars: A set of base class class variables.
    base_class_fields: A set of base class fields.

Returns:
    A dict containing private attributes info.

Raises:
    TypeError: If there is a `__root__` field in model.
    NameError: If private attribute name is invalid.
    PydanticUserError:
        - If a field does not have a type annotation.
        - If a field on base class was overridden by a non-annotated attribute.
r   )r:   r;   __root__zUTo define root models, use `pydantic.RootModel` rather than a field called '__root__'rt   r   r[   r\   r   	functools__zXPrivate attributes must not use dunder names; use a single underscore prefix instead of zJPrivate attributes must not use valid field names; use sunder names, e.g. _z instead of my_fieldz>Fields must not use names with leading underscores; e.g., use )r%  zField z defined on a base class was overridden by a non-annotated attribute. All field definitions, including overrides, require a type annotation.zmodel-field-overridden)codez requires a type annotationzmodel-field-missing-annotationz)A non-annotated attribute was detected: `z = z3`. All model fields require a type annotation; if `z` is not meant to be a field, you may be able to resolve this error by annotating it as a `ClassVar` or updating `model_config['ignored_types']`.NFT)is_argumentis_class)globalnslocalnsc              3  N   >#    U  H  n[        UT5      (       d  M  Uv   M     g 7fr   )rF   )r   rO   r:   s     rR   r   $inspect_namespace.<locals>.<genexpr>  s     $\1JqJZ<[QQs   %	%)$fieldsr:   r;   r.   default_ignored_typesr   r   r  r   rF   r  r[   r\   
startswithrQ   add	NameErrorr&   lstripr'   r4   r   r   r   rV   r   	_getframer3   r2   	f_globalsf_localsr   is_annotatedr   r   next)r   r   r   base_class_varsbase_class_fieldsr;   r9   all_ignored_typesr   ignored_namesvar_namevaluesuggested_nameann_nameann_typeframer+  metadatar$  r:   s                      @rR   r   r     s   8 7(*I%(=(??68_$
i(?opp!eM	 12~%5I)Iud##  Il$;;)+""-->1J0K1.MNN 11U__5O5OS^5^h'/00""4((BBJQP  %X..//2X~.@XLXY[  ,1x(#))2Eh2O2O%__S1?ZN,/|H<qJ 
   &&&x00.6L_Mf6g6g/34DkZ_F`/a",' 7h (,,'XL )] ^1 
 E--'XL(CDKk  (?zUI V,,4: 6jk :	 m 3z .335%h//2- +8441,5D(C(( a($#5-hETXY%*__$)NN$ **:h+?@@'1H#$\$\^bc+3?&0+6=(? 6B  &y1 s   >(NNNc                    [        US5      n[        U 5      nUS [        R                  1;   d  [	        USS 5      UR
                  :X  a  X0l        g g )Nr   __code__)r#   make_hash_funcrW   r   r   rK  )r   r   base_hash_funcnew_hash_funcs       rR   r   r     sN    -eZ@N"3'M$00GNJX\4]anawaw4w % 5xrT   c                   ^ U R                   (       a+  [        R                  " U R                   R                  5       6 OS mSU4S jjnU$ )Nc                    g)Nr   rU   )r+  s    rR   <lambda> make_hash_func.<locals>.<lambda>'  s    lmrT   c                   >  [        T" U R                  5      5      $ ! [         a'    [        T" [        U R                  5      5      5      s $ f = fr   )hashr   KeyErrorr7   )rM   getters    rR   	hash_func!make_hash_func.<locals>.hash_func)  sJ    	At}}-.. 	A
 />?@@	As    .AA)rM   r
   rX   int)r   operator
itemgetterr   )r   rW  rV  s     @rR   rL  rL  &  s;    EHE\E\X  #"9"9">">"@AbmFA rT   c                ,   [        U 5      n[        XX#S9u  pEnX@l        XPl        U R                  R                  U5        U HO  nU R                  R                  US5      nUc  M$  UR                  [        Ld  M9  [        XUR                  5        MQ     g)zCollect and set `cls.__pydantic_fields__` and `cls.__class_vars__`.

Args:
    cls: BaseModel or dataclass.
    config_wrapper: The config wrapper instance.
    ns_resolver: Namespace resolver to use when getting model annotations.
)typevars_mapN)r,   r%   r   r  r|   r   r}   r   r%  r   setattr)	r   r   r   r]  r4  r  r   rN   rD  s	            rR   r   r   6  s     *#.L.B[/+F %"5j) **..q$76G!GCEMM* rT   )r   call_on_complete_hookr   is_force_rebuildc                  [        U 5      nU R                  (       dF   [        U UUUS9u  U l        U l        U(       d  U R                  (       d  gU R                  (       d   e[        UUU5      n
 U
R                  U 5      nUR                  U R                  S9n U
R                  U5      nU R                   R"                  R%                  5        VVs0 s H  u  pXR&                  _M     snnU l        [+        U 5        Xl        [/        UU U=(       d    U R0                  U R2                  U(       a  SOSUUR4                  U(       + S9U l        [9        XU(       + S9U l        [=        S	[?        [@        U RB                  U R                  URD                  URF                  S
95      U l$        SU l%        U(       a  U RM                  5         g! [
         aD  n[        R                  " U5      n	[        U SU	R                   S35        U(       a  Xe SnAGNSnAff = f! [         a,  nU(       a  e [        U SUR                   S35         SnAgSnAff = f! [         a    [        U 5         gf = fs  snnf )a  Finish building a model class.

This logic must be called after class has been created since validation functions must be bound
and `get_type_hints` requires a class object.

Args:
    cls: BaseModel or dataclass.
    config_wrapper: The config wrapper instance.
    ns_resolver: The namespace resolver instance to use during schema building.
    raise_errors: Whether to raise errors.
    call_on_complete_hook: Whether to call the `__pydantic_on_complete__` hook.
    create_model_module: The module of the class to be created, if created by `create_model`.
    is_force_rebuild: Whether the model is being force-rebuilt (if True, pre-built serializers and
                      validators are not used, to avoid stale references).

Returns:
    `True` if the model is successfully completed, else `False`.

Raises:
    PydanticUndefinedAnnotation: If PydanticUndefinedAnnotation occurs in __get_pydantic_core_schema__
        and `raise_errors=True`.
)r   r   r]  rB   NF)titlecreate_modelr<   )_use_prebuilt__signature__)rc   r4  validate_by_nameextraT)'r,   r
  r(   r   r  r8  r   from_name_errorr/   r   r)   generate_schemacore_configrZ   clean_schemar*   r   r   r   r   r   set_deprecated_descriptors__pydantic_core_schema__r   r[   r\   plugin_settings__pydantic_validator__r   __pydantic_serializer__r6   r   r1   r   rf  rg  re  r   __pydantic_on_complete__)r   r   r   r   r_  r   r`  r]  eexc
gen_schemaschemarj  rN   rO   s                  rR   r   r   X  sC   @ *#.L++	!CW-')	D@C#S%@ C$D$D////J++C0 !,,3<<,@K((0 ?B>Y>Y>i>i>o>o>q'r>qda66	>q'rC$s##) !8-s~~-;&&**	"C #36ZjVj"kC
 +'**+<< &&	
	C !%C$$&S  	!-==a@CC1SXXJa1  	!( ' q]+	   (ssG   G 1H I I0
H9HH
I&"III-,I-c                   U R                   R                  5        H>  u  pUR                  =nc  M  [        U5      nUR	                  X5        [        XU5        M@     U R                  R                  5        Hn  u  pUR                  =nc  M  [        [        UR                  5      S5      (       a  M<  [        X5R                  5      nUR	                  X5        [        XU5        Mp     g)z8Set data descriptors on the class for deprecated fields.N__deprecated__)
r   r   deprecation_message_DeprecatedFieldDescriptorr   r^  r   hasattrr$   wrapped_property)r   fieldr  msgdesccomputed_field_infos         rR   rl  rl    s     44::<111C>-c2Dc)C%	 = '*&F&F&L&L&N"';;;SH34G4X4XY[kll-c3W3WXDc)C% 'OrT   c                  T    \ rS rSr% SrS\S'   SSS jjrSS jrSSS jjrSS	 jr	S
r
g)ry  i  aC  Read-only data descriptor used to emit a runtime deprecation warning before accessing a deprecated field.

Attributes:
    msg: The deprecation message to be emitted.
    wrapped_property: The property instance if the deprecated field is a computed field, or `None`.
    field_name: The name of the field being deprecated.
rV   
field_nameNc                    Xl         X l        g r   )r}  r{  )rM   r}  r{  s      rR   r   #_DeprecatedFieldDescriptor.__init__  s     0rT   c                    X l         g r   )r  )rM   r   r   s      rR   r   '_DeprecatedFieldDescriptor.__set_name__  s    rT   c                N   Uc>  U R                   b  U R                   R                  S U5      $ [        U R                  5      e[        R
                  " U R                  [        SS9  U R                   b  U R                   R                  X5      $ UR                  U R                     $ )Nr   rC   )	r{  __get__r   r  rG   rH   r}  DeprecationWarningr   )rM   r   obj_types      rR   r  "_DeprecatedFieldDescriptor.__get__  s    ;$$0,,44T8DD 11dhh 2qA  ,((00??||DOO,,rT   c                ,    [        U R                  5      er   )r   r  )rM   r   rD  s      rR   __set__"_DeprecatedFieldDescriptor.__set__  s    T__--rT   )r  r}  r{  r   )r}  rV   r{  zproperty | NonerX   rY   )r   r~   r   rV   rX   rY   )r   zBaseModel | Noner  ztype[BaseModel] | NonerX   r
   )r   r
   rD  r
   rX   r   )rZ   r[   r\   r]   r^   ro   r   r   r  r  r_   rU   rT   rR   ry  ry    s"     O1
-.rT   ry  c                  6    \ rS rSrSrSS jrS	S jrS
S jrSrg)_PydanticWeakRefi  a  Wrapper for `weakref.ref` that enables `pickle` serialization.

Cloudpickle fails to serialize weakref.ref objects due to an arcane error related to
to abstract base classes (`abc.ABC`). This class works around the issue by wrapping
`weakref.ref` instead of subclassing it.

See https://github.com/pydantic/pydantic/issues/6763 for context.

Semantics:
    - If not pickled, behaves the same as a `weakref.ref`.
    - If pickled along with the referenced object, the same `weakref.ref` behavior
      will be maintained between them after unpickling.
    - If pickled without the referenced object, after unpickling the underlying
      reference will be cleared (`__call__` will always return `None`).
c                P    Uc  S U l         g [        R                  " U5      U l         g r   )_wrweakrefref)rM   r   s     rR   r   _PydanticWeakRef.__init__  s     ; DH{{3'DHrT   c                >    U R                   c  g U R                  5       $ r   r  r   s    rR   __call___PydanticWeakRef.__call__%  s    8888:rT   c                    [         U " 5       44$ r   )r  r   s    rR   
__reduce___PydanticWeakRef.__reduce__+  s    $&**rT   r  N)r   r
   )rX   r
   )rX   z4tuple[Callable, tuple[weakref.ReferenceType | None]])	rZ   r[   r\   r]   r^   r   r  r  r_   rU   rT   rR   r  r    s     (+rT   r  c                    U c  g0 nU R                  5        H  u  p# [        U5      nXAU'   M     U$ ! [         a    Un Nf = f)aH  Takes an input dictionary, and produces a new value that (invertibly) replaces the values with weakrefs.

We can't just use a WeakValueDictionary because many types (including int, str, etc.) can't be stored as values
in a WeakValueDictionary.

The `unpack_lenient_weakvaluedict` function can be used to reverse this operation.
N)r   r  r   )dresultrN   rO   proxys        rR   r   r   /  sX     	yF		$Q'E q	  M  	E	s   2A Ac                    U c  g0 nU R                  5        H0  u  p#[        U[        5      (       a  U" 5       nUb  X1U'   M*  M,  X1U'   M2     U$ )zAInverts the transform performed by `build_lenient_weakvaluedict`.N)r   rF   r  )r  r  rN   rO   s       rR   r   r   C  sW    yF	a)**A}q	  1I  MrT   c                     SSK Jn   [        [        [        [
        [        U [        /n[        R                  S:  a  UR                  [        R                  5        [        U5      $ )Nr   )ComputedFieldInfo)rm      )r4  r  r   r  r  r  r"   r   r   r   appendtypingr   )r  r   s     rR   r5  r5  S  sR    * 	M 7"V112rT   )rc   zLiteral[False]rX   r
   r   )r   r  r   r  rX   zCallable[..., Any] | None)r   r  r   r  r   r  r?  set[str]r@  r  rX   zdict[str, ModelPrivateAttr])r   r~   r   r  rX   rY   )r   r~   rX   r
   )r   r~   r   r    r   r0   rX   rY   )r   r~   r   r    r   r0   r   r  r_  r  r   r  r`  r  rX   r  )r   r~   rX   rY   )r  dict[str, Any] | NonerX   r  )rX   r  )mr^   
__future__r   _annotationsrZ  r   r  rG   r  abcr   r)  r   r   r   typesr   r	   r
   r   r   r   r   r   r   pydantic_corer   r   typing_extensionsr   r   r   r   r   typing_inspectionr   errorsr   r   plugin._schema_validatorr   r   r   _configr    _decoratorsr!   r"   r#   r$   _fieldsr%   r&   r'   r(   _generate_schemar)   r*   	_genericsr+   r,   _import_utilsr-   r.   _mock_val_serr/   _namespace_utilsr0   
_signaturer1   _typing_extrar2   r3   r4   r5   _utilsr6   r7   r4  r8   PydanticModelFieldr9   r:   r;   PydanticModelPrivateAttrmainr<   r=   rW   __setattr__r"  r   r?   re   rf   rj   rv   r   r   r   rL  r   r   rl  ry  r  r   r   r5  rU   rT   rR   <module>r     s+   ( 2  
     + +  Z Z Z = b b , C > O " s s o o @ F M * ( 3  944@ *%x##)$ )$ !
 	 T] T=OQikv<wxVW V yVrG0	FF#F )F 	F
  F !FR
% +	+!+ + 
	+N "&&*"y	y!y y
 y  y $y y 
yx&&". ".J +  +F(     rT   