Ë
    &V.jÇ�  ã                  ór  — d Z ddlmZ ddlZ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mZmZ ddlmZ ddl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 d
dl m!Z!m"Z" d
dl#m$Z$ d
dlm%Z%m&Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZCmDZDmEZEmFZFmGZG ddlHmIZImJZJ ej–                  rd
dlLmMZMmNZNmOZO d
dlLmPZQ d
dlLmRZS d
dlTmUZU ne&ZV eW«       ZQ eW«       ZSeWj°                  ZY G d„ d eZ«      Z[d!d"œ	 	 	 d9d#„Z\ ed$eQeSe\f¬%«       G d&„ d'e«      «       Z]d:d(„Z^d;d)„Z_	 	 	 	 	 	 	 	 	 	 d<d*„Z`d=d+„Zad>d,„Zb	 	 	 	 	 	 	 	 	 	 d?d-„Zcd$ddd.œ	 	 	 	 	 	 	 	 	 	 	 	 	 d@d/„ZddAd0„Ze G d1„ d2«      Zf G d3„ d4«      ZgdBd5„ZhdBd6„Zi ed¬7«      dCd8„«       Zjy)Dz"Private logic for creating models.é    )ÚannotationsN)ÚABCMeta)Ú	lru_cacheÚpartial)ÚFunctionType)ÚAnyÚCallableÚGenericÚLiteralÚNoReturnÚTypeVarÚcast)ÚPydanticUndefinedÚSchemaSerializer)ÚTypeAliasTypeÚdataclass_transformÚ
deprecatedÚget_argsé   )Ú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)ÚGenerateSchema)ÚPydanticGenericMetadataÚget_model_typevars_map)Úimport_cached_base_modelÚimport_cached_field_info)Úset_model_mocks)Ú
NsResolver)ÚCallbackGetCoreSchemaHandler)Úgenerate_pydantic_signature)Ú_make_forward_refÚeval_type_backportÚis_annotatedÚis_classvar_annotationÚparent_frame_namespace)ÚLazyClassAttributeÚSafeGetItemProxy)ÚComputedFieldInfoÚ	FieldInfoÚModelPrivateAttr)ÚField)ÚPrivateAttr)Ú	BaseModelc                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_ModelNamespaceDictz{A dictionary subclass that intercepts attribute setting on model classes and
    warns about overriding of decorators.
    c                óÔ   •— | j                  |d «      }|rD||ur@t        |t        «      r0t        j                  d|› d|j
                  j                  › d�«       t        ‰| �!  ||«      S )NÚ`z"` overrides an existing Pydantic `z` decorator)	ÚgetÚ
isinstancer   ÚwarningsÚwarnÚdecorator_infoÚdecorator_reprÚsuperÚ__setitem__)ÚselfÚkÚvÚexistingÚ	__class__s       €úhC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pydantic/_internal/_model_construction.pyrE   z_ModelNamespaceDict.__setitem__=   sc   ø€ ØŸ™  DÓ)ˆÙ˜ Ñ)¬j¸ÔCZÔ.[Ü�M‰M˜A˜a˜SÐ BÀ8×CZÑCZ×CiÑCiÐBjÐjuÐvÔwä‰wÑ" 1 aÓ(Ð(ó    )rG   ÚstrrH   ÚobjectÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rE   Ú__classcell__©rJ   s   @rK   r;   r;   8   s   ø„ ñ÷)ñ )rL   r;   F©Úinitc                 ó   — y)zÍOnly 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.
    N© rW   s    rK   ÚNoInitFieldr[   E   s   � rL   T)Úkw_only_defaultÚfield_specifiersc                  óþ   ‡ — e Zd Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdˆ fd„Zej                  sdd„Zedd„«       Z	dˆ fd„Z
edd„«       Ze edd¬	«      dd
„«       «       Zedd„«       Zedd„«       Zdˆ fd„Zˆ xZS )ÚModelMetaclassNc           	     óª  •‡ ‡!‡"— |�rì| j                  |«      \  }}	}
t        j                  |||«      }|j                  |d<   t	        ||j
                  |	|«      }|s|
r#t        ||«      Š ‰ �d'ˆ fd„}||d<   n	t        |d<   |	|d<   i |
¥|¥|d<   |r||d<   t        dt        ‰#| �(  | |||fi |¤Ž«      }t        «       }|j                  }t        |v rG|j                  t        «      |j                  |«      k  r t        j                   t#        d	«      d
¬«       t%        |j&                  dd«       |_        |j*                  |j*                  u rdnd|_        t/        j0                  |«      |_        |r	||_        �n[t%        |di «      j7                  dd«      Š"t%        |dd«      xs ‰"Š!‰!�r‰"�rt9        ˆ!fd„‰"D «       «      �sd
dlm} t?        ˆ"fd„‰!D «       «      }|‰"v rZ|‰!vrVdjA                  |D �cg c]  }|jB                  ‘Œ c}«      }|jB                  › d|› d|jB                  › d|› d�}tG        |«      ‚‰"|z   }djA                  |D �cg c]  }tE        |«      ‘Œ c}«      }d|› d�}d|› d�}t        |vrCdjA                  |D �cg c]  }|jB                  ‘Œ c}|gz   «      }|d|jB                  › d|› d�z  }tG        |«      ‚dd‰!d œ|_        d|_$        |jK                  «       D ]  \  }}|jM                  ||«       Œ |rtO        tQ        «       «      |_)        t%        |d!d«      }tU        |tV        «      rtY        |«      }t[        |¬"«      }t]        ||||«       |j^                  rd#|vrta        ||«       tc        |||d||¬$«       |j2                  jd                  jK                  «       D ��ci c]  \  }}||jf                  “Œ c}}|_4        tk        |«       t        ||�Ú  di |¤Ž |S d%D ]  }|jo                  |d«       Œ |j7                  d&i «      jq                  «        t        ‰#| �(  | |||fi |¤ŽS c c}w c c}w c c}w c c}}w )(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.
        Úmodel_configNc               ó0   •— t        | |«        ‰| |«       y)z�We need to both initialize private attributes and call the user-defined model_post_init
                        method.
                        N)Úinit_private_attributes)rF   ÚcontextÚoriginal_model_post_inits     €rK   Úwrapped_model_post_initz7ModelMetaclass.__new__.<locals>.wrapped_model_post_inity   s   ø€ ô 0°°gÔ>Ù0°°wÕ?rL   Úmodel_post_initÚ__class_vars__Ú__private_attributes__Ú__pydantic_generic_metadata__útype[BaseModel]z�Classes should inherit from `BaseModel` before generic classes (e.g. `typing.Generic[T]`) for pydantic generics to work properly.r   ©Ú
stacklevelÚ__pydantic_base_init__FÚ
parametersrZ   Ú__parameters__c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­w©NrZ   )Ú.0Úxro   s     €rK   Ú	<genexpr>z)ModelMetaclass.__new__.<locals>.<genexpr>£   s   øè ø€ Ð?kÑYjÐTUÀÀZÄÑYjùs   ƒ)ÚRootModelRootTypec              3  ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wrr   rZ   )rs   rt   Úparent_parameterss     €rK   ru   z)ModelMetaclass.__new__.<locals>.<genexpr>¦   s   øè ø€ Ð.c¹*°QÈÐQbÒHb¬q¹*ù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Úargsro   Ú__pydantic_parent_namespace__)Úparent_namespaceÚ__hash__©Úraise_errorsÚns_resolverÚcreate_model_module)Ú__pydantic_fields_set__Ú__pydantic_extra__Ú__pydantic_private__Ú__annotations__©rF   r9   rd   r   rO   rP   )9Ú_collect_bases_datar   Ú	for_modelÚconfig_dictÚinspect_namespaceÚignored_typesÚget_model_post_initrc   r   rD   Ú__new__r'   Ú__mro__r
   Úindexr@   rA   r   ÚgetattrÚ__init__Ú__pydantic_custom_init__rg   Ú__pydantic_post_init__r   ÚbuildÚ__pydantic_decorators__rj   r>   ÚallÚ
root_modelrv   ÚtupleÚjoinrQ   rM   Ú	TypeErrorÚ__pydantic_complete__ÚitemsÚ__set_name__Úbuild_lenient_weakvaluedictr1   r~   r?   ÚdictÚunpack_lenient_weakvaluedictr*   Úset_model_fieldsÚfrozenÚset_default_hash_funcÚcomplete_model_classÚcomputed_fieldsÚinfoÚ__pydantic_computed_fields__Úset_deprecated_descriptorsÚ__pydantic_init_subclass__ÚpopÚclear)$ÚmcsÚcls_nameÚbasesÚ	namespacerj   Ú#__pydantic_reset_parent_namespace__Ú_create_model_moduleÚkwargsÚbase_field_namesÚ
class_varsÚbase_private_attributesÚconfig_wrapperÚprivate_attributesrf   ÚclsÚ
BaseModel_Úmrorv   Úmissing_parametersrt   Úparameters_strÚerror_messageÚcombined_parametersÚgeneric_type_labelÚ	bases_strÚnameÚobjr   rƒ   rG   rH   Úinstance_slotre   ro   rx   rJ   s$                                   @@@€rK   r�   zModelMetaclass.__new__Q   sæ  û€ ò6 ØDG×D[ÑD[Ð\aÓDbÑAÐ˜jÐ*Aä*×4Ñ4°U¸IÀvÓNˆNØ(6×(BÑ(BˆI�nÑ%Ü!2Ø˜>×7Ñ7¸ÐEUó"Ðñ "Ñ%<Ü+>¸yÈ%Ó+PÐ(Ø+Ð7õ@ð 4K�IÐ/Ò0ä3J�IÐ/Ñ0à*4ˆIÐ&Ñ'Ø2cÐ5LÐ2cÐPbÐ2cˆIÐ.Ñ/Ù,Ø=Z�	Ð9Ñ:äÐ(¬%©'©/¸#¸xÈÐPYÑ*dÐ]cÑ*dÓeˆCÜ1Ó3ˆJà—+‘+ˆCÜ˜#‰~ #§)¡)¬GÓ"4°s·y±yÀÓ7LÒ"LÜ—‘Ü1ðBóð  !õô 07°s·|±|ÐE]Ð_dÓ/eÐ+eˆCÔ(à×+Ñ+¨z×/IÑ/IÑI‘ÐO`ð Ô&ô +9×*>Ñ*>¸sÓ*CˆCÔ'ñ -Ø4Q�Ö1ä$+¨CÐ1PÐRTÓ$U×$YÑ$YÐZfÐhjÓ$kÐ!Ü$ SÐ*:¸DÓAÒVÐEV�
ÚÒ"3¼CÓ?kÑYjÓ?kÕ<kÝ>ä).Ó.c¹*Ó.cÓ)cÐ&Ø(Ð,=Ñ=ÐBSÐ[eÑBeð *.¯©ÑHZÓ3[ÑHZÀ1°A·J³JÐHZÑ3[Ó)\˜à"Ÿ|™|˜nÐ,Ø-Ð.ð /WØWZ×WcÑWcÐVdÐdoÐp~Ðoð  @IðJð &ô, $ MÓ2Ð2ð! /@ÐBTÑ.TÐ+Ø)-¯©ÑDWÓ3XÑDW¸q´C¸µFÐDWÑ3XÓ)Y˜Ø/>¸~Ð>NÈaÐ-PÐ*ð8Ø8JÐ7KÈ1ðNð &ô #¨%Ñ/ð
 )-¯	©	ÁuÓ2MÁuÀ!°1·:³:ÀuÑ2MÐQcÐPdÑ2dÓ(e˜IØ)Ø"OÐPS×P\ÑP\È~Ð]^Ð_hÐ^iÐiqÐ rñ˜Mô $ MÓ2Ð2ð #ØØ",ñ5�Ô1ð ).ˆCÔ%ð 0×5Ñ5Ö7‘	��cØ× Ñ   dÕ+ð 8ñ 3Ü4OÔPfÓPhÓ4i�Ô1Ü6=¸cÐCbÐdhÓ6iÐÜÐ*¬DÔ1Ü#?Ð@PÓ#QÐ ä$Ð6FÔGˆKä˜S %¨¸ÔEà×$Ò$¨¸9Ñ)DÜ% c¨5Ô1ä ØØØØ"Ø'Ø$8õð '*×&AÑ&A×&QÑ&Q×&WÑ&WÔ&Yô0Ù&Y™d˜a ��1—6‘6‘	Ð&Yò0ˆCÔ,ô ' sÔ+ô
 �#�sÑ6Ñ@¸Ò@ØˆJó "i�Ø—‘Ø!Øõð "ið
 �M‰MÐ+¨RÓ0×6Ñ6Ô8Ü‘7‘? 3¨°%¸ÑMÀfÑMÐMùòc 4\ùò 4Yùò 3NùóV0s   Ç6Q ÉQÊQ
Î8Qc                óÆ  •‡— t         ‰| �  «       }| j                  t        fk(  r|S | j                  j                  d«      }|s|S d}|d   |d   }}|s|S |j                  d   }t        t        ||«      «      Š|h}| g}|dd  D ]Ù  }	t        |	di «      j                  d«      }
t        |	di «      j                  dd«      }|
|v rŒA|	|vrg|ret        |«      ‰j                  «       k  sJ |«       ‚t        ˆfd„|D «       «      }|	|   }|j                  |«       |j                  |
xs |	«       |
�Œ¬|j                  |
xs |	«       |	|d	   usŒÉ|j                  |	«       ŒÛ |S )
Nrj   z“Unexpected error occurred when generating MRO of generic subclass. Please report this issue on GitHub: https://github.com/pydantic/pydantic/issues.r|   r}   ro   r   rZ   c              3  ó(   •K  — | ]	  }‰|   –— Œ y ­wrr   rZ   )rs   ÚparamÚ
param_dicts     €rK   ru   z%ModelMetaclass.mro.<locals>.<genexpr>$  s   øè ø€ Ð%QÁ[¸E j°Õ&7Á[ùs   ƒéÿÿÿÿ)rD   r½   Ú	__bases__rN   Ú__dict__r>   rj   r¢   Úzipr“   ÚsetÚkeysr›   ÚappendÚadd)r»   Úoriginal_mroÚgeneric_metadataÚassert_err_msgr|   r}   Útarget_paramsÚindexed_originsÚnew_mroÚbaseÚbase_originÚbase_paramsÚnew_base_argsÚnew_baserÊ   rJ   s                 @€rK   r½   zModelMetaclass.mro  s’  ù€ Ü‘w‘{“}ˆà�=‰=œV˜IÒ%ØÐà;>¿<¹<×;KÑ;KÐLkÓ;lÐÙØÐð oˆð ˜XÑ&Ø˜VÑ$ð ˆñ ØÐà×<Ñ<¸\ÑJˆÜœ#˜m¨TÓ2Ó3ˆ
à!˜(ˆà$' 5ˆØ   Ó$ˆDÜ29¸$Ð@_ÐacÓ2d×2hÑ2hÐiqÓ2rˆKÜ/6°tÐ=\Ð^`Ó/a×/eÑ/eÐfrÐtvÓ/wˆKà˜oÑ-ØØ˜_Ñ,±Ü˜;Ó'¨:¯?©?Ó+<Ò<ÐL¸nÓLÐ<Ü %Ó%QÁ[Ó%QÓ Q�Ø Ñ.�Ø—‘˜xÔ(à×#Ñ# KÒ$7°4Ô8àÐ*àà×#Ñ# KÒ$7°4Ô8ð
 ˜7 2™;Ò&Ø—‘˜tÕ$ð1 %ð4 ˆrL   c                ód   — | j                   j                  d«      }|r	||v r||   S t        |«      ‚)zNThis is necessary to keep attribute access working for class attribute access.ri   )rÍ   r>   ÚAttributeError)rF   Úitemrº   s      rK   Ú__getattr__zModelMetaclass.__getattr__;  s9   € à!%§¡×!2Ñ!2Ð3KÓ!LÐÙ! dÐ.@Ñ&@Ø)¨$Ñ/Ð/Ü  Ó&Ð&rL   c                ó   — t        «       S rr   )r;   )r»   r}   rµ   s      rK   Ú__prepare__zModelMetaclass.__prepare__B  s   € ä"Ó$Ð$rL   c                ó>   •— t        |d«      xr t        ‰| �	  |«      S )zsAvoid calling ABC _abc_subclasscheck unless we're pretty sure.

        See #3829 and python/cpython#92810
        Ú__pydantic_validator__)ÚhasattrrD   Ú__instancecheck__)rF   ÚinstancerJ   s     €rK   rç   z ModelMetaclass.__instancecheck__F  s#   ø€ ô
 �xÐ!9Ó:Òb¼u¹wÑ?XÐYaÓ?bÐbrL   c                ó>  — t        «       }t        «       }t        «       }i }| D ]t  }t        ||«      sŒ||usŒ|j                  t	        |di «      j                  «       «       |j                  |j                  «       |j                  |j                  «       Œv |||fS )NÚ__pydantic_fields__)r'   rÏ   Ú
issubclassÚupdater“   rÐ   rh   ri   )r±   r9   Úfield_namesr·   rº   rÙ   s         rK   rŠ   z"ModelMetaclass._collect_bases_dataM  s’   € ä,Ó.ˆ	ä #£ˆÜ"›uˆ
Ø:<ÐÛˆDÜ˜$ 	Õ*¨t¸9Ò/Dà×"Ñ"¤7¨4Ð1FÈÓ#K×#PÑ#PÓ#RÔSØ×!Ñ! $×"5Ñ"5Ô6Ø"×)Ñ)¨$×*EÑ*EÕFð ð ˜JÐ(:Ð:Ð:rL   úEThe `__fields__` attribute is deprecated, use `model_fields` instead.)Úcategoryc                óR   — t        j                  dt        d¬«       | j                  S )Nrî   r   rl   )r@   rA   r   Úmodel_fields©rF   s    rK   Ú
__fields__zModelMetaclass.__fields__\  s'   € ô 	�‰ØSÜ%Øõ	
ð
 × Ñ Ð rL   c                ó   — t        | di «      S )z¨Get metadata about the fields defined on the model.

        Returns:
            A mapping of field names to [`FieldInfo`][pydantic.fields.FieldInfo] objects.
        rê   ©r“   rò   s    rK   rñ   zModelMetaclass.model_fieldsf  s   € ô �tÐ2°BÓ7Ð7rL   c                ó   — t        | di «      S )zÊGet metadata about the computed fields defined on the model.

        Returns:
            A mapping of computed field names to [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects.
        rª   rõ   rò   s    rK   Úmodel_computed_fieldsz$ModelMetaclass.model_computed_fieldso  s   € ô �tÐ;¸RÓ@Ð@rL   c                ó`   •— t        t        ‰| �	  «       «      }d|v r|j                  d«       |S )Nró   )ÚlistrD   Ú__dir__Úremove)rF   Ú
attributesrJ   s     €rK   rú   zModelMetaclass.__dir__x  s0   ø€ Üœ%™'™/Ó+Ó,ˆ
Ø˜:Ñ%Ø×Ñ˜lÔ+ØÐrL   )NTN)r°   rM   r±   útuple[type[Any], ...]r²   údict[str, Any]rj   zPydanticGenericMetadata | Noner³   Úboolr´   ú
str | Nonerµ   r   rO   Útype)rO   zlist[type[Any]])rà   rM   rO   r   )r}   r   rµ   r   rO   zdict[str, object])rè   r   rO   rÿ   )r±   rý   rO   z6tuple[set[str], set[str], dict[str, ModelPrivateAttr]])rO   zdict[str, FieldInfo])rO   zdict[str, ComputedFieldInfo])rO   z	list[str])rQ   rR   rS   r�   r½   ÚtypingÚTYPE_CHECKINGrá   Úclassmethodrã   rç   ÚstaticmethodrŠ   Úpropertyr   ró   rñ   r÷   rú   rU   rV   s   @rK   r_   r_   O   s  ø„ ð IMØ48Ø+/ðoNàðoNð %ðoNð "ð	oNð
 (FðoNð .2ðoNð )ðoNð ðoNð 
õoNõb4ðl ×Òó	'ð ò%ó ð%õcð ò;ó ð;ð ÙÐWÐbfÔgò!ó hó ð!ð ò8ó ð8ð òAó ðA÷ñ rL   r_   c               ó¾   — t        | dd«      €Pi }| j                  j                  «       D ]#  \  }}|j                  «       }|t        usŒ|||<   Œ% t        | d|«       yy)a  This function is meant to behave like a BaseModel method to initialise 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‡   N)r“   ri   rŸ   Úget_defaultr   Úobject_setattr)rF   rd   Úpydantic_privaterÄ   Úprivate_attrÚdefaults         rK   rc   rc     sp   € ô ˆtÐ+¨TÓ2Ð:ØÐØ"&×"=Ñ"=×"CÑ"CÖ"EÑˆD�,Ø"×.Ñ.Ó0ˆGØÔ/Ò/Ø)0Ð  Ò&ð #Fô 	�tÐ3Ð5EÕFð ;rL   c                ób   — d| v r| d   S t        «       }t        |d«      }||j                  ur|S y)zaGet the `model_post_init` method from the namespace or the class bases, or `None` if not defined.rg   N)r'   r   rg   )r²   r±   r9   rg   s       rK   r�   r�   ‘  sD   € à˜IÑ%ØÐ*Ñ+Ð+ä(Ó*€Iä.¨uÐ6GÓH€OØ˜i×7Ñ7Ñ7ØÐð 8rL   c           
     óV  ‡— ddl mŠm} t        «       }|t	        «       z   }i }| j                  di «      }d|v sd| v rt        d«      ‚t        «       }	t        | j                  «       «      D �]À  \  }
}|
dk(  s|
dk(  rŒt        |t        «      r5|j                  | d   k(  r#d	| v r|j                  j                  | d	   «      rŒWt        ||«      s|j                  j                  d
k(  r|	j!                  |
«       ŒŽt        |‰«      rI|
j                  d«      rt#        d|
›d�«      ‚t%        |
«      rt#        dd|
z   ›d|
›d�«      ‚|||
<   | |
= Œãt        ||«      r2t%        |
«      s'|
j'                  d«      xs d}t#        d|›d|
›d�«      ‚|
j                  d«      r�Œ4t)        |
«      r/|
|vst+        ||
   «      r�ŒSt-        ‰ ||¬«      «      ||
<   | |
= �Œn|
|v r�Œt|
|vs�Œz|
|v rt/        d|
›d�d¬«      ‚t        ||«      rt/        d|
›d�d¬«      ‚t/        d|
› d|›d|
› d�d¬«      ‚ |j                  «       D ]Ò  \  }}t)        |«      sŒ||vsŒ||	vsŒt+        |«      rŒ(||vsŒ-t1        |dd«      d
k7  sŒ>t        |t2        «      rFt5        j6                  d«      }|�/	 t9        t;        |dd ¬!«      |j<                  |j>                  ¬"«      }tA        |«      r*tC        |«      ^}}tE        ˆfd#„|D «       d«      }|�|||<   ŒÉ |«       ||<   ŒÔ |S # t"        t        f$ r Y ŒTw xY w)$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.
        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 contains 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   )r6   r8   rˆ   Ú__root__zUTo define root models, use `pydantic.RootModel` rather than a field called '__root__'ra   r†   rR   rS   Ú	functoolsÚ__zXPrivate attributes must not use dunder names; use a single underscore prefix instead of rz   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  ó<   •K  — | ]  }t        |‰«      sŒ|–— Œ y ­wrr   )r?   )rs   rH   r6   s     €rK   ru   z$inspect_namespace.<locals>.<genexpr>  s   øè ø€ Ð$\±¨1¼JÀqÐJZÕ<[¤Q±ùs   ƒ•)#Úfieldsr6   r8   r(   Údefault_ignored_typesr>   r�   rÏ   rù   rŸ   r?   r  rR   rS   Ú
startswithrJ   rÒ   Ú	NameErrorr"   Úlstripr#   r0   r   r   r“   rM   ÚsysÚ	_getframer.   r-   Ú	f_globalsÚf_localsr/   r   Únext)r²   rŽ   Úbase_class_varsÚbase_class_fieldsr8   r5   Úall_ignored_typesrº   Úraw_annotationsÚignored_namesÚvar_nameÚvalueÚsuggested_nameÚann_nameÚann_typeÚframer  Úmetadatar  r6   s                      @rK   r�   r�   �  sÇ  ø€ ÷4 7ä(Ó*€Ià%Ô(=Ó(?Ñ?Ðà68ÐØ—m‘mÐ$5°rÓ:€Oà�_Ñ$¨
°iÑ(?ÜÐoÓpÐpä!›e€MÜ 	§¡Ó 1×2‰ˆ�%Ø�~Ò%¨Ð5IÒ)IØä�uœdÔ#Ø× Ñ  I¨lÑ$;Ò;Ø )Ñ+Ø×"Ñ"×-Ñ-¨i¸Ñ.GÔHð Ü˜Ð0Ô1°U·_±_×5OÑ5OÐS^Ò5^Ø×Ñ˜hÔ'ØÜ˜Ð/Ô0Ø×"Ñ" 4Ô(ÜðBØBJÀÈQðPóð ô % XÔ.Üð/Ø/2°X©~Ð.@ÀÈXÈLÐXYð[óð ð ,1Ð˜xÑ(Ø˜(Ñ#Ü˜˜yÔ)Ô2EÀhÔ2OØ%Ÿ_™_¨SÓ1Ò?°ZˆNÜðØ,Ð/¨|¸H¸<ÀqðJóð ð
 × Ñ  Ô&ÙÜ& xÔ0Ø˜Ñ.Ô6LÈ_Ð]eÑMfÖ6gÜ/3Ð4DÁkÐZ_ÔF`Ó/aÐ" 8Ñ,Ø˜hÒ'Ø˜Ñ(ÙØ˜_Ó,ØÐ,Ñ,Ü'Ø˜X˜Lð )]ð ^à1ôð ô
 ˜E 9Ô-Ü'Ø˜X˜LÐ(CÐDÐKkôð ô (Ø?À¸zÈÈUÈIð V,Ø,4¨:ð 6jðkð :ô	ð ðm 3ðz .×3Ñ3Ö5Ñˆ�(ä% hÕ/ØÐ 2Ò2Ø Ò-ô +¨8Õ4ØÐ 1Ò1Ü˜ ,°Ó5¸ÓDä˜(¤CÔ(ô Ÿ™ aÓ(�ØÐ$ðÜ#5Ü-¨hÀEÐTXÔYØ%*§_¡_Ø$)§N¡Nô$˜ô ˜HÔ%Ü'¨Ó1���HÜ#Ó$\±Ó$\Ð^bÓc�ØÐ+Ø3?Ð& xÑ0ØÙ+6«=Ð˜xÒ(ð? 6ðB Ðøô &¤yÐ1ò Ùðús   Ê%.LÌL(Ì'L(c                óž   — t        |d«      }t        | «      }|d t        j                  hv st	        |dd «      |j
                  k(  r|| _        y y )Nr€   Ú__code__)r   Úmake_hash_funcrN   r€   r“   r1  )r»   r±   Úbase_hash_funcÚnew_hash_funcs       rK   r¦   r¦   %  sP   € Ü-¨e°ZÓ@€NÜ" 3Ó'€MØ˜$¤§¡Ð0Ñ0´G¸NÈJÐX\Ó4]Ðan×awÑawÒ4wð %ˆ�ð 5xrL   c                ó†   ‡— | j                   r*t        j                  | j                   j                  «       Ž nd„ Šdˆfd„}|S )Nc                 ó   — y)Nr   rZ   )r  s    rK   Ú<lambda>z make_hash_func.<locals>.<lambda>3  s   € ÐlmrL   c                ó¢   •— 	 t         ‰| j                  «      «      S # t        $ r' t         ‰t        | j                  «      «      «      cY S w xY wrr   )ÚhashrÍ   ÚKeyErrorr3   )rF   Úgetters    €rK   Ú	hash_funcz!make_hash_func.<locals>.hash_func5  sJ   ø€ ð	AÜ™˜tŸ}™}Ó-Ó.Ð.øÜò 	Aô
 ™Ô/°·±Ó>Ó?Ó@Ò@ð	Aús   ƒ ž-AÁA)rF   r   rO   Úint)rê   ÚoperatorÚ
itemgetterrÐ   )r»   r<  r;  s     @rK   r2  r2  2  s;   ø€ ØEH×E\ÒE\ŒX× Ñ  #×"9Ñ"9×">Ñ">Ó"@ÑAÑbm€FõAð ÐrL   c                ó$  — t        | «      }t        | ||||¬«      \  }}|| _        | j                  j	                  |«       |D ]K  }| j
                  j                  |d«      }|€Œ"|j                  t        usŒ5t        | ||j                  «       ŒM y)a<  Collect and set `cls.__pydantic_fields__` and `cls.__class_vars__`.

    Args:
        cls: BaseModel or dataclass.
        bases: Parents of the class, generally `cls.__bases__`.
        config_wrapper: The config wrapper instance.
        ns_resolver: Namespace resolver to use when getting model annotations.
    )Útypevars_mapN)
r&   r!   rê   rh   rì   ri   r­   r  r   Úsetattr)	r»   r±   r¹   rƒ   rA  r  r·   rG   r*  s	            rK   r¤   r¤   B  sˆ   € ô *¨#Ó.€LÜ-¨c°5¸.È+ÐdpÔqÑ€FˆJà$€CÔØ×Ñ×Ñ˜jÔ)ãˆð ×*Ñ*×.Ñ.¨q°$Ó7ˆØÑ §¡Ô6GÒ!GÜ�C˜˜EŸM™MÕ*ñ rL   r�   c          
     ó$  — |j                   rt        | |«       yt        | «      }t        |||«      }t	        t        |j                  d¬«      |d¬«      }	 | j                  | |«      }	|j                  | j                  ¬«      }	 |j                  |	«      }	|	| _        t        |	| |xs | j                   | j"                  |rdnd	||j$                  «      | _        t)        |	|«      | _        d
| _        t/        dt        t0        | j2                  | j4                  |j6                  |j8                  ¬«      «      | _        y
# t        $ r(}
|r‚ t        | |d|
j                  › d�«       Y d}
~
yd}
~
ww xY w# |j                  $ r t        | |«       Y yw xY w)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.
        cls_name: The model or dataclass name.
        config_wrapper: The config wrapper instance.
        raise_errors: Whether to raise errors.
        ns_resolver: The namespace resolver instance to use during schema building.
        create_model_module: The module of the class to be created, if created by `create_model`.

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

    Raises:
        PydanticUndefinedAnnotation: If `PydanticUndefinedAnnotation` occurs in`__get_pydantic_core_schema__`
            and `raise_errors=True`.
    F)Úfrom_dunder_get_core_schemaÚunpack)Úref_moder=   N)ÚtitleÚcreate_modelr9   TÚ__signature__)rX   r  Úpopulate_by_nameÚextra)Údefer_buildr)   r&   r$   r+   r   Úgenerate_schemaÚ__get_pydantic_core_schema__r   rÄ   Úcore_configrQ   Úclean_schemaÚCollectedInvalidÚ__pydantic_core_schema__r   rR   rS   Úplugin_settingsrå   r   Ú__pydantic_serializer__rž   r2   r,   r”   rê   rJ  rK  rI  )r»   r°   r¹   r‚   rƒ   r„   rA  Ú
gen_schemaÚhandlerÚschemaÚerO  s               rK   r§   r§   c  s—  € ð: ×!Ò!Ü˜˜XÔ&Øä)¨#Ó.€LÜØØØó€Jô +Ü�
×*Ñ*ÈÔNØØô€GðØ×1Ñ1°#°wÓ?ˆð !×,Ñ,°3·<±<Ð,Ó@€KðØ×(Ñ(¨Ó0ˆð $*€CÔ ä!8ØØØÒ-˜sŸ~™~Ø×ÑÙ-‰°;ØØ×&Ñ&ó"€CÔô #3°6¸;Ó"G€CÔØ $€CÔô
 +ØÜÜ'Ø—‘Ø×*Ñ*Ø+×<Ñ<Ø ×&Ñ&ô	
ó	€CÔð øôU 'ò ÙØÜ˜˜X¨¨1¯6©6¨(°! }Ô5Üûð	ûð ×&Ñ&ò Ü˜˜XÔ&Ùðús*   ÁD= ÂE1 Ä=	E.ÅE)Å)E.Å1FÆFc                óÆ  — | j                   j                  «       D ]>  \  }}|j                  x}€Œt        |«      }|j	                  | |«       t        | ||«       Œ@ | j                  j                  «       D ]i  \  }}|j                  x}€Œt        t        |j                  «      d«      rŒ5t        ||j                  «      }|j	                  | |«       t        | ||«       Œk y)z8Set data descriptors on the class for deprecated fields.NÚ__deprecated__)
rê   rŸ   Údeprecation_messageÚ_DeprecatedFieldDescriptorr    rB  rª   ræ   r    Úwrapped_property)r»   ÚfieldÚ
field_infoÚmsgÚdescÚcomputed_field_infos         rK   r«   r«   À  sÑ   € à ×4Ñ4×:Ñ:Ö<ÑˆˆzØ×1Ñ1Ð1ˆCÑ>Ü-¨cÓ2ˆDØ×Ñ˜c 5Ô)Ü�C˜ Õ%ð	 =ð '*×&FÑ&F×&LÑ&LÖ&NÑ"ˆÐ"à'×;Ñ;Ð;ˆSÑHäÔ3Ð4G×4XÑ4XÓYÐ[kÕlä-¨cÐ3F×3WÑ3WÓXˆDØ×Ñ˜c 5Ô)Ü�C˜ Õ%ñ 'OrL   c                  ó@   — e Zd ZU dZded<   d	d
d„Zdd„Zd	dd„Zdd„Zy)r\  aW  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.
    rM   Ú
field_nameNc                ó    — || _         || _        y rr   )r`  r]  )rF   r`  r]  s      rK   r”   z#_DeprecatedFieldDescriptor.__init__Þ  s   € ØˆŒØ 0ˆÕrL   c                ó   — || _         y rr   )rd  )rF   r»   rÄ   s      rK   r    z'_DeprecatedFieldDescriptor.__set_name__â  s	   € Øˆ�rL   c                ób  — |€=| j                   �| j                   j                  d |«      S t        | j                  «      ‚t	        j
                  | j                  t        j                  d¬«       | j                   �| j                   j                  ||«      S |j                  | j                     S )Nr   rl   )
r]  Ú__get__rß   rd  r@   rA   r`  ÚbuiltinsÚDeprecationWarningrÍ   )rF   rÅ   Úobj_types      rK   rh  z"_DeprecatedFieldDescriptor.__get__å  s�   € Øˆ;Ø×$Ñ$Ð0Ø×,Ñ,×4Ñ4°T¸8ÓDÐDÜ  §¡Ó1Ð1ä�‰�d—h‘h¤× ;Ñ ;ÈÕJà× Ñ Ð,Ø×(Ñ(×0Ñ0°°hÓ?Ð?Ø�|‰|˜DŸO™OÑ,Ð,rL   c                ó,   — t        | j                  «      ‚rr   )rß   rd  )rF   rÅ   r*  s      rK   Ú__set__z"_DeprecatedFieldDescriptor.__set__ô  s   € Ü˜TŸ_™_Ó-Ð-rL   rr   )r`  rM   r]  zproperty | NonerO   rP   )r»   rk   rÄ   rM   rO   rP   )rÅ   zBaseModel | Nonerk  ztype[BaseModel] | NonerO   r   )rÅ   r   r*  r   rO   r   )	rQ   rR   rS   rT   rˆ   r”   r    rh  rm  rZ   rL   rK   r\  r\  Ó  s"   … ñð ƒOô1óô
-ô.rL   r\  c                  ó(   — e Zd ZdZdd„Zdd„Zdd„Zy)	Ú_PydanticWeakRefaê  Wrapper for `weakref.ref` that enables `pickle` serialization.

    Cloudpickle fails to serialize `weakref.ref` objects due to an arcane error related
    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                óL   — |€d | _         y t        j                  |«      | _         y rr   )Ú_wrÚweakrefÚref)rF   rÅ   s     rK   r”   z_PydanticWeakRef.__init__	  s    € Øˆ;ð ˆD�Hä—{‘{ 3Ó'ˆD�HrL   c                ó<   — | j                   €y | j                  «       S rr   )rq  rò   s    rK   Ú__call__z_PydanticWeakRef.__call__  s   € Ø�8‰8ÐØà—8‘8“:ÐrL   c                ó   — t          | «       ffS rr   )ro  rò   s    rK   Ú
__reduce__z_PydanticWeakRef.__reduce__  s   € Ü¡$£& Ð*Ð*rL   N)rÅ   r   )rO   r   )rO   z4tuple[Callable, tuple[weakref.ReferenceType | None]])rQ   rR   rS   rT   r”   ru  rw  rZ   rL   rK   ro  ro  ø  s   „ ñó (óô+rL   ro  c                ó„   — | €yi }| j                  «       D ]  \  }}	 t        |«      }|||<   Œ |S # t        $ r |}Y Œw xY w)aX  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Ÿ   ro  r�   )ÚdÚresultrG   rH   Úproxys        rK   r¡   r¡     s\   € ð 	€yØØ€FØ—‘–	‰ˆˆ1ð	Ü$ QÓ'ˆEð ˆˆqŠ	ð ð €Møô ò 	ØŠEð	ús   �1±?¾?c                óŠ   — | €yi }| j                  «       D ]*  \  }}t        |t        «      r |«       }|€Œ |||<   Œ&|||<   Œ, |S )zAInverts the transform performed by `build_lenient_weakvaluedict`.N)rŸ   r?   ro  )ry  rz  rG   rH   s       rK   r£   r£   /  sS   € à€yØà€FØ—‘–	‰ˆˆ1Ü�aÔ)Ô*Ù“ˆAØ‰}Ø��q’	àˆF�1ŠIð ð €MrL   )Úmaxsizec                 óÊ   — ddl m}  t        t        t        t
        t        | t        g}t        j                  dk\  r|j                  t        j                  «       t        |«      S )Nr   )r4   )é   é   )r  r4   r   r  r  r  r   r   r  Úversion_inforÑ   r  r›   )r4   rŽ   s     rK   r  r  ?  sR   € å*ô 	ÜÜÜÜØÜð€Mô ×Ñ˜7Ò"Ø×ÑœV×1Ñ1Ô2ä�ÓÐrL   )rX   zLiteral[False]rO   r   r‰   )r²   rþ   r±   rý   rO   zCallable[..., Any] | None)
r²   rþ   rŽ   rý   r$  úset[str]r%  r‚  rO   zdict[str, ModelPrivateAttr])r»   rk   r±   rý   rO   rP   )r»   rk   rO   r   )
r»   rk   r±   rý   r¹   r   rƒ   úNsResolver | NonerO   rP   )r»   rk   r°   rM   r¹   r   r‚   rÿ   rƒ   rƒ  r„   r   rO   rÿ   )r»   rk   rO   rP   )ry  údict[str, Any] | NonerO   r„  )rO   rý   )krT   Ú
__future__r   Ú_annotationsri  r>  r  r  r@   rr  Úabcr   r  r   r   Útypesr   r   r	   r
   r   r   r   r   Úpydantic_corer   r   Útyping_extensionsr   r   r   r   Úerrorsr   r   Úplugin._schema_validatorr   r   r   Ú_configr   Ú_decoratorsr   r   r   r    Ú_fieldsr!   r"   r#   Ú_generate_schemar$   Ú	_genericsr%   r&   Ú_import_utilsr'   r(   Ú_mock_val_serr)   Ú_namespace_utilsr*   Ú_schema_generation_sharedr+   Ú
_signaturer,   Ú_typing_extrar-   r.   r/   r0   r1   Ú_utilsr2   r3   r  r  r4   r5   r6   r7   ÚPydanticModelFieldr8   ÚPydanticModelPrivateAttrÚmainr9   rj  rN   Ú__setattr__r	  r¢   r;   r[   r_   rc   r�   r�   r¦   r2  r¤   r§   r«   r\  ro  r¡   r£   r  rZ   rL   rK   Ú<module>r�     s$  ðÙ (å 2ã Û Û 
Û Û Û Ý ß (Ý ß K× KÑ Kç =ß VÓ Vç CÝ >ß OÝ "ß sÓ sß YÑ YÝ ,ß Fß MÝ *Ý (Ý CÝ 3÷õ ÷ 9à	×ÒßGÑGÝ4Ý@Þ ð 3ÐÙ›ÐÙ%›xÐà×#Ñ#€ô
)˜$ô 
)ð !ñà
ðð 	óñ  TÐ=OÐQiÐkvÐ<wÔxôl�Wó ló yðló^	Gó$	ðEØðEà(ðEð ðEð  ð	Eð
 !óEóP
%óð +Ø	ð+à ð+ð "ð+ð #ð	+ð
 
ó+ðL Ø%)Ø&*ñZØ	ðZàðZð "ðZð
 ðZð #ðZð $ðZð 
óZóz&÷&".ñ ".÷J +ñ  +óFó(ñ  �4Ôò ó ñ rL   