Ë
    /æj7�  ã                  ód  — 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 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 dd	lmZmZ dd
l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l0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZHmIZI er!ddlJmKZL ddlJmMZMmNZN ddlJmOZP ddlQmRZR ddl0mSZS n eT«       ZL eT«       ZPeTjª                  ZV G d „ d!eW«      ZXd"d#œ	 	 	 d:d$„ZY ed%«      ZZ e d&eLePeYf¬'«       G d(„ d)e
«      «       Z[d;d*„Z\d<d+„Z]	 	 	 	 	 	 	 	 	 	 d=d,„Z^d>d-„Z_d?d.„Z`	 d@	 	 	 	 	 	 	 	 	 dAd/„Zad&d&dd"d0œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dBd1„ZbdCd2„Zc G d3„ d4«      Zd G d5„ d6«      ZedDd7„ZfdEd8„ZgedFd9„«       Zhy)Gz"Private logic for creating models.é    )ÚannotationsN)ÚABCMeta)ÚCallableÚMutableMapping)ÚcacheÚpartialÚwraps)ÚFunctionType)ÚTYPE_CHECKINGÚAnyÚGenericÚLiteralÚNoReturnÚTypeVarÚcast)ÚPydanticUndefinedÚSchemaSerializer)ÚTypeAliasTypeÚdataclass_transformÚ
deprecatedé   )ÚPydanticUndefinedAnnotationÚPydanticUserError)Úcreate_schema_validator)ÚGenericBeforeBaseModelWarningÚPydanticDeprecatedSince20é   )ÚConfigWrapper)ÚDecoratorInfosÚPydanticDescriptorProxyÚget_attribute_from_basesÚunwrap_wrapped_function)ÚModelNamespaceInfoÚ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)Ú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       €úi/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/pydantic/_internal/_model_construction.pyrG   z_ModelNamespaceDict.__setitem__>   sk   ø€ ØŸ™  DÓ)ˆÙ˜ Ñ)¬j¸ÔCZÔ.[Ü�M‰MØ�A�3Ð8¸×9PÑ9P×9_Ñ9_Ð8`Ð`kÐlØõô
 ‰wÑ" 1 aÓ(Ð(ó    )rI   ÚstrrJ   ÚobjectÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rG   Ú__classcell__©rL   s   @rM   r;   r;   9   s   ø„ ñ÷)ñ )rN   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© rY   s    rM   ÚNoInitFieldr]   I   ó   � rN   Ú_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           	     óL	  •‡!‡"‡#— |�r=| j                  |«      \  }}	}
t        j                  |||«      }t        ||j                  ||	¬«      }|j
                  }|j                  |d<   |	|d<   i |
¥|¥|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
«       |_        i |_        t+        j,                  |d¬«      |_        |j.                  j1                  |«       |r	||_        �n[t#        |di «      j5                  dd«      Š#t#        |dd«      xs ‰#Š"‰"�r‰#�rt7        ˆ"fd„‰#D «       «      �sddlm} t=        ˆ#fd„‰"D «       «      }|‰#v rZ|‰"vrVdj?                  |D �cg c]  }|j@                  ‘Œ c}«      }|j@                  › d|› d|j@                  › d|› d�}tE        |«      ‚‰#|z   }dj?                  |D �cg c]  }tC        |«      ‘Œ c}«      }d|› d�}d|› d�}t        |vrCdj?                  |D �cg c]  }|j@                  ‘Œ c}|gz   «      }|d|j@                  › d|› d �z  }tE        |«      ‚dd‰"d!œ|_        d
|_#        |jI                  «       D ]  \  }}|jK                  ||«       Œ |rtM        tO        «       «      |_(        t#        |d"d«      }tS        |tT        «      rtW        |«      }tY        |¬#«      }t[        ||||¬$«       |j\                  r5t_        ||«      Š!‰!�ta        ‰!«      d+ˆ!fd%„«       }||_1        ntd        |_1        |jb                  |jb                  u rdnd&|_3        |j.                  jh                  jI                  «       D ��ci c]  \  }}||jj                  “Œ c}}|_6        |jn                  rtq        |«       nts        |||d
|¬'«       |jt                  rd(|vrtw        ||«       t        ||�ò  di |¤Ž |S d)D ]  } |j{                  | d«       Œ |j5                  d*i «      j}                  «        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.
        )Úbase_class_fieldsÚbase_class_varsÚmodel_configÚ__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   r>   Ú__pydantic_base_init__FT)Úreplace_wrapped_methodsÚ__pydantic_generic_metadata__Ú
parametersr\   Ú__parameters__Nc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­w©Nr\   )Ú.0Úxrn   s     €rM   ú	<genexpr>z)ModelMetaclass.__new__.<locals>.<genexpr>Ÿ   s   øè ø€ Ò?kÐTUÀÀZÄÑ?kùs   ƒ)ÚRootModelRootTypec              3  ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wrq   r\   )rr   rs   Úparent_parameterss     €rM   rt   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Úargsrn   Ú__pydantic_parent_namespace__)Úparent_namespace)Úconfig_wrapperÚns_resolverÚnamespace_infoc               ó0   •— t        | |«        ‰| |«       y)z�We need to both initialize private attributes and call the user-defined model_post_init
                        method.
                        N)Úinit_private_attributes)rH   ÚcontextÚoriginal_model_post_inits     €rM   Úwrapped_model_post_initz7ModelMetaclass.__new__.<locals>.wrapped_model_post_initâ   s   ø€ ô
 0°°gÔ>Ù0°°wÕ?rN   Úmodel_post_init)Úraise_errorsÚcreate_model_moduleÚ__hash__)Ú__pydantic_fields_set__Ú__pydantic_extra__Ú__pydantic_private__Ú__annotations__©rH   r8   r„   r   rQ   rR   )?Ú_collect_bases_datar   Ú	for_modelÚinspect_namespaceÚignored_typesÚprivate_attributesÚconfig_dictr   rF   Ú__new__r,   Ú__mro__r   ÚindexrB   rC   r   ÚgetattrÚ__init__Ú__pydantic_custom_init__Ú__pydantic_setattr_handlers__r   ÚbuildÚ__pydantic_decorators__Úupdate_from_configrm   r@   ÚallÚ
root_modelru   ÚtupleÚjoinrS   rO   Ú	TypeErrorÚ__pydantic_complete__ÚitemsÚ__set_name__Úbuild_lenient_weakvaluedictr1   r}   rA   ÚdictÚunpack_lenient_weakvaluedictr/   Úset_model_fieldsri   Úget_model_post_initr	   r‡   rƒ   Ú__pydantic_post_init__Ú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Ú	namespacerm   Ú#__pydantic_reset_parent_namespace__Ú_create_model_moduleÚkwargsÚbase_field_namesÚ
class_varsÚbase_private_attributesr   r�   r”   ÚclsÚ
BaseModel_Úmroru   Úmissing_parametersrs   Úparameters_strÚerror_messageÚcombined_parametersÚgeneric_type_labelÚ	bases_strÚnameÚobjr~   r€   r†   rI   rJ   Úinstance_slotr…   rn   rw   rL   s%                                    @@@€rM   r–   zModelMetaclass.__new__Y   s  û€ ò6 ØDG×D[ÑD[Ð\aÓDbÑAÐ˜jÐ*Aä*×4Ñ4°U¸IÀvÓNˆNÜ.ØØ×,Ñ,Ø"2Ø *ô	ˆNð "0×!BÑ!BÐð )7×(BÑ(BˆI�nÑ%Ø*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Ô(à02ˆ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°È[ÐiwÕxð ×)Ò)Ü+>¸yÈ%Ó+PÐ(Ø+Ð7ô Ð3Ó4ô@ó 5ð@ð +B�CÕ'ä*A�CÔ'ð ×+Ñ+¨z×/IÑ/IÑI‘ÐO`ð Ô&ð '*×&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ùòU 4\ùò 4Yùò 3Nùól0s   ÇRÈ3RÉ/RÏR c                ód   — | j                   j                  d«      }|r	||v r||   S t        |«      ‚)zNThis is necessary to keep attribute access working for class attribute access.ri   )Ú__dict__r@   ÚAttributeError)rH   Úitemr”   s      rM   Ú__getattr__zModelMetaclass.__getattr__  s9   € à!%§¡×!2Ñ!2Ð3KÓ!LÐÙ! dÐ.@Ñ&@Ø)¨$Ñ/Ð/Ü  Ó&Ð&rN   c                ó   — t        «       S rq   )r;   )rÂ   r|   r¾   s      rM   Ú__prepare__zModelMetaclass.__prepare__!  s   € ä"Ó$Ð$rN   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   r>   )rB   rC   rU   rF   Úregister)rH   ÚsubclassrL   s     €rM   rÖ   zModelMetaclass.register)  s?   ø€ Ü�‰ØLÈT×M^ÑM^ÐL_ð `Mð Màõ	
ô
 ‰wÑ Ó)Ð)rN   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™   Úkeysrh   ri   )rº   r8   Úfield_namesrÀ   r”   Úbases         rM   r�   z"ModelMetaclass._collect_bases_data4  s™   € ä,Ó.ˆ	ä #£ˆÜ"›uˆ
Ø:<ÐØò 	GˆDÜ˜$ 	Õ*¨t¸9Ò/Dà×"Ñ"¤7¨4Ð1FÈÓ#K×#PÑ#PÓ#RÔSØ×!Ñ! $×"5Ñ"5Ô6Ø"×)Ñ)¨$×*EÑ*EÕFð	Gð ˜JÐ(:Ð:Ð:rN   ú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   r>   rÙ   )rB   rC   r   r™   ©rH   s    rM   Ú
__fields__zModelMetaclass.__fields__C  s+   € ô
 	�‰ØfÜ%Øõ	
ô
 �tÐ2°BÓ7Ð7rN   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rq   )Ú	_complete)rr   Ú
field_infos     rM   rt   z>ModelMetaclass.__pydantic_fields_complete__.<locals>.<genexpr>`  s   è ø€ ÒO¨J�:×'Õ'ÑOùs   ‚)rÏ   r   rÙ   Ú__pydantic_extra_info__Úcompleter    Úvalues)rH   Úfield_infosÚpydantic_extra_infoÚextra_completes       rM   Ú__pydantic_fields_complete__z+ModelMetaclass.__pydantic_fields_complete__O  sp   € ð !¨¯©Ñ5ØäÐ1°4×3KÑ3KÓLˆä"Ð#=¸t×?[Ñ?[Ó\ÐØÐ*Ø0×9Ñ9‰Nà!ˆNäÑO¸+×:LÑ:LÓ:NÔOÓOÒbÐTbÐbrN   c                ó`   •— t        t        ‰| �	  «       «      }d|v r|j                  d«       |S )Nrä   )ÚlistrF   Ú__dir__Úremove)rH   Ú
attributesrL   s     €rM   ró   zModelMetaclass.__dir__b  s0   ø€ Üœ%™'™/Ó+Ó,ˆ
Ø˜:Ñ%Ø×Ñ˜lÔ+ØÐrN   )NTN)r¹   rO   rº   útuple[type[Any], ...]r»   údict[str, Any]rm   zPydanticGenericMetadata | Noner¼   Úboolr½   ú
str | Noner¾   r   rQ   Útype)rÑ   rO   rQ   r   )r|   r   r¾   r   rQ   zdict[str, object])r×   útype[_T]rQ   rû   )rº   rö   rQ   z6tuple[set[str], set[str], dict[str, ModelPrivateAttr]])rQ   ræ   )rQ   rø   )rQ   z	list[str])rS   rT   rU   r–   r   rÒ   ÚclassmethodrÔ   rÖ   rú   Ú__instancecheck__Ú__subclasscheck__Ústaticmethodr�   Úpropertyr   rä   rð   ró   rW   rX   s   @rM   rc   rc   W   s  ø„ ð IMØ48Ø+/ð|Nàð|Nð %ð|Nð "ð	|Nð
 (Fð|Nð .2ð|Nð )ð|Nð ð|Nð 
õ|Nñ| ó	'ð ò%ó ð%õ*ð ×.Ñ.ÐØ×.Ñ.Ðàò;ó ð;ð ÙØbÐmqôò8óó ð8ð òcó ðc÷$ñ rN   rc   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™   ri   r¦   Ú$default_factory_takes_validated_dataÚget_defaultrÏ   r   Úobject_setattr)rH   r„   Úpydantic_privaterË   Úprivate_attrÚdefaults         rM   rƒ   rƒ   i  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ð ;rN   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.r‡   N)r,   r!   r‡   )r»   rº   r8   r‡   s       rM   r¬   r¬   �  sD   € à˜IÑ%ØÐ*Ñ+Ð+ä(Ó*€Iä.¨uÐ6GÓH€OØ˜i×7Ñ7Ñ7ØÐð 8rN   c               óÜ  — ddl m} t        «       }|t        «       z   }i }t	        «       }g }	g }
d| v rt        dd¬«      ‚| j                  «       D �]n  \  }}|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        ||«      rJ|j                  d«      rt        d|›d�d¬«      ‚t        |«      rt        dd|z   ›d|›d�d¬«      ‚|||<   Œçt        ||«      r4t        |«      s)|j                  d«      xs d}t        d|›d|›d�d¬«      ‚|j                  d«      r�Œ:t!        |«      r|	j#                  |«       �ŒX||v r�Œ^|
j#                  |«       �Œq |D ]  }| |= Œ t%        ||||	|
|| j'                  d«      du¬«      S )a=  Inspect the namespace prior to class creation.

    Most of the collected information is then used by `collect_model_fields()` to perform checks.

    Args:
        namespace: The attribute dictionary of the class to be created.
        ignored_types: Tuple of ignore types.
        base_class_vars: The set of base class variables.
        base_class_fields: The set of base class fields.

    Returns:
        A `ModelNamespaceInfo` instance.

    Raises:
        PydanticUserError: If there is a `__root__` field in model, or if a private attribute name is invalid.
    r   )r6   Ú__root__zUTo define root models, use `pydantic.RootModel` rather than a field called '__root__'N)Úcoderg   rŒ   rT   rU   ry   Ú	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”   Úignored_namesr“   Úprivate_candidatesÚfield_candidatesr¿   Úmodel_config_assigned)Úfieldsr6   r-   Údefault_ignored_typesrÚ   r   r¦   rA   rú   rT   rU   Ú
startswithrL   Úaddr%   Úlstripr&   Úappendr#   r@   )r»   r“   rf   re   r6   r5   Úall_ignored_typesr”   r  r  r  Úvar_nameÚvalueÚsuggested_names                 rM   r’   r’   �  s\  € õ. *ä(Ó*€Ià%Ô(=Ó(?Ñ?Ðà68ÐÜ!›e€MØ$&ÐØ"$Ðà�YÑäØcÐjnô
ð 	
ð %Ÿ?™?Ó,ó ..‰ˆ�%Ø�~Ò%¨Ð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ð ×%Ñ% hÖ/Ø˜Ñ(Ùð ×#Ñ# HÖ-ð]..ð` 'ò  ˆØ�hÑð ô Ø-Ø#Ø'Ø-Ø)Ø*Ø'Ÿm™m¨NÓ;À4ÐGôð rN   c                óž   — t        |d«      }t        | «      }|d t        j                  hv st	        |dd «      |j
                  k(  r|| _        y y )NrŠ   Ú__code__)r!   Úmake_hash_funcrP   rŠ   r™   r!  )rÂ   rº   Úbase_hash_funcÚnew_hash_funcs       rM   r´   r´   ó  sP   € Ü-¨e°ZÓ@€NÜ" 3Ó'€MØ˜$¤§¡Ð0Ñ0´G¸NÈJÐX\Ó4]Ðan×awÑawÒ4wð %ˆ�ð 5xrN   c                ó†   ‡— | j                   r*t        j                  | j                   j                  «       Ž nd„ Šdˆfd„}|S )Nc                 ó   — y)Nr   r\   )r  s    rM   ú<lambda>z make_hash_func.<locals>.<lambda>  r^   rN   c                ó¢   •— 	 t         ‰| j                  «      «      S # t        $ r' t         ‰t        | j                  «      «      «      cY S w xY wrq   )ÚhashrÏ   ÚKeyErrorr3   )rH   Úgetters    €rM   Ú	hash_funcz!make_hash_func.<locals>.hash_func  sJ   ø€ ð	AÜ™˜tŸ}™}Ó-Ó.Ð.øÜò 	Aô
 ™Ô/°·±Ó>Ó?Ó@Ò@ð	Aús   ƒ ž-AÁA)rH   r   rQ   Úint)rÙ   ÚoperatorÚ
itemgetterrÝ   )rÂ   r,  r+  s     @rM   r"  r"     s;   ø€ ØEH×E\ÒE\ŒX× Ñ  #×"9Ñ"9×">Ñ">Ó"@ÑAÑbm€FõAð ÐrN   c                ól  — t        | «      }t        | ||||¬«      \  }}}}|| _        || _        | j                  j                  |«       | j                  j                  |«       |D ]K  }	| j                  j                  |	d«      }
|
€Œ"|
j                  t        usŒ5t        | |	|
j                  «       ŒM y)a}  Collect and set `cls.__pydantic_fields__`, `cls.__class_vars__` and `cls.__private_attributes__`.

    Args:
        cls: BaseModel or dataclass.
        config_wrapper: The config wrapper instance.
        ns_resolver: Namespace resolver to use when getting model annotations.
        namespace_info: The result of inspecting the class namespace before the class was created.
    )Útypevars_mapr�   N)r+   r$   rÙ   rê   rh   rÜ   ri   r¶   r	  r   Úsetattr)rÂ   r   r€   r�   r1  r  rî   rÀ   r”   rI   r  s              rM   r«   r«     s¶   € ô *¨#Ó.€LÜBVØˆ^˜[°|ÐTbôCÑ?€FÐ Ð-?ð %€CÔØ"5€CÔØ×Ñ×Ñ˜jÔ)Ø×Ñ×%Ñ%Ð&8Ô9àò +ˆð ×*Ñ*×.Ñ.¨q°$Ó7ˆØÑ §¡Ô6GÒ!GÜ�C˜˜EŸM™MÕ*ñ+rN   )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
        $ rM}t        j                  |«      }	t        | |	j                  �d|	j                  › d�nd«       |r|	|‚Y d}~�ŒÌd}~ww xY w# t        $ r5}|r‚ t        | |j                  �d|j                  › d�n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 during core schema generation
            and `raise_errors` is True.
    )r   r€   r1  Nr=   F)ÚtitleÚcreate_modelr8   )Ú_use_prebuiltÚ__signature__)rZ   r  Úvalidate_by_aliasÚextraT)'r+   rð   r'   rÙ   rê   Ú	NameErrorr   Úfrom_name_errorr.   rË   r(   Úgenerate_schemaÚcore_configrS   Úclean_schemar)   rž   r®   r¦   r¯   r°   Úset_deprecated_descriptorsÚ__pydantic_core_schema__r   rT   rU   Úplugin_settingsÚ__pydantic_validator__r   Ú__pydantic_serializer__r2   r   r0   rš   r:  r;  r9  r¥   Ú__pydantic_on_complete__)rÂ   r   r€   rˆ   r3  r‰   r4  r1  ÚeÚexcÚ
gen_schemaÚschemar?  rI   rJ   s                  rM   r²   r²   1  s]  € ô@ *¨#Ó.€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°C·H±HÐ4H 1 S§X¡X J¨a¡ÈdÔSÙØ˜qÐ õ ûð	!ûô( 'ò ÙØÜ˜¨a¯f©fÐ.@˜q §¡ ¨™]ÀdÔKÜûð	ûô ò Ü˜ÔÙðüó (ssH   ™F0 Á H	 ÂI
 ÃI$Æ0	HÆ9AHÈHÈ		IÈ+IÉIÉ
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§   r2  r°   Úhasattrr"   Úwrapped_property)rÂ   Úfieldré   ÚmsgÚdescÚcomputed_field_infos         rM   rA  rA  ­  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˜ Õ%ñ&rN   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)rN  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.
    rO   Ú
field_nameNc                ó    — || _         || _        y rq   )rR  rP  )rH   rR  rP  s      rM   rš   z#_DeprecatedFieldDescriptor.__init__Ï  s   € ØˆŒØ 0ˆÕrN   c                ó   — || _         y rq   )rV  )rH   rÂ   rË   s      rM   r§   z'_DeprecatedFieldDescriptor.__set_name__Ó  s	   € Øˆ�rN   c                óN  — |€=| j                   �| j                   j                  d |«      S t        | j                  «      ‚t	        j
                  | j                  t        d¬«       | j                   �| j                   j                  ||«      S |j                  | j                     S )Nr   r>   )	rP  Ú__get__rÐ   rV  rB   rC   rR  ÚDeprecationWarningrÏ   )rH   rÌ   Úobj_types      rM   rZ  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Ñ,Ð,rN   c                ó,   — t        | j                  «      ‚rq   )rÐ   rV  )rH   rÌ   r  s      rM   Ú__set__z"_DeprecatedFieldDescriptor.__set__å  s   € Ü˜TŸ_™_Ó-Ð-rN   rq   )rR  rO   rP  zproperty | NonerQ   rR   )rÂ   rj   rË   rO   rQ   rR   )rÌ   zBaseModel | Noner\  ztype[BaseModel] | NonerQ   r   )rÌ   r   r  r   rQ   r   )	rS   rT   rU   rV   rŽ   rš   r§   rZ  r^  r\   rN   rM   rN  rN  Ä  s"   … ñð ƒOô1óô
-ô.rN   rN  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 rq   )Ú_wrÚweakrefÚref)rH   rÌ   s     rM   rš   z_PydanticWeakRef.__init__ú  s    € Øˆ;ð ˆD�Hä—{‘{ 3Ó'ˆD�HrN   c                ó<   — | j                   €y | j                  «       S rq   )rb  rã   s    rM   Ú__call__z_PydanticWeakRef.__call__  s   € Ø�8‰8ÐØà—8‘8“:ÐrN   c                ó   — t          | «       ffS rq   )r`  rã   s    rM   Ú
__reduce__z_PydanticWeakRef.__reduce__  s   € Ü¡$£& Ð*Ð*rN   N)rÌ   r   )rQ   r   )rQ   z4tuple[Callable, tuple[weakref.ReferenceType | None]])rS   rT   rU   rV   rš   rf  rh  r\   rN   rM   r`  r`  é  s   „ ñó (óô+rN   r`  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¦   r`  r¤   )ÚdÚresultrI   rJ   Úproxys        rM   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¦   rA   r`  )rj  rk  rI   rJ   s       rM   rª   rª      sX   € à€yØà€FØ—‘“	ò ‰ˆˆ1Ü�aÔ)Ô*Ù“ˆAØ‰}Ø��q’	àˆF�1ŠIðð €MrN   c                 óÊ   — ddl m}  t        t        t        t
        t        | t        g}t        j                  dk\  r|j                  t        j                  «       t        |«      S )Nr   )ÚComputedFieldInfo)é   é   )r  ro  r
   r   rü   rÿ   r    r   ÚsysÚversion_infor  Útypingr¢   )ro  r“   s     rM   r  r  0  sR   € å*ô 	ÜÜÜÜØÜð€Mô ×Ñ˜7Ò"Ø×ÑœV×1Ñ1Ô2ä�ÓÐrN   )rZ   zLiteral[False]rQ   r   r�   )r»   r÷   rº   rö   rQ   zCallable[..., Any] | None)
r»   r÷   r“   rö   rf   úset[str]re   ru  rQ   r#   )rÂ   rj   rº   rö   rQ   rR   )rÂ   rj   rQ   r   rq   )
rÂ   rj   r   r   r€   r/   r�   zModelNamespaceInfo | NonerQ   rR   )rÂ   rj   r   r   r€   r/   rˆ   rø   r3  rø   r‰   rù   r4  rø   rQ   rø   )rÂ   rj   rQ   rR   )rj  zMutableMapping[str, Any] | NonerQ   údict[str, Any] | None)rj  rv  rQ   rv  )rQ   rö   )irV   Ú
__future__r   Ú_annotationsr.  rr  rt  rB   rc  Úabcr   Úcollections.abcr   r   r  r   r   r	   Útypesr
   r   r   r   r   r   r   r   Úpydantic_corer   r   Útyping_extensionsr   r   r   Úerrorsr   r   Úplugin._schema_validatorr   r   r   Ú_configr   Ú_decoratorsr   r    r!   r"   Ú_fieldsr#   r$   r%   r&   r'   Ú_generate_schemar(   r)   Ú	_genericsr*   r+   Ú_import_utilsr,   r-   Ú_mock_val_serr.   Ú_namespace_utilsr/   Ú
_signaturer0   Ú_typing_extrar1   Ú_utilsr2   r3   r  r4   ÚPydanticModelFieldr5   r6   r7   ÚPydanticModelPrivateAttrÚmainr8   r9   rP   Ú__setattr__r  r©   r;   r]   r_   rc   rƒ   r¬   r’   r´   r"  r«   r²   rA  rN  r`  r¨   rª   r  r\   rN   rM   ú<module>r�     s4  ðÙ (å 2ã Û 
Û Û Û Ý ß 4ß +Ñ +Ý ß P× PÑ Pç =÷ñ ÷ DÝ >ß OÝ "ß sÓ s÷õ ÷ Aß Fß MÝ *Ý (Ý 3Ý 1ß 8áÝ4ß4Ý@Ý Þ*á›ÐÙ%›xÐà×#Ñ#€ô)˜$ô )ð$ !ñà
ðð 	óñ ˆTƒ]€ñ  TÐ=OÐQiÐkvÐ<wÔxôN�Wó Nó yðNóbGó0	ðcØðcà(ðcð ð	cð
  ðcð ócóL
%óð( 15ð	+Ø	ð+à!ð+ð ð+ð .ð	+ð
 
ó+ðL Ø"&Ø&*Ø"ñyØ	ðyà!ðyð ðyð
 ðyð  ðyð $ðyð ðyð 
óyóx&÷.".ñ ".÷J +ñ  +óFó(ð  ò ó ñ rN   