Ë
    ìO´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	m
Z
 ddlmZ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mZ ddlmZmZ dd	lmZmZmZ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* ddl+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z? ddl@mAZA ddlBmCZC ddlDmEZE ddlFmGZGmHZHmIZImJZJ ddlKmLZLmMZM er!ddlNmOZP ddlNmQZQmRZR ddlNmSZT ddlUmVZV ddl2mWZW n eX«       ZP eX«       ZTeXj²                  ZZ G d „ d!e[«      Z\d"d#œ	 	 	 d:d$„Z] ed%«      Z^ ed&ePeTe]f¬'«       G d(„ d)e
«      «       Z_d;d*„Z`d<d+„Za	 	 	 	 	 	 	 	 	 	 	 	 d=d,„Zbd>d-„Zcd?d.„Zd	 	 	 	 	 	 	 	 d@d/„Zed&d&dd"d0œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dAd1„ZfdBd2„Zg G d3„ d4«      Zh G d5„ d6«      ZidCd7„ZjdCd8„ZkedDd9„«       Zly)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                  ó$   ‡ — 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 «      }|rF||urBt        |t        «      r2t        j                  d|› d|j
                  j                  › d�d¬«       t        ‰| �!  ||«      S )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       €ú}/var/www/origus_pro_usr/data/www/origus.pro/core/.venv/lib/python3.12/site-packages/pydantic/_internal/_model_construction.pyrK   z_ModelNamespaceDict.__setitem__9   sk   ø€ ØŸ™  DÓ)ˆÙ˜ Ñ)¬j¸ÔCZÔ.[Ü�M‰MØ�A�3Ð8¸×9PÑ9P×9_Ñ9_Ð8`Ð`kÐlØõô
 ‰wÑ" 1 aÓ(Ð(ó    )rM   ÚstrrN   ÚobjectÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rK   Ú__classcell__©rP   s   @rQ   r?   r?   4   s   ø„ ñ÷)ñ )rR   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© r]   s    rQ   ÚNoInitFieldra   D   ó   � rR   Ú_TT)Úkw_only_defaultÚfield_specifiersc                  óü   ‡ — e Zd Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zesdd„Zedd„«       Zdˆ fd„Ze	j                  Z
e	j                  Zedd„«       Ze edd¬«      dd	„«       «       Zedd
„«       Zdˆ fd„Zˆ xZS )ÚModelMetaclassNc           	     óÔ	  •‡%‡&‡'— |�r�t         j                  dk\  r6d|v r|d   }n>ddlm}	m}
m}  ||«      x}r |
||	j                  ¬«      }ni }n|j                  di «      }| j                  |«      \  }}}t        j                  ||||«      }|j                  |d<   t        |||j                  ||«      }|s|r1t        ||«      Š%‰%�t        ‰%«      d.ˆ%fd„«       }||d	<   n	t         |d	<   ||d
<   i |¥|¥|d<   t#        dt%        ‰(| �L  | |||fi |¤Ž«      }t)        «       }|j*                  }t,        |v rG|j/                  t,        «      |j/                  |«      k  r t1        j2                  t5        d«      d¬«       t7        |j8                  dd«       |_        |j<                  |j<                  u rdnd	|_        i |_         tC        jD                  |d¬«      |_#        |jF                  jI                  |«       |r	||_%        �n[t7        |di «      j                  dd«      Š't7        |dd«      xs ‰'Š&‰&�r‰'�rtM        ˆ&fd„‰'D «       «      �sddl'm(} tS        ˆ'fd„‰&D «       «      }|‰'v rZ|‰&vrVdjU                  |D �cg c]  }|jV                  ‘Œ c}«      }|jV                  › d|› d|jV                  › d|› d�}t[        |«      ‚‰'|z   }djU                  |D �cg c]  }tY        |«      ‘Œ c}«      }d |› d!�}d"|› d#�}t,        |vrCdjU                  |D �cg c]  }|jV                  ‘Œ c}|gz   «      }|d$|jV                  › d%|› d&�z  }t[        |«      ‚dd‰&d'œ|_%        d|_.        |j_                  «       D ]  \  }}|ja                  ||«       Œ |rtc        te        «       «      |_3        t7        |d(d«      } ti        | tj        «      rtm        | «      } to        | ¬)«      }!tq        |||!¬*«       |jF                  jr                  j_                  «       D �"�#ci c]  \  }"}#|"|#jt                  “Œ c}#}"|_;        |jx                  rt{        |«       nt}        |||!d|¬+«       |j~                  rd,|vrt�        ||«       t%        ||��  di |¤Ž |S d-D ]  }$|j…                  |$d«       Œ |j                  di «      j‡                  «        t%        ‰(| �L  | |||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.
        )é   é   Ú__annotations__r   )ÚFormatÚcall_annotate_functionÚ!get_annotate_from_class_namespace)ÚformatÚ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)rL   ÚcontextÚoriginal_model_post_inits     €rQ   Úwrapped_model_post_initz7ModelMetaclass.__new__.<locals>.wrapped_model_post_init�   s   ø€ ô
 0°°gÔ>Ù0°°wÕ?rR   Úmodel_post_initÚ__class_vars__Ú__private_attributes__útype[BaseModel]z�Classes should inherit from `BaseModel` before generic classes (e.g. `typing.Generic[T]`) for pydantic generics to work properly.r   rB   Ú__pydantic_base_init__FT)Úreplace_wrapped_methodsÚ__pydantic_generic_metadata__Ú
parametersr`   Ú__parameters__c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­w©Nr`   )Ú.0Úxr}   s     €rQ   ú	<genexpr>z)ModelMetaclass.__new__.<locals>.<genexpr>¹   s   øè ø€ Ò?kÐTUÀÀZÄÑ?kùs   ƒ)ÚRootModelRootTypec              3  ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wr€   r`   )r�   r‚   Úparent_parameterss     €rQ   rƒ   z)ModelMetaclass.__new__.<locals>.<genexpr>¼   s   øè ø€ Ò.c°QÈÐQbÒHb¬qÑ.cù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__©rL   r<   rs   r
   rU   rV   )DÚsysÚversion_infoÚannotationlibrl   rm   rn   Ú
FORWARDREFrD   Ú_collect_bases_datar    Ú	for_modelÚconfig_dictÚinspect_namespaceÚignored_typesÚget_model_post_initr   rr   r   rJ   Ú__new__r-   Ú__mro__r   ÚindexrF   rG   r   ÚgetattrÚ__init__Ú__pydantic_custom_init__rv   Ú__pydantic_post_init__Ú__pydantic_setattr_handlers__r!   ÚbuildÚ__pydantic_decorators__Úupdate_from_configr|   ÚallÚ
root_modelr„   ÚtupleÚjoinrW   rS   Ú	TypeErrorÚ__pydantic_complete__ÚitemsÚ__set_name__Úbuild_lenient_weakvaluedictr5   rŒ   rE   Ú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_annotationsrl   rm   rn   ÚannotateÚbase_field_namesÚ
class_varsÚbase_private_attributesrŽ   Úprivate_attributesru   ÚclsÚ
BaseModel_Úmror„   Úmissing_parametersr‚   Úparameters_strÚerror_messageÚcombined_parametersÚgeneric_type_labelÚ	bases_strÚnameÚobjr�   r�   rM   rN   Úinstance_slotrt   r}   r†   rP   s)                                        @@@€rQ   r¡   zModelMetaclass.__new__T   sp  û€ ò6 ä×Ñ 7Ò*à%¨Ñ2à&/Ð0AÑ&B‘O÷ pÑoá#DÀYÓ#OÐO�xÐOÙ*@ÀÐRX×RcÑRcÔ*d™à*,™à"+§-¡-Ð0AÀ2Ó"F�àDG×D[ÑD[Ð\aÓDbÑAÐ˜jÐ*Aä*×4Ñ4°U¸IÀÐX^Ó_ˆNØ(6×(BÑ(BˆI�nÑ%Ü!2Ø˜?¨N×,HÑ,HÈ*ÐVfó"Ðñ "Ñ%<Ü+>¸yÈ%Ó+PÐ(Ø+Ð7ô Ð3Ó4ô@ó 5ð@ð 4K�IÐ/Ò0ä3J�IÐ/Ñ0à*4ˆIÐ&Ñ'Ø2cÐ5LÐ2cÐPbÐ2cˆIÐ.Ñ/äÐ(¬%©'©/¸#¸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`ð Ô&ð 13ˆCÔ-ä*8×*>Ñ*>¸sÐ\`Ô*aˆCÔ'Ø×'Ñ'×:Ñ:¸>ÔJñ -Ø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[À1°A·J³JÒ3[Ó)\˜à"Ÿ|™|˜nÐ,Ø-Ð.ð /WØWZ×WcÑWcÐVdÐdoÐp~Ðoð  @IðJð &ô, $ MÓ2Ð2ð! /@ÐBTÑ.TÐ+Ø)-¯©ÐDWÖ3X¸q´C¸µFÒ3XÓ)Y˜Ø/>¸~Ð>NÈaÐ-PÐ*ð8Ø8JÐ7KÈ1ðNð &ô #¨%Ñ/ð
 )-¯	©	ÀuÖ2MÀ!°1·:³:Ò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Õ+ð,ñ 3Ü4OÔPfÓPhÓ4i�Ô1Ü6=¸cÐCbÐdhÓ6iÐÜÐ*¬DÔ1Ü#?Ð@PÓ#QÐ ä$Ð6FÔGˆKä˜S°È[ÕYð
 '*×&AÑ&A×&QÑ&Q×&WÑ&WÓ&Y÷0Ù"˜a ��1—6‘6‘	ó0ˆCÔ,ð ×)Ò)Ü Õ$ô %ØØ"ØØ!&Ø(<õð ×$Ò$¨¸9Ñ)DÜ% c¨5Ô1ô
 �#�sÒ6Ñ@¸Ò@ØˆJð "iò �Ø—‘Ø!Øõðð
 �M‰MÐ+¨RÓ0×6Ñ6Ô8Ü‘7‘? 3¨°%¸ÑMÀfÑMÐMùòg 4\ùò 4Yùò 3Nùó>0s   É>SËSÌSÐS$c                ód   — | j                   j                  d«      }|r	||v r||   S t        |«      ‚)zNThis is necessary to keep attribute access working for class attribute access.rx   )Ú__dict__rD   ÚAttributeError)rL   ÚitemrÎ   s      rQ   Ú__getattr__zModelMetaclass.__getattr__  s9   € à!%§¡×!2Ñ!2Ð3KÓ!LÐÙ! dÐ.@Ñ&@Ø)¨$Ñ/Ð/Ü  Ó&Ð&rR   c                ó   — t        «       S r€   )r?   )rÏ   r‹   rÈ   s      rQ   Ú__prepare__zModelMetaclass.__prepare__$  s   € ä"Ó$Ð$rR   c                ól   •— t        j                  d| j                  › d�d¬«       t        ‰| �  |«      S )Nz>For performance reasons, virtual subclasses registered using 'zK.register()' are not supported in 'isinstance()' and 'issubclass()' checks.r   rB   )rF   rG   rY   rJ   Úregister)rL   ÚsubclassrP   s     €rQ   rã   zModelMetaclass.register,  s?   ø€ Ü�‰ØLÈT×M^ÑM^ÐL_ð `Mð Màõ	
ô
 ‰wÑ Ó)Ð)rR   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-   ÚsetÚ
issubclassÚupdater¤   Úkeysrw   rx   )rÄ   r<   Úfield_namesrÌ   rÎ   Úbases         rQ   r›   z"ModelMetaclass._collect_bases_data7  s™   € ä,Ó.ˆ	ä #£ˆÜ"›uˆ
Ø:<ÐØò 	GˆDÜ˜$ 	Õ*¨t¸9Ò/Dà×"Ñ"¤7¨4Ð1FÈÓ#K×#PÑ#PÓ#RÔSØ×!Ñ! $×"5Ñ"5Ô6Ø"×)Ñ)¨$×*EÑ*EÕFð	Gð ˜JÐ(:Ð:Ð:rR   úXThe `__fields__` attribute is deprecated, use the `model_fields` class property instead.)Úcategoryc                óT   — t        j                  dt        d¬«       t        | di «      S )Nrí   r   rB   ræ   )rF   rG   r   r¤   ©rL   s    rQ   Ú
__fields__zModelMetaclass.__fields__F  s+   € ô
 	�‰ØfÜ%Øõ	
ô
 �tÐ2°BÓ7Ð7rR   c                óâ   — d| j                   vryt        d| j                  «      }t        d| j                  «      }|�|j                  }nd}t        d„ |j                  «       D «       «      xr |S )z²Whether 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  ó4   K  — | ]  }|j                   –— Œ y ­wr€   )Ú	_complete)r�   Ú
field_infos     rQ   rƒ   z>ModelMetaclass.__pydantic_fields_complete__.<locals>.<genexpr>c  s   è ø€ ÒO¨J�:×'Õ'ÑOùs   ‚)rÜ   r   ræ   Ú__pydantic_extra_info__Úcompleter¬   Úvalues)rL   Úfield_infosÚpydantic_extra_infoÚextra_completes       rQ   Ú__pydantic_fields_complete__z+ModelMetaclass.__pydantic_fields_complete__R  sp   € ð !¨¯©Ñ5ØäÐ1°4×3KÑ3KÓLˆä"Ð#=¸t×?[Ñ?[Ó\ÐØÐ*Ø0×9Ñ9‰Nà!ˆNäÑO¸+×:LÑ:LÓ:NÔOÓOÒbÐTbÐbrR   c                ó`   •— t        t        ‰| �	  «       «      }d|v r|j                  d«       |S )Nrñ   )ÚlistrJ   Ú__dir__Úremove)rL   Ú
attributesrP   s     €rQ   r   zModelMetaclass.__dir__e  s0   ø€ Üœ%™'™/Ó+Ó,ˆ
Ø˜:Ñ%Ø×Ñ˜lÔ+ØÐrR   )NTN)rÃ   rS   rÄ   útuple[type[Any], ...]rÅ   údict[str, Any]r|   zPydanticGenericMetadata | NonerÆ   ÚboolrÇ   ú
str | NonerÈ   r
   rU   Útype)rÞ   rS   rU   r
   )r‹   r
   rÈ   r
   rU   zdict[str, object])rä   útype[_T]rU   r  )rÄ   r  rU   z6tuple[set[str], set[str], dict[str, ModelPrivateAttr]])rU   ró   )rU   r  )rU   z	list[str])rW   rX   rY   r¡   r	   rß   Úclassmethodrá   rã   r  Ú__instancecheck__Ú__subclasscheck__Ústaticmethodr›   Úpropertyr   rñ   rý   r   r[   r\   s   @rQ   rg   rg   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ñL ó	'ð ò%ó ð%õ*ð ×.Ñ.ÐØ×.Ñ.Ðàò;ó ð;ð ÙØbÐmqôò8óó ð8ð òcó ðc÷$ñ rR   rg   c               ó  — t        | dd«      €€i }| j                  j                  «       D ]S  \  }}|j                  r"|j	                  di | j
                  ¥|¥¬«      }n|j	                  d¬«      }|t        usŒO|||<   ŒU t        | d|«       yy)a  This 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¤   rx   r²   Ú$default_factory_takes_validated_dataÚget_defaultrÜ   r   Úobject_setattr)rL   rs   Úpydantic_privaterØ   Úprivate_attrÚdefaults         rQ   rr   rr   l  s®   € ô ˆtÐ+¨TÓ2Ð:ØÐØ"&×"=Ñ"=×"CÑ"CÓ"Eò 		1ÑˆD�,à×@Ò@Ø&×2Ñ2Ø)-Ð>cÀÇÁÐ>cÐRbÐ>cð 3ó ‘ð '×2Ñ2ÈÐ2ÓM�ØÔ/Ò/Ø)0Ð  Ò&ð		1ô 	�tÐ3Ð5EÕFð ;rR   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.rv   N)r-   r#   rv   )rÅ   rÄ   r<   rv   s       rQ   r    r    „  sD   € à˜IÑ%ØÐ*Ñ+Ð+ä(Ó*€Iä.¨uÐ6GÓH€OØ˜i×7Ñ7Ñ7ØÐð 8rR   c           
     ó^  ‡— ddl mŠm} t        «       }|t	        «       z   }i }d|v sd| v rt        d«      ‚t        «       }	t        | j                  «       «      D �]Ã  \  }
}|
dk(  s|
dk(  rŒt        |t        «      r8|j                  | d   k(  r&d| v r"|j                  j                  | d   › d	�«      rŒZt        ||«      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�Œ7t'        |
«      r/|
|vst)        ||
   «      r�ŒVt+        ‰ ||¬«      «      ||
<   | |
= �Œq|
|v r�Œw|
|vs�Œ}|
|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Œ-t/        |dd«      d
k7  sŒ>t        |t0        «      rFt3        j4                  d«      }|�/	 t7        t9        |dd¬ «      |j:                  |j<                  ¬!«      }t?        j@                  tC        |«      «      r*tE        |«      ^}}tG        ˆfd"„|D «       d«      }|�|||<   ŒÜ |«       ||<   Œç |S # t         t
        f$ r Y Œgw xY w)#aL  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__'rp   r”   rX   rY   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  ó<   •K  — | ]  }t        |‰«      sŒ|–— Œ y ­wr€   )rE   )r�   rN   r:   s     €rQ   rƒ   z$inspect_namespace.<locals>.<genexpr>  s   øè ø€ Ò$\¨1¼JÀqÐJZÕ<[¤QÑ$\ùs   ƒ•)$Úfieldsr:   r;   r.   Údefault_ignored_typesr°   rç   rÿ   r²   rE   r  rX   rY   Ú
startswithrP   ÚaddÚ	NameErrorr&   Úlstripr'   r4   r   r   r¤   rS   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                      @rQ   rž   rž   �  sÓ  ø€ ÷8 7ä(Ó*€Ià%Ô(=Ó(?Ñ?Ðà68Ðà�_Ñ$¨
°iÑ(?ÜÐoÓpÐpä!›e€MÜ 	§¡Ó 1Ó2ó ;‰ˆ�%Ø�~Ò%¨Ð5IÒ)IØä�uœdÔ#Ø× Ñ  I¨lÑ$;Ò;Ø )Ñ+Ø×"Ñ"×-Ñ-°¸>Ñ1JÐ0KÈ1Ð.MÔNð Ü˜Ð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;ðz .×3Ñ3Ó5ò 9Ñˆ�(ä% 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Ò(ð?9ð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_funcrT   r’   r¤   r;  )rÏ   rÄ   Úbase_hash_funcÚnew_hash_funcs       rQ   r¾   r¾     sP   € Ü-¨e°ZÓ@€NÜ" 3Ó'€MØ˜$¤§¡Ð0Ñ0´G¸NÈJÐX\Ó4]Ðan×awÑawÒ4wð %ˆ�ð 5xrR   c                ó†   ‡— | j                   r*t        j                  | j                   j                  «       Ž nd„ Šdˆfd„}|S )Nc                 ó   — y)Nr   r`   )r  s    rQ   ú<lambda>z make_hash_func.<locals>.<lambda>'  rb   rR   c                ó¢   •— 	 t         ‰| j                  «      «      S # t        $ r' t         ‰t        | j                  «      «      «      cY S w xY wr€   )ÚhashrÜ   ÚKeyErrorr7   )rL   Úgetters    €rQ   Ú	hash_funcz!make_hash_func.<locals>.hash_func)  sJ   ø€ ð	AÜ™˜tŸ}™}Ó-Ó.Ð.øÜò 	Aô
 ™Ô/°·±Ó>Ó?Ó@Ò@ð	Aús   ƒ ž-AÁA)rL   r
   rU   Úint)ræ   ÚoperatorÚ
itemgetterrê   )rÏ   rF  rE  s     @rQ   r<  r<  &  s;   ø€ ØEH×E\ÒE\ŒX× Ñ  #×"9Ñ"9×">Ñ">Ó"@ÑAÑbm€FõAð ÐrR   c                ó2  — t        | «      }t        | |||¬«      \  }}}|| _        || _        | j                  j                  |«       |D ]K  }| j                  j                  |d«      }|€Œ"|j                  t        usŒ5t        | ||j                  «       ŒM y)züCollect 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÷   rw   ré   rx   rÀ   r  r   Úsetattr)	rÏ   rŽ   r�   rK  r$  rû   rÌ   rM   r4  s	            rQ   r·   r·   6  sš   € ô *¨#Ó.€LÜ.BØˆ^˜[°|ô/Ñ+€FÐ ð %€CÔØ"5€CÔØ×Ñ×Ñ˜jÔ)àò 
+ˆð ×*Ñ*×.Ñ.¨q°$Ó7ˆØÑ §¡Ô6GÒ!GÜ�C˜˜EŸM™MÕ*ñ
+rR   )r�   Úcall_on_complete_hookr‘   Úis_force_rebuildc          
     óœ  — t        | «      }| j                  s:	 t        | |||¬«      \  | _        | _        |s| j                  sy| j                  sJ ‚t        |||«      }
	 |
j                  | «      }|j                  | j                  ¬«      }	 |
j                  |«      }| j                   j"                  j%                  «       D ��ci c]  \  }}||j&                  “Œ c}}| _        t+        | «       || _        t/        || |xs | j0                  | j2                  |rdnd||j4                  | ¬«      | _        t9        ||| ¬«      | _        t=        d	t?        t@        | jB                  | j                  |jD                  |jF                  ¬
«      «      | _$        d| _%        |r| jM                  «        y# t
        $ r?}t        j                  |«      }	t        | d|	j                  › d�«       |r|	|‚Y d}~�Œ¾d}~ww xY w# t        $ r'}|r‚ t        | d|j                  › d�«       Y d}~yd}~ww xY w# t        $ r t        | «       Y yw xY wc c}}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.
        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�   rK  rA   NF)ÚtitleÚcreate_modelr<   )Ú_use_prebuiltÚ__signature__)r^   r$  Úvalidate_by_nameÚextraT)'r,   rý   r(   ræ   r÷   r(  r   Úfrom_name_errorr/   rØ   r)   Úgenerate_schemaÚcore_configrW   Úclean_schemar*   rª   r¸   r²   r¹   rº   Úset_deprecated_descriptorsÚ__pydantic_core_schema__r   rX   rY   Úplugin_settingsÚ__pydantic_validator__r   Ú__pydantic_serializer__r6   r   r1   r¥   rT  rU  rS  r±   Ú__pydantic_on_complete__)rÏ   rŽ   r�   r�   rM  r‘   rN  rK  ÚeÚexcÚ
gen_schemaÚschemarX  rM   rN   s                  rQ   r¼   r¼   X  sG  € ô@ *¨#Ó.€Là×+Ò+ð	!ÜCWØØ-Ø'Ø)ô	DÑ@ˆCÔ# SÔ%@ñ  C×$DÒ$Dàà×/Ò/Ð/Ð/äØØØó€JðØ×+Ñ+¨CÓ0ˆð !×,Ñ,°3·<±<Ð,Ó@€KðØ×(Ñ(¨Ó0ˆð ?B×>YÑ>Y×>iÑ>i×>oÑ>oÓ>q×'r±d°a¸¨¨1¯6©6©	Ó'r€CÔ$ä˜sÔ#à#)€CÔ ä!8ØØØÒ-˜sŸ~™~Ø×ÑÙ-‰°;ØØ×&Ñ&Ø*Ð*ô	"€CÔô #3°6¸;ÐZjÐVjÔ"k€CÔô
 +ØÜÜ'Ø—‘Ø×*Ñ*Ø+×<Ñ<Ø ×&Ñ&ô	
ó	€CÔð !%€CÔáØ×$Ñ$Ô&àøôS ò 	!Ü-×=Ñ=¸aÓ@ˆCÜ˜C 1 S§X¡X J¨a Ô1ÙØ˜qÐ õ ûð	!ûô( 'ò ÙØÜ˜˜q §¡ ¨˜]Ô+Üûð	ûô ò Ü˜ÔÙðüó (ssG   ™F0 Á G; ÂH. ÃIÆ0	G8Æ94G3Ç3G8Ç;	H+ÈH&È&H+È.IÉI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³   rL  rº   Úhasattrr$   Úwrapped_property)rÏ   Úfieldrö   ÚmsgÚdescÚcomputed_field_infos         rQ   rZ  rZ  Ô  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˜ Õ%ñ&rR   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)rg  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.
    rS   Ú
field_nameNc                ó    — || _         || _        y r€   )rk  ri  )rL   rk  ri  s      rQ   r¥   z#_DeprecatedFieldDescriptor.__init__ò  s   € ØˆŒØ 0ˆÕrR   c                ó   — || _         y r€   )ro  )rL   rÏ   rØ   s      rQ   r³   z'_DeprecatedFieldDescriptor.__set_name__ö  s	   € Øˆ�rR   c                óN  — |€=| j                   �| j                   j                  d |«      S t        | j                  «      ‚t	        j
                  | j                  t        d¬«       | j                   �| j                   j                  ||«      S |j                  | j                     S )Nr   rB   )	ri  Ú__get__rÝ   ro  rF   rG   rk  ÚDeprecationWarningrÜ   )rL   rÙ   Úobj_types      rQ   rs  z"_DeprecatedFieldDescriptor.__get__ù  sˆ   € Øˆ;Ø×$Ñ$Ð0Ø×,Ñ,×4Ñ4°T¸8ÓDÐDÜ  §¡Ó1Ð1ä�‰�d—h‘hÔ 2¸qÕAà× Ñ Ð,Ø×(Ñ(×0Ñ0°°hÓ?Ð?Ø�|‰|˜DŸO™OÑ,Ð,rR   c                ó,   — t        | j                  «      ‚r€   )rÝ   ro  )rL   rÙ   r4  s      rQ   Ú__set__z"_DeprecatedFieldDescriptor.__set__  s   € Ü˜TŸ_™_Ó-Ð-rR   r€   )rk  rS   ri  zproperty | NonerU   rV   )rÏ   ry   rØ   rS   rU   rV   )rÙ   zBaseModel | Noneru  ztype[BaseModel] | NonerU   r
   )rÙ   r
   r4  r
   rU   r   )	rW   rX   rY   rZ   rk   r¥   r³   rs  rw  r`   rR   rQ   rg  rg  ç  s"   … ñð ƒOô1óô
-ô.rR   rg  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
    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 r€   )Ú_wrÚweakrefÚref)rL   rÙ   s     rQ   r¥   z_PydanticWeakRef.__init__  s    € Øˆ;ð ˆD�Hä—{‘{ 3Ó'ˆD�HrR   c                ó<   — | j                   €y | j                  «       S r€   )r{  rð   s    rQ   Ú__call__z_PydanticWeakRef.__call__%  s   € Ø�8‰8ÐØà—8‘8“:ÐrR   c                ó   — t          | «       ffS r€   )ry  rð   s    rQ   Ú
__reduce__z_PydanticWeakRef.__reduce__+  s   € Ü¡$£& Ð*Ð*rR   N)rÙ   r
   )rU   r
   )rU   z4tuple[Callable, tuple[weakref.ReferenceType | None]])rW   rX   rY   rZ   r¥   r  r�  r`   rR   rQ   ry  ry    s   „ ñó (óô+rR   ry  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²   ry  r°   )ÚdÚresultrM   rN   Úproxys        rQ   r´   r´   /  sa   € ð 	€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²   rE   ry  )rƒ  r„  rM   rN   s       rQ   r¶   r¶   C  sX   € à€yØà€FØ—‘“	ò ‰ˆˆ1Ü�aÔ)Ô*Ù“ˆAØ‰}Ø��q’	àˆF�1ŠIðð €MrR   c                 óÊ   — ddl m}  t        t        t        t
        t        | t        g}t        j                  dk\  r|j                  t        j                  «       t        |«      S )Nr   )ÚComputedFieldInfo)ri   é   )r$  rˆ  r   r  r	  r  r"   r   r—   r˜   ÚappendÚtypingr®   )rˆ  rŸ   s     rQ   r%  r%  S  sR   € å*ô 	ÜÜÜÜØÜð€Mô ×Ñ˜7Ò"Ø×ÑœV×1Ñ1Ô2ä�ÓÐrR   )r^   zLiteral[False]rU   r
   r–   )rÅ   r  rÄ   r  rU   zCallable[..., Any] | None)rÅ   r  rÉ   r  rŸ   r  r/  úset[str]r0  rŒ  rU   zdict[str, ModelPrivateAttr])rÏ   ry   rÄ   r  rU   rV   )rÏ   ry   rU   r
   )rÏ   ry   rŽ   r    r�   r0   rU   rV   )rÏ   ry   rŽ   r    r�   r0   r�   r  rM  r  r‘   r  rN  r  rU   r  )rÏ   ry   rU   rV   )rƒ  údict[str, Any] | NonerU   r�  )rU   r  )mrZ   Ú
__future__r   Ú_annotationsrH  r—   r‹  rF   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   r$  r8   ÚPydanticModelFieldr9   r:   r;   ÚPydanticModelPrivateAttrÚmainr<   r=   rT   Ú__setattr__r  rµ   r?   ra   rc   rg   rr   r    rž   r¾   r<  r·   r¼   rZ  rg  ry  r´   r¶   r%  r`   rR   rQ   ú<module>r¦     s+  ðÙ (å 2ã Û 
Û Û Û Ý ß +Ñ +Ý ß Z× ZÓ Zç =ß bÕ bÝ ,ç CÝ >ß OÝ "ß sÓ sß oÓ oß @ß Fß MÝ *Ý (Ý 3÷ó ÷ 9áÝ4ß4Ý@Ý Þ*á›ÐÙ%›xÐà×#Ñ#€ô)˜$ô )ð$ !ñà
ðð 	óñ ˆTƒ]€ñ  TÐ=OÐQiÐkvÐ<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ó(ð  ò ó ñ rR   