§
    ÐÁ³g.Ü  ã                  ó¬  — d Z ddlm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 ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ dd	l0m1Z1 dd
l2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZM ddlNmOZO ddlPmQZQ ddlRmSZT ddlUmVZV ddlWmXZX dZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZah d£Zb eXeT¦  «        Zcd Zdd!ZSded&„Ze G d'„ d(e6¦  «        Zf G d)„ d*¦  «        Zgdfd.„Zh G d/„ d0¦  «        Zi G d1„ d2¦  «        Zj G d3„ d4¦  «        Zk G d5„ d6¦  «        Zl ed7d8d9¦  «        Zm ed:d;d9¦  «        Zn ed<d=d9¦  «        Zo ed>d?d9¦  «        Zp ed@dAd9¦  «        Zq ed@dBd9¦  «        Zr ed@dCd9¦  «        ZsdgdJ„ZtdhdM„ZudidN„ZvdjdQ„ZwdidR„ZxdkdS„Zy	 	 	 dldmda„Zzdndd„Z{dS )oz^This module includes classes and functions designed specifically for use with the mypy plugin.é    )ÚannotationsN)ÚConfigParser)ÚAnyÚCallableÚIterator)Ú	ErrorCode)Úexpand_typeÚexpand_type_by_instance) Ú	ARG_NAMEDÚARG_NAMED_OPTÚARG_OPTÚARG_POSÚ	ARG_STAR2Ú	INVARIANTÚMDEFÚArgumentÚAssignmentStmtÚBlockÚCallExprÚClassDefÚContextÚ	DecoratorÚDictExprÚEllipsisExprÚ
ExpressionÚFuncDefÚIfStmtÚJsonDictÚ
MemberExprÚNameExprÚPassStmtÚPlaceholderNodeÚRefExprÚ	StatementÚStrExprÚSymbolTableNodeÚTempNodeÚ	TypeAliasÚTypeInfoÚVar)ÚOptions)ÚCheckerPluginInterfaceÚClassDefContextÚMethodContextÚPluginÚReportConfigContextÚSemanticAnalyzerPluginInterface)Údeserialize_and_fixup_type)Úset_callable_name)Úmake_wildcard_trigger)Ústate)Úmap_type_from_supertype)
ÚAnyTypeÚCallableTypeÚInstanceÚNoneTypeÚTypeÚ	TypeOfAnyÚTypeTypeÚTypeVarTypeÚ	UnionTypeÚget_proper_type)Úfill_typevars)Úget_unique_redefinition_name)Ú__version__)Ú_fields)Úparse_mypy_versionúpydantic-mypyzpydantic-mypy-metadatazpydantic.main.BaseModelz#pydantic_settings.main.BaseSettingszpydantic.root_model.RootModelz5pydantic._internal._model_construction.ModelMetaclasszpydantic.fields.Fieldzpydantic.dataclasses.dataclassú.pydantic.functional_validators.model_validator>   ú*pydantic.functional_serializers.serializerú.pydantic.deprecated.class_validators.validatorú.pydantic.functional_validators.field_validatorú0pydantic.functional_serializers.model_serializerú3pydantic.deprecated.class_validators.root_validatorrG   Úbuiltinsé   ÚversionÚstrÚreturnútype[Plugin]c                ó   — t           S )a!  `version` is the mypy version string.

    We might want to use this to print a warning if the mypy version being used is
    newer, or especially older, than we expect (or need).

    Args:
        version: The mypy version string.

    Return:
        The Pydantic mypy plugin type.
    )ÚPydanticPlugin)rO   s    úK/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pydantic/mypy.pyÚpluginrV   j   s
   € õ Ðó    c                  óT   ‡ — e Zd ZdZdˆ fd„Zdd
„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
ˆ xZS )rT   zThe Pydantic mypy plugin.Úoptionsr+   rQ   ÚNonec                ó®   •— t          |¦  «        | _        | j                             ¦   «         | _        t	          ¦   «                              |¦  «         d S ©N)ÚPydanticPluginConfigÚplugin_configÚto_dataÚ_plugin_dataÚsuperÚ__init__)ÚselfrY   Ú	__class__s     €rU   rb   zPydanticPlugin.__init__|   sH   ø€ Ý1°'Ñ:Ô:ˆÔØ Ô.×6Ò6Ñ8Ô8ˆÔÝ‰Œ×Ò˜Ñ!Ô!Ð!Ð!Ð!rW   ÚfullnamerP   ú(Callable[[ClassDefContext], None] | Nonec                ó¼   — |                       |¦  «        }|rDt          |j        t          ¦  «        r*t	          d„ |j        j        D ¦   «         ¦  «        r| j        S dS )zUpdate Pydantic model class.c              3  ó6   K  — | ]}|j         t          k    V — Œd S r\   ©re   ÚBASEMODEL_FULLNAME©Ú.0Úbases     rU   ú	<genexpr>z5PydanticPlugin.get_base_class_hook.<locals>.<genexpr>†   s*   è è € ÐPÐP¸4�4”=Õ$6Ò6ÐPÐPÐPÐPÐPÐPrW   N)Úlookup_fully_qualifiedÚ
isinstanceÚnoder)   ÚanyÚmroÚ$_pydantic_model_class_maker_callback)rc   re   Úsyms      rU   Úget_base_class_hookz"PydanticPlugin.get_base_class_hook�   sd   € à×)Ò)¨(Ñ3Ô3ˆØð 	A•:˜cœh­Ñ1Ô1ð 	AåÐPÐPÀ3Ä8Ä<ÐPÑPÔPÑPÔPð AØÔ@Ð@ØˆtrW   c                ó*   — |t           k    r| j        S dS )z,Update Pydantic `ModelMetaclass` definition.N)ÚMODEL_METACLASS_FULLNAMEÚ)_pydantic_model_metaclass_marker_callback©rc   re   s     rU   Úget_metaclass_hookz!PydanticPlugin.get_metaclass_hookŠ   s   € àÕ/Ò/Ð/ØÔAÐAØˆtrW   ú&Callable[[MethodContext], Type] | Nonec                ó>   — |                      d¦  «        rt          S dS )z-Adjust return type of `from_orm` method call.z	.from_ormN)ÚendswithÚfrom_attributes_callbackrz   s     rU   Úget_method_hookzPydanticPlugin.get_method_hook�   s#   € à×Ò˜[Ñ)Ô)ð 	,Ý+Ð+ØˆtrW   Úctxr0   údict[str, Any]c                ó   — | j         S )zjReturn all plugin config data.

        Used by mypy to determine if cache needs to be discarded.
        )r`   )rc   r�   s     rU   Úreport_config_dataz!PydanticPlugin.report_config_data–   s   € ð
 Ô Ð rW   r-   c                óz   — t          |j        |j        |j        | j        ¦  «        }|                     ¦   «          d S r\   )ÚPydanticModelTransformerÚclsÚreasonÚapir^   Ú	transform)rc   r�   Útransformers      rU   rt   z3PydanticPlugin._pydantic_model_class_maker_callback�   s6   € Ý.¨s¬w¸¼
ÀCÄGÈTÔM_Ñ`Ô`ˆØ×ÒÑÔÐÐÐrW   c                ó¤   — | j         j        rdS |j        j        j        }|s
J d¦   «         ‚t          |j        dd¦  «        rd|j        _        dS dS )zÓReset dataclass_transform_spec attribute of ModelMetaclass.

        Let the plugin handle it. This behavior can be disabled
        if 'debug_dataclass_transform' is set to True', for testing purposes.
        Nz-callback not passed from 'get_metaclass_hook'Údataclass_transform_spec)r^   Údebug_dataclass_transformr‡   ÚinfoÚdeclared_metaclassÚgetattrÚtyper�   )rc   r�   Úinfo_metaclasss      rU   ry   z8PydanticPlugin._pydantic_model_metaclass_marker_callback¡   sn   € ð ÔÔ7ð 	ØˆFØœœÔ8ˆØÐNÐNÐNÑNÔNÐNÝ�>Ô&Ð(BÀDÑIÔIð 	@Ø;?ˆNÔÔ8Ð8Ð8ð	@ð 	@rW   ©rY   r+   rQ   rZ   )re   rP   rQ   rf   )re   rP   rQ   r|   )r�   r0   rQ   r‚   )r�   r-   rQ   rZ   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rb   rv   r{   r€   r„   rt   ry   Ú__classcell__)rd   s   @rU   rT   rT   y   sÃ   ø€ € € € € Ø#Ð#ð"ð "ð "ð "ð "ð "ð
ð ð ð ðð ð ð ðð ð ð ð!ð !ð !ð !ð ð  ð  ð  ð@ð @ð @ð @ð @ð @ð @ð @rW   rT   c                  óP   — e Zd ZU dZdZded<   ded<   ded<   ded<   dd„Zdd„ZdS )r]   aÛ  A Pydantic mypy plugin config holder.

    Attributes:
        init_forbid_extra: Whether to add a `**kwargs` at the end of the generated `__init__` signature.
        init_typed: Whether to annotate fields in the generated `__init__`.
        warn_required_dynamic_aliases: Whether to raise required dynamic aliases error.
        debug_dataclass_transform: Whether to not reset `dataclass_transform_spec` attribute
            of `ModelMetaclass` for testing purposes.
    )Úinit_forbid_extraÚ
init_typedÚwarn_required_dynamic_aliasesrŽ   Úboolr›   rœ   r�   rŽ   rY   r+   rQ   rZ   c                ó  — |j         €d S t          |j         ¦  «        }|�„|                     di ¦  «                             di ¦  «        }| j        D ]P}|                     |d¦  «        }t	          |t
          ¦  «        st          d|› �¦  «        ‚t          | ||¦  «         ŒQd S t          ¦   «         }| 	                    |j         ¦  «         | j        D ]0}| 
                    t          |d¬¦  «        }t          | ||¦  «         Œ1d S )NÚtoolrF   Fz/Configuration value must be a boolean for key: )Úfallback)Úconfig_fileÚ
parse_tomlÚgetÚ	__slots__rp   rž   Ú
ValueErrorÚsetattrr   ÚreadÚ
getbooleanÚCONFIGFILE_KEY)rc   rY   Útoml_configÚconfigÚkeyÚsettingr^   s          rU   rb   zPydanticPluginConfig.__init__Å   s$  € ØÔÐ&ØˆFå  Ô!4Ñ5Ô5ˆØÐ"Ø —_’_ V¨RÑ0Ô0×4Ò4°_ÀbÑIÔIˆFØ”~ð ,ð ,�Ø Ÿ*š* S¨%Ñ0Ô0�Ý! '­4Ñ0Ô0ð ^Ý$Ð%\ÐWZÐ%\Ð%\Ñ]Ô]Ð]Ý˜˜c 7Ñ+Ô+Ð+Ð+ð	,ð ,õ )™NœNˆMØ×Ò˜wÔ2Ñ3Ô3Ð3Ø”~ð ,ð ,�Ø'×2Ò2µ>À3ÐQVÐ2ÑWÔW�Ý˜˜c 7Ñ+Ô+Ð+Ð+ð,ð ,rW   r‚   c                ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )z/Returns a dict of config names to their values.c                ó2   •— i | ]}|t          ‰|¦  «        “ŒS © )r‘   )rl   r­   rc   s     €rU   ú
<dictcomp>z0PydanticPluginConfig.to_data.<locals>.<dictcomp>Ú   s%   ø€ ÐBÐBÐB¨C�•W˜T 3Ñ'Ô'ÐBÐBÐBrW   )r¥   ©rc   s   `rU   r_   zPydanticPluginConfig.to_dataØ   s   ø€ àBÐBÐBÐB°4´>ÐBÑBÔBÐBrW   Nr”   ©rQ   r‚   )r•   r–   r—   r˜   r¥   Ú__annotations__rb   r_   r±   rW   rU   r]   r]   ¯   s‡   € € € € € € ðð ð€Ið ÐÐÑØÐÐÑØ'Ð'Ð'Ñ'Ø#Ð#Ð#Ñ#ð,ð ,ð ,ð ,ð&Cð Cð Cð Cð Cð CrW   r]   r�   r.   r;   c                ó°  — | j         }t          |t          ¦  «        r|j        }t          |t          ¦  «        r"t          |j        t          ¦  «        r|j        }nMt          |t          ¦  «        r|}n5d|› d|j        j        › d�}t          || j
        | j        ¦  «         | j        S |j         j                             t          ¦  «        }|€| j        S t!          d„ |j         j        D ¦   «         ¦  «        s| j        S |                     di ¦  «                             d¦  «        }|dur%t%          |j         j        | j
        | j        ¦  «         | j        S )	z1Raise an error if from_attributes is not enabled.z
ctx.type: ú
 (of type ú)Nc              3  ó6   K  — | ]}|j         t          k    V — Œd S r\   ri   rk   s     rU   rn   z+from_attributes_callback.<locals>.<genexpr>î   s*   è è € ÐSÐS°tˆtŒ}Õ 2Ò2ÐSÐSÐSÐSÐSÐSrW   r¬   Úfrom_attributesT)r’   rp   r=   Úitemr8   Úret_typer9   rd   r•   Úerror_unexpected_behaviorr‰   ÚcontextÚdefault_return_typeÚmetadatar¤   ÚMETADATA_KEYrr   rs   Úerror_from_attributesÚname)r�   Úctx_typeÚ
model_typeÚdetailÚpydantic_metadatarº   s         rU   r   r   Ý   sR  € ð Œx€HÝ�(�HÑ%Ô%ð !Ø”=ˆÝ�(�LÑ)Ô)ð '­j¸Ô9JÍHÑ.UÔ.Uð 'ØÔ&ˆ
ˆ
Ý	�H�hÑ	'Ô	'ð 'Øˆ
ˆ
àP˜hÐPÐP°(Ô2DÔ2MÐPÐPÐPˆÝ! &¨#¬'°3´;Ñ?Ô?Ð?ØÔ&Ð&Ø"œÔ0×4Ò4µ\ÑBÔBÐØÐ ØÔ&Ð&ÝÐSÐS¸z¼Ô?RÐSÑSÔSÑSÔSð 'àÔ&Ð&Ø'×+Ò+¨H°bÑ9Ô9×=Ò=Ð>OÑPÔP€OØ˜dÐ"Ð"Ý˜jœoÔ2°C´G¸S¼[ÑIÔIÐIØÔ"Ð"rW   c                  ób   — e Zd ZdZd,d„Zd-d„Z	 d.d/d!„Z	 d.d0d#„Zd1d%„Ze	d2d'„¦   «         Z
d3d*„Zd+S )4ÚPydanticModelFieldz5Based on mypy.plugins.dataclasses.DataclassAttribute.rÃ   rP   Úaliasú
str | NoneÚ	is_frozenrž   Úhas_dynamic_aliasÚhas_defaultÚstrictúbool | NoneÚlineÚintÚcolumnr’   úType | Noner�   r)   c                ó’   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        d S r\   )
rÃ   rÊ   rÌ   rÍ   rÎ   rÏ   rÑ   rÓ   r’   r�   )rc   rÃ   rÊ   rÌ   rÍ   rÎ   rÏ   rÑ   rÓ   r’   r�   s              rU   rb   zPydanticModelField.__init__ú   sP   € ð ˆŒ	ØˆŒ
Ø"ˆŒØ!2ˆÔØ&ˆÔØˆŒØˆŒ	ØˆŒØˆŒ	ØˆŒ	ˆ	ˆ	rW   Úcurrent_infoÚtypedÚmodel_strictÚforce_optionalÚ	use_aliasr‰   r1   Úforce_typevars_invariantÚis_root_model_rootrQ   r   c	                ó  — |                       ||||¦  «        }	| j        €|n| j        }
|s|
r|                      ||¦  «        }nt          t          j        ¦  «        }t          |	|d|rt          n|s| j        rt          nt          ¬¦  «        S )zABased on mypy.plugins.dataclasses.DataclassAttribute.to_argument.N)ÚvariableÚtype_annotationÚinitializerÚkind)Úto_varrÏ   r	   r7   r<   Úexplicitr   r   rÎ   r   r   )rc   rÖ   r×   rØ   rÙ   rÚ   r‰   rÛ   rÜ   rÞ   rÏ   rß   s               rU   Úto_argumentzPydanticModelField.to_argument  s¥   € ð —;’;˜|¨S°)Ð=UÑVÔVˆà!%¤Ð!4��¸$¼+ˆØð 	:�Fð 	:Ø"×.Ò.¨|¸SÑAÔAˆOˆOå%¥iÔ&8Ñ9Ô9ˆOåØØ+Øà!ðV•�à#1ÐT°TÔ5EÐT•-�-Í9ð
ñ 
ô 
ð 	
rW   Fc                ó$  — |rFt          | j        t          ¦  «        r,| j                             ¦   «         }t          |_        || _        | j        �»| j        j        �¯t          j	        |j
        j        ¦  «        5  t          |¦  «        }t          |t          ¦  «        sJ ‚|r+|j        D ]#}t          |t          ¦  «        rt          |_        Œ$t          | j        | j        j        j        |i¦  «        cddd¦  «         S # 1 swxY w Y   | j        S )zABased on mypy.plugins.dataclasses.DataclassAttribute.expand_type.N)rp   r’   r>   Úcopy_modifiedr   Úvariancer�   Ú	self_typer5   Ústrict_optional_setrY   Ústrict_optionalrA   r9   Úargsr	   Úid)rc   rÖ   r‰   rÛ   Úmodified_typeÚfilled_with_typevarsÚargs          rU   r	   zPydanticModelField.expand_type/  sZ  € ð $ð 	*õ
 ˜$œ)¥[Ñ1Ô1ð *Ø $¤	× 7Ò 7Ñ 9Ô 9�Ý)2�Ô&Ø)�”	àŒ9Ð  T¤YÔ%8Ð%Dõ
 Ô*¨3¬;Ô+FÑGÔGð ^ð ^Ý'4°\Ñ'BÔ'BÐ$å!Ð"6½ÑAÔAÐAÐAÐAØ+ð 5Ø3Ô8ð 5ð 5˜Ý% c­;Ñ7Ô7ð 5Ý+4˜CœLøÝ" 4¤9¨t¬yÔ/BÔ/EÐG[Ð.\Ñ]Ô]ð^ð ^ð ^ð ^ñ ^ô ^ð ^ð ^ð ^ð ^ð ^ð ^øøøð ^ð ^ð ^ð ^ð ŒyÐs   Á:A9D Ä DÄDr*   c                ó|   — |r| j         �| j         }n| j        }t          ||                      |||¦  «        ¦  «        S )z<Based on mypy.plugins.dataclasses.DataclassAttribute.to_var.)rÊ   rÃ   r*   r	   )rc   rÖ   r‰   rÚ   rÛ   rÃ   s         rU   râ   zPydanticModelField.to_varM  sF   € ð ð 	˜œÐ/Ø”:ˆDˆDà”9ˆDå�4˜×)Ò)¨,¸Ð=UÑVÔVÑWÔWÐWrW   r   c           
     óª   — | j         sJ ‚| j        | j        | j        | j        | j        | j        | j        | j        | j          	                    ¦   «         dœ	S )ú?Based on mypy.plugins.dataclasses.DataclassAttribute.serialize.)	rÃ   rÊ   rÌ   rÍ   rÎ   rÏ   rÑ   rÓ   r’   )
r’   rÃ   rÊ   rÌ   rÍ   rÎ   rÏ   rÑ   rÓ   Ú	serializer³   s    rU   ró   zPydanticModelField.serialize\  sZ   € àŒyÐÐÐà”IØ”ZØœØ!%Ô!7ØÔ+Ø”kØ”IØ”kØ”I×'Ò'Ñ)Ô)ð

ð 

ð 
	
rW   Údatac                ó†   — |                      ¦   «         }t          |                     d¦  «        |¦  «        } | d||dœ|¤ŽS )úABased on mypy.plugins.dataclasses.DataclassAttribute.deserialize.r’   )r’   r�   r±   )Úcopyr2   Úpop)r‡   r�   rô   r‰   Útyps        rU   ÚdeserializezPydanticModelField.deserializek  sI   € ð �yŠy‰{Œ{ˆÝ(¨¯ª°&Ñ)9Ô)9¸3Ñ?Ô?ˆØˆsÐ/˜ $Ð/Ð/¨$Ð/Ð/Ð/rW   Úsub_typerZ   c                óÆ   — | j         �Yt          j        |j        j        ¦  «        5  t          | j         || j        ¦  «        | _         ddd¦  «         dS # 1 swxY w Y   dS dS )zxExpands type vars in the context of a subtype when an attribute is inherited
        from a generic super type.
        N)r’   r5   ré   rY   rê   r6   r�   )rc   rû   r‰   s      rU   Úexpand_typevar_from_subtypez.PydanticModelField.expand_typevar_from_subtyper  s¹   € ð Œ9Ð ÝÔ*¨3¬;Ô+FÑGÔGð Tð TÝ3°D´I¸xÈÌÑSÔS�”	ðTð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tð Tð Tð !Ð s   ¦!AÁAÁAN)rÃ   rP   rÊ   rË   rÌ   rž   rÍ   rž   rÎ   rž   rÏ   rÐ   rÑ   rÒ   rÓ   rÒ   r’   rÔ   r�   r)   )rÖ   r)   r×   rž   rØ   rž   rÙ   rž   rÚ   rž   r‰   r1   rÛ   rž   rÜ   rž   rQ   r   ©F)rÖ   r)   r‰   r1   rÛ   rž   rQ   rÔ   )
rÖ   r)   r‰   r1   rÚ   rž   rÛ   rž   rQ   r*   ©rQ   r   )r�   r)   rô   r   r‰   r1   rQ   rÉ   )rû   r)   r‰   r1   rQ   rZ   )r•   r–   r—   r˜   rb   rä   r	   râ   ró   Úclassmethodrú   rý   r±   rW   rU   rÉ   rÉ   ÷   sÔ   € € € € € Ø?Ð?ðð ð ð ð0
ð 
ð 
ð 
ð< nsðð ð ð ð ðF */ðXð Xð Xð Xð Xð
ð 
ð 
ð 
ð ð0ð 0ð 0ñ „[ð0ðTð Tð Tð Tð Tð TrW   rÉ   c                  ó8   — e Zd ZdZd„ Zed	d„¦   «         Zd
d„ZdS )ÚPydanticModelClassVarz•Based on mypy.plugins.dataclasses.DataclassAttribute.

    ClassVars are ignored by subclasses.

    Attributes:
        name: the ClassVar name
    c                ó   — || _         d S r\   ©rÃ   )rc   rÃ   s     rU   rb   zPydanticModelClassVar.__init__„  s   € ØˆŒ	ˆ	ˆ	rW   rô   r   rQ   c                ó:   — |                      ¦   «         } | di |¤ŽS )rö   r±   )r÷   )r‡   rô   s     rU   rú   z!PydanticModelClassVar.deserialize‡  s#   € ð �yŠy‰{Œ{ˆØˆsˆ{ˆ{�Tˆ{ˆ{ÐrW   c                ó   — d| j         iS )rò   rÃ   r  r³   s    rU   ró   zPydanticModelClassVar.serialize�  s   € ð �D”Ið
ð 	
rW   N)rô   r   rQ   r  rÿ   )r•   r–   r—   r˜   rb   r   rú   ró   r±   rW   rU   r  r  {  sa   € € € € € ðð ðð ð ð ðð ð ñ „[ðð

ð 
ð 
ð 
ð 
ð 
rW   r  c                  ó  — e Zd ZU dZh d£Zded<   dLd„ZdMd„ZdNd„ZdOd„Z	dPd„Z
dQd„ZdRd„ZdSd$„ZdTd,„ZdUd1„ZdUd2„ZdVd4„ZdWdXd:„ZedYd;„¦   «         ZedZd=„¦   «         Zed[d?„¦   «         ZedYd@„¦   «         Z	 dWd\dG„Zd]dH„Zed^dJ„¦   «         ZdKS )_r†   z¸Transform the BaseModel subclass according to the plugin settings.

    Attributes:
        tracked_config_fields: A set of field configs that the plugin has to track their value.
    >   ÚextraÚfrozenrÏ   Úalias_generatorrº   Úpopulate_by_namezset[str]Útracked_config_fieldsr‡   r   rˆ   úExpression | Statementr‰   r1   r^   r]   rQ   rZ   c                ó>   — || _         || _        || _        || _        d S r\   )Ú_clsÚ_reasonÚ_apir^   )rc   r‡   rˆ   r‰   r^   s        rU   rb   z!PydanticModelTransformer.__init__¤  s'   € ð ˆŒ	ØˆŒØˆŒ	à*ˆÔÐÐrW   rž   c                ó|  — | j         j        }t          d„ |j        dd…         D ¦   «         ¦  «        }|                      ¦   «         }|                      ||¦  «        \  }}|�|€dS |D ]}|j        € dS Œt          d„ |j        dd…         D ¦   «         ¦  «        }|                      ||||¦  «         |                      ||||¦  «         |  	                    || j
        |j        du ¬¦  «         |                      ¦   «          d„ |D ¦   «         d	„ |D ¦   «         |                     ¦   «         d
œ|j        t          <   dS )a†  Configures the BaseModel subclass according to the plugin settings.

        In particular:

        * determines the model config and fields,
        * adds a fields-aware signature for the initializer and construct methods
        * freezes the class if frozen = True
        * stores the fields, config, and if the class is settings in the mypy metadata for access by subclasses
        c              3  ó2   K  — | ]}t           |j        v V — Œd S r\   )ÚROOT_MODEL_FULLNAMEre   rk   s     rU   rn   z5PydanticModelTransformer.transform.<locals>.<genexpr>¼  s*   è è € Ð[Ð[ÀTÕ/°4´=Ð@Ð[Ð[Ð[Ð[Ð[Ð[rW   NéÿÿÿÿFc              3  ó6   K  — | ]}|j         t          k    V — Œd S r\   )re   ÚBASESETTINGS_FULLNAMErk   s     rU   rn   z5PydanticModelTransformer.transform.<locals>.<genexpr>Æ  s*   è è € Ð[Ð[ÀT˜$œ-Õ+@Ò@Ð[Ð[Ð[Ð[Ð[Ð[rW   T)r	  c                óB   — i | ]}|j         |                     ¦   «         “ŒS r±   ©rÃ   ró   )rl   Úfields     rU   r²   z6PydanticModelTransformer.transform.<locals>.<dictcomp>Î  s&   € ÐIÐIÐI¸�u”z 5§?¢?Ñ#4Ô#4ÐIÐIÐIrW   c                óB   — i | ]}|j         |                     ¦   «         “ŒS r±   r  )rl   Ú	class_vars     rU   r²   z6PydanticModelTransformer.transform.<locals>.<dictcomp>Ï  s(   € Ð]Ð]Ð]ÀY˜9œ>¨9×+>Ò+>Ñ+@Ô+@Ð]Ð]Ð]rW   )ÚfieldsÚ
class_varsr¬   )r  r�   rr   rs   Úcollect_configÚcollect_fields_and_class_varsr’   Úadd_initializerÚadd_model_construct_methodÚ
set_frozenr  r	  Úadjust_decorator_signaturesÚget_values_dictrÀ   rÁ   )rc   r�   Úis_root_modelr¬   r  r  r  Úis_settingss           rU   rŠ   z"PydanticModelTransformer.transform±  st  € ð ŒyŒ~ˆÝÐ[Ð[ÈTÌXÐVYÐWYÐVYÌ]Ð[Ñ[Ô[Ñ[Ô[ˆØ×$Ò$Ñ&Ô&ˆØ!×?Ò?ÀÈÑVÔVÑˆ�
Øˆ>˜ZÐ/à�5Øð 	ð 	ˆEØŒzÐ!Ø�u�uð "õ Ð[Ð[ÈTÌXÐVYÐWYÐVYÌ]Ð[Ñ[Ô[Ñ[Ô[ˆØ×Ò˜V V¨[¸-ÑHÔHÐHØ×'Ò'¨°¸À]ÑSÔSÐSØ�Š˜ ¤	°&´-À4Ð2GˆÑHÔHÐHà×(Ò(Ñ*Ô*Ð*ð JÐIÀ&ÐIÑIÔIØ]Ð]ÐR\Ð]Ñ]Ô]Ø×,Ò,Ñ.Ô.ð'
ð '
ˆŒ•lÑ#ð ˆtrW   c                óÖ  ‡— | j         j        j                             ¦   «         D ]Ã}t	          |j        t          ¦  «        r§|j        j        d         Št	          ‰t          ¦  «        r€t	          ‰j	        t          ¦  «        rf‰j	        j        t          v rS‰j	        j        t          k    r-t          ˆfd„t          ‰j        ¦  «        D ¦   «         ¦  «        sd|j        j        _        ŒÄdS )a¿  When we decorate a function `f` with `pydantic.validator(...)`, `pydantic.field_validator`
        or `pydantic.serializer(...)`, mypy sees `f` as a regular method taking a `self` instance,
        even though pydantic internally wraps `f` with `classmethod` if necessary.

        Teach mypy this by marking any function whose outermost decorator is a `validator()`,
        `field_validator()` or `serializer()` call as a `classmethod`.
        r   c              3  ó€   •K  — | ]8\  }}‰j         |         d k    ot          |t          ¦  «        o
|j        dk    V — Œ9dS )ÚmodeÚafterN)Ú	arg_namesrp   r%   Úvalue)rl   Úirï   Ú	first_decs      €rU   rn   zGPydanticModelTransformer.adjust_decorator_signatures.<locals>.<genexpr>ç  sg   øè è € ð  ð  á &  3ð &Ô/°Ô2°fÒ<ÐrÅÈCÕQXÑAYÔAYÐrÐ^aÔ^gÐkrÒ^rð ð  ð  ð  ð  ð  rW   TN)r  r�   ÚnamesÚvaluesrp   rq   r   Úoriginal_decoratorsr   Úcalleer    re   ÚDECORATOR_FULLNAMESÚMODEL_VALIDATOR_FULLNAMErr   Ú	enumeraterë   ÚfuncÚis_class)rc   ru   r/  s     @rU   r$  z4PydanticModelTransformer.adjust_decorator_signaturesÕ  sõ   ø€ ð ”9”>Ô'×.Ò.Ñ0Ô0ð 	2ð 	2ˆCÝ˜#œ(¥IÑ.Ô.ð 2ØœHÔ8¸Ô;�	å˜y­(Ñ3Ô3ð2å" 9Ô#3µXÑ>Ô>ð2ð "Ô(Ô1Õ5HÐHÐHð "Ô(Ô1Õ5MÒMÐMÝð  ð  ð  ð  å*3°I´NÑ*CÔ*Cð ñ  ô  ñ ô ð Nð .2�C”H”MÔ*øð#	2ð 	2rW   ÚModelConfigDatac           	     óœ  — | j         }t          ¦   «         }d}d}|j                             ¦   «         D ]4\  }}|                      ||¦  «        }|rd}|                     |¦  «         Œ5d}|j        j        D �]}t          |t          t          f¦  «        sŒ t          |t          ¦  «        �r|j        d         }	t          |	t          ¦  «        r|	j        dk    rŒdt          |j        t          ¦  «        rZt!          |j        j        |j        j        ¦  «        D ]3\  }
}|
€Œ|                     |                      |
|d¬¦  «        ¦  «         Œ4�nt          |j        t&          ¦  «        rV|j        j        D ]I\  }}t          |t(          ¦  «        sŒ|                     |                      |j        |¦  «        ¦  «         ŒJn�t          |t          ¦  «        rˆ|j        dk    r�Œk|j        j        D ]n}t          |t          ¦  «        sŒ|j        d         }	t          |	t          ¦  «        sŒ;|                     |                      |	j        |j        ¦  «        ¦  «         Œo|r| j                             d|¦  «          nd}�Œ	|s|r1|r/|j        r(|j        s!| j        j        rt9          | j        |¦  «         |j        j        d	d…         D ]ƒ}t>          |j         vrŒ| j         !                    tE          |j#        ¦  «        ¦  «         |j         t>                   d
                              ¦   «         D ]\  }}| $                    ||¦  «         ŒŒ„|S )zhCollects the values of the config attributes that are used by the plugin, accounting for parent classes.FTNr   Úmodel_config)Ú	lax_extraÚConfigzYSpecifying config in two places is ambiguous, use either Config attribute or class kwargsé   r¬   )%r  r9  ÚkeywordsÚitemsÚget_config_updateÚupdateÚdefsÚbodyrp   r   r   Úlvaluesr    rÃ   Úrvaluer   Úzipr,  rë   r   r%   r-  r  ÚfailÚhas_alias_generatorr  r^   r�   Úerror_required_dynamic_aliasesr�   rs   rÁ   rÀ   Úadd_plugin_dependencyr4   re   Ú
setdefault)rc   r‡   r¬   Úhas_config_kwargsÚhas_config_from_namespacerÃ   ÚexprÚconfig_dataÚstmtÚlhsÚarg_namerï   Úkey_exprÚ
value_exprÚsubstmtr�   r-  s                    rU   r  z'PydanticModelTransformer.collect_configð  s—  € àŒiˆÝ Ñ"Ô"ˆà!ÐØ$)Ð!ð œ,×,Ò,Ñ.Ô.ð 	+ð 	+‰JˆD�$Ø×0Ò0°°tÑ<Ô<ˆKØð +Ø$(Ð!Ø—’˜kÑ*Ô*Ð*øð "&ˆØ”H”Mð &	-ñ &	-ˆDÝ˜d¥^µXÐ$>Ñ?Ô?ð Øå˜$¥Ñ/Ô/ñ TØ”l 1”o�Ý! #¥xÑ0Ô0ð °C´HÀÒ4NÐ4NØå˜dœk­8Ñ4Ô4ð 	ZÝ),¨T¬[Ô-BÀDÄKÔDTÑ)UÔ)Uð ]ð ]™˜ #Ø#Ð+Ø$ØŸš d×&<Ò&<¸XÀsÐVZÐ&<Ñ&[Ô&[Ñ\Ô\Ð\Ð\ñ]õ   ¤­XÑ6Ô6ð ZØ04´Ô0Að Zð ZÑ,˜ *Ý)¨(µGÑ<Ô<ð %Ø$ØŸš d×&<Ò&<¸X¼^ÈZÑ&XÔ&XÑYÔYÐYÐYøå˜D¥(Ñ+Ô+ð 	TØ”9 Ò(Ð(ÙØ#œyœ~ð Tð T�GÝ% g­~Ñ>Ô>ð !Ø Ø!œ/¨!Ô,�CÝ% c­8Ñ4Ô4ð !Ø Ø—M’M $×"8Ò"8¸¼À7Ä>Ñ"RÔ"RÑSÔSÐSÐSà ð Ø”	—’ØoØñô ð ð �à(,Ð%Ñ%àð 	@Ð 9ð 	@àð@àÔ.ð@ð Ô/ð@ð Ô&ÔDð	@õ /¨t¬y¸$Ñ?Ô?Ð?à”H”L   Ô$ð 	/ð 	/ˆDÝ 4¤=Ð0Ð0Øð ŒI×+Ò+Õ,AÀ$Ä-Ñ,PÔ,PÑQÔQÐQØ#œ}­\Ô:¸8ÔD×JÒJÑLÔLð /ð /‘��eØ×!Ò! $¨Ñ.Ô.Ð.Ð.ð/àˆrW   r;  r&  úJtuple[list[PydanticModelField] | None, list[PydanticModelClassVar] | None]c                óÂ  — | j         }i }i }t          |j        j        dd…         ¦  «        D �]c}t          |j        vrŒ| j                             t          |j	        ¦  «        ¦  «         |j        t                   d          
                    ¦   «         D ]­\  }}t                               ||| j        ¦  «        }	|	                     |j        | j        ¦  «         |	||<   |j        j                             |¦  «        }
|
rA|
j        r:t#          |
j        t$          ¦  «        s | j                             d|
j        ¦  «         Œ®|j        t                   d          
                    ¦   «         D ]"\  }}t(                               |¦  «        ||<   Œ#�Œet+          ¦   «         }t+          ¦   «         }|                      |j        ¦  «        D ]Ö}|                      |||¦  «        }|€Œ|j        d         }t#          |t4          ¦  «        sJ ‚t#          |t          ¦  «        rH|r!|j        dk    rt9          | j        |¦  «         Œx|                     |j        ¦  «         |||j        <   Œ�t#          |t(          ¦  «        r$|                     |j        ¦  «         |||j        <   Œ×t=          |                     ¦   «         ¦  «        t=          |                     ¦   «         ¦  «        fS )	zACollects the fields for the model, accounting for parent classes.r>  r  r  z7BaseModel field may only be overridden by another fieldr  Nr   Úroot) r  Úreversedr�   rs   rÁ   rÀ   r  rK  r4   re   r@  rÉ   rú   rý   r0  r¤   rq   rp   r*   rH  r  ÚsetÚ%_get_assignment_statements_from_blockrC  Ú$collect_field_or_class_var_from_stmtrE  r    rÃ   Ú error_extra_fields_on_root_modelÚaddÚlistr1  )rc   r;  r&  r‡   Úfound_fieldsÚfound_class_varsr�   rÃ   rô   r  Úsym_nodeÚcurrent_field_namesÚcurrent_class_vars_namesrQ  Úmaybe_fieldrR  s                   rU   r   z6PydanticModelTransformer.collect_fields_and_class_vars<  sÎ  € ð Œiˆð 79ˆØ=?ÐÝ˜SœXœ\¨!¨B¨$Ô/Ñ0Ô0ð 	Qñ 	QˆDõ  4¤=Ð0Ð0Øð ŒI×+Ò+Õ,AÀ$Ä-Ñ,PÔ,PÑQÔQÐQà"œm­LÔ9¸(ÔC×IÒIÑKÔKð ð ‘
��dÝ*×6Ò6°t¸TÀ4Ä9ÑMÔM�ð
 ×1Ò1°#´(¸D¼IÑFÔFÐFØ%*�˜TÑ"àœ8œ>×-Ò-¨dÑ3Ô3�Øð  ¤ð µjÀÄÕPSÑ6TÔ6Tð Ø”I—N’NØQØ œñô ð øð
 #œm­LÔ9¸,ÔG×MÒMÑOÔOð Qð Q‘
��dÝ)>×)JÒ)JÈ4Ñ)PÔ)PÐ  Ñ&Ð&ñQõ ),©¬ÐÝ-0©U¬UÐ Ø×>Ò>¸s¼xÑHÔHð 	9ð 	9ˆDØ×CÒCÀDÈ,ÐXhÑiÔiˆKØÐ"Øà”,˜q”/ˆCÝ˜c¥8Ñ,Ô,Ð,Ð,Ð,Ý˜+Õ'9Ñ:Ô:ð 9Ø ð 9 S¤X°Ò%7Ð%7Ý4°T´YÀÑEÔEÐEÐEà'×+Ò+¨C¬HÑ5Ô5Ð5Ø-8�L ¤Ñ*Ð*Ý˜KÕ)>Ñ?Ô?ð 9Ø(×,Ò,¨S¬XÑ6Ô6Ð6Ø-8Ð  ¤Ñ*øå�L×'Ò'Ñ)Ô)Ñ*Ô*­DÐ1A×1HÒ1HÑ1JÔ1JÑ,KÔ,KÐKÐKrW   rQ  r   úIterator[AssignmentStmt]c              #  óÐ   K  — |j         D ]$}|j        s|                      |¦  «        E d {V —† Œ%|j        �.|j        j        s$|                      |j        ¦  «        E d {V —† d S d S d S r\   )rD  Úis_unreachabler\  Ú	else_body)rc   rQ  rD  s      rU   Ú,_get_assignment_statements_from_if_statementzEPydanticModelTransformer._get_assignment_statements_from_if_statement€  sš   è è € Ø”Ið 	Lð 	LˆDØÔ&ð LØ×EÒEÀdÑKÔKÐKÐKÐKÐKÐKÐKÐKøØŒ>Ð%¨d¬nÔ.KÐ%Ø×AÒAÀ$Ä.ÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQð &Ð%Ð%Ð%rW   Úblockr   c              #  ó²   K  — |j         D ]L}t          |t          ¦  «        r|V — Œt          |t          ¦  «        r|                      |¦  «        E d {V —† ŒMd S r\   )rD  rp   r   r   rk  )rc   rl  rQ  s      rU   r\  z>PydanticModelTransformer._get_assignment_statements_from_block‡  s}   è è € Ø”Jð 	Sð 	SˆDÝ˜$¥Ñ/Ô/ð SØ�
�
�
�
Ý˜D¥&Ñ)Ô)ð SØ×LÒLÈTÑRÔRÐRÐRÐRÐRÐRÐRÐRøð		Sð 	SrW   r   r  ú dict[str, PydanticModelClassVar]ú1PydanticModelField | PydanticModelClassVar | Nonec                ó   — | j         }|j        d         }t          |t          ¦  «        r$t	          j        |j        ¦  «        r|j        dk    rdS |j        sžt          |j        t          ¦  «        rbt          |j        j
        t          ¦  «        rCt          |j        j
        j
        t          ¦  «        r|j        j
        j
        j        t          v rdS |j        |v rdS t          | j        |¦  «         dS |j        d         }t          |t          ¦  «        sdS t	          j        |j        ¦  «        r|j        dk    rdS |j        j                             |j        ¦  «        }|€dS |j        }t          |t&          ¦  «        rdS t          |t(          ¦  «        r| j                             d|¦  «         dS t          |t,          ¦  «        sdS |j        rt1          |j        ¦  «        S t3          |j        ¦  «        }t          |t6          ¦  «        r+|j        j        dk    r| j                             d|¦  «         |                      |¦  «        }	|                      |¦  «        }
|j        €r|j        rk|j        rd| j                              |j        d¬¦  «        }|r||_        n9| j                             d	|¦  «         tC          tD          j#        ¦  «        |_        |  $                    |¦  «        \  }}|r(|j%        s!| j&        j'        rtQ          | j        |¦  «         |  )                    |¦  «        }|  *                    ||j        |¦  «        }tW          |j        ||	|
|||j,        |j-        ||j        ¬
¦
  «
        S )a^  Get pydantic model field from statement.

        Args:
            stmt: The statement.
            model_config: Configuration settings for the model.
            class_vars: ClassVars already known to be defined on the model.

        Returns:
            A pydantic model field if it could find the field in statement. Otherwise, `None`.
        r   r;  NzFType aliases inside BaseModel definitions are not supported at runtimezdataclasses.InitVarz%InitVar is not supported in BaseModelT)Úis_finalzGNeed type argument for Final[...] with non-literal default in BaseModel)
rÃ   rÍ   rÎ   rÏ   rÊ   rÌ   rÑ   rÓ   r’   r�   ).r  rE  rp   r    rD   Úis_valid_field_namerÃ   Ú
new_syntaxrF  r   r3  re   r4  Úerror_untyped_fieldsr  r�   r0  r¤   rq   r"   r(   rH  r*   Úis_classvarr  r@   r’   r9   Úget_has_defaultÚ
get_strictrq  Úis_inferredÚanalyze_simple_literal_typer7   r<   Ú
from_errorÚget_alias_infor  r^   r�   rJ  Úis_field_frozenÚ_infer_dataclass_attr_init_typerÉ   rÑ   rÓ   )rc   rQ  r;  r  r‡   rR  ru   rq   Ú	node_typerÎ   rÏ   rù   rÊ   rÍ   rÌ   Ú	init_types                   rU   r]  z=PydanticModelTransformer.collect_field_or_class_var_from_stmtŽ  sˆ  € ð ŒiˆàŒl˜1ŒoˆÝ˜#�xÑ(Ô(ð 	µÔ0KÈCÌHÑ0UÔ0Uð 	ÐY\ÔYaÐesÒYsÐYsØ�4àŒð 	å˜4œ;­Ñ1Ô1ð	å˜tœ{Ô1µ8Ñ<Ô<ð	õ ˜tœ{Ô1Ô8½(ÑCÔCð	ð ”KÔ&Ô-Ô6Õ:MÐMÐMð
 �tàŒx˜:Ð%Ð%à�tõ ! ¤¨DÑ1Ô1Ð1Ø�4àŒl˜1ŒoˆÝ˜#�xÑ(Ô(ð 	Ø�4åÔ*¨3¬8Ñ4Ô4ð 	¸¼ÀNÒ8RÐ8RØ�4àŒhŒn× Ò  ¤Ñ*Ô*ˆØˆ;ð �4àŒxˆÝ�d�OÑ,Ô,ð 	ð
 �4å�d�IÑ&Ô&ð 	ØŒI�NŠNØXØñô ð ð �4å˜$¥Ñ$Ô$ð 	ð
 �4ð Ôð 	3Ý(¨¬Ñ2Ô2Ð2õ $ D¤IÑ.Ô.ˆ	Ý�i¥Ñ*Ô*ð 	¨y¬~Ô/FÐJ_Ò/_Ð/_ØŒI�NŠNØ7Øñô ð ð
 ×*Ò*¨4Ñ0Ô0ˆØ—’ Ñ&Ô&ˆàŒ8Ð ¤Ð°$Ô2BÐð ”)×7Ò7¸¼ÈdÐ7ÑSÔSˆCØð :Ø�”	�	à”	—’Ø]Øñô ð õ $¥IÔ$8Ñ9Ô9�”	à#'×#6Ò#6°tÑ#<Ô#<Ñ ˆÐ Øð 	< \Ô%Bð 	<ÀtÔGYÔGwð 	<Ý*¨4¬9°dÑ;Ô;Ð;Ø×(Ò(¨Ñ.Ô.ˆ	à×8Ò8¸¸c¼hÈÑMÔMˆ	Ý!Ø”Ø/Ø#ØØØØ”Ø”;ØØ”ð
ñ 
ô 
ð 	
rW   ru   r&   rÃ   rP   r¾   r   rÔ   c                óø  — |j         }|j        r|S t          |j         ¦  «        }t          |t          ¦  «        s|S |j                              d¦  «        }|�r!t          |j        t          ¦  «        rÞ|j                              d¦  «        }|sJ ‚|j         r)t          t          |j         |j         |¦  «        ¦  «        }nt          t          j        ¦  «        S t          |t          ¦  «        r8|j        t          t          t          gk    rt!          |j        d         |¦  «        S | j                             d|j         j        › d�|¦  «         n)| j                             d|j         j        › d�|¦  «         |S )zvInfer __init__ argument type for an attribute.

        In particular, possibly use the signature of __set__.
        Ú__set__rN   z(Unsupported signature for "__set__" in "ú"zUnsupported "__set__" in ")r’   Úimplicitr@   rp   r9   r¤   rq   r   Úget_containing_type_infor6   r7   r<   Úunannotatedr8   Ú	arg_kindsr   r
   Ú	arg_typesr  rH  rÃ   )	rc   ru   rÃ   r¾   ÚdefaultÚtÚsetterÚ
super_infoÚsetter_types	            rU   r}  z8PydanticModelTransformer._infer_dataclass_attr_init_type  sr  € ð
 ”(ˆØŒ<ð 	ØˆNÝ˜CœHÑ%Ô%ˆõ ˜!�XÑ&Ô&ð 	ØˆNØ”—’˜IÑ&Ô&ˆØñ 	UÝ˜&œ+¥wÑ/Ô/ð UØœV×<Ò<¸YÑGÔG�
Ø!Ð!Ð!Ð!Ø”;ð :Ý"1Õ2IÈ&Ì+ÐWXÔW]Ð_iÑ2jÔ2jÑ"kÔ"k�K�Kå"¥9Ô#8Ñ9Ô9Ð9Ý˜k­<Ñ8Ô8ð g¸[Ô=RÝÝÝðWò >ð >õ
 3°;Ô3HÈÔ3KÈQÑOÔOÐOà”I—N’NÐ#\ÈaÌfÌkÐ#\Ð#\Ð#\Ð^eÑfÔfÐfÐfà”	—’ÐJ¸A¼F¼KÐJÐJÐJÈGÑTÔTÐTàˆrW   r  úlist[PydanticModelField]r¬   r'  c           
     óÆ  — d| j         j        j        v r| j         j        j        d         j        sdS | j        j        }t          |j        ¦  «        }|j        du}t          |j	        o|j         ¦  «        }|  
                    |||||||d¬¦  «        }	|�r:| j                             t          ¦  «        j        }
t          |
t           ¦  «        sJ ‚d|
j        v rö|
j        d         j        }t          |t"          ¦  «        sJ ‚|�Ë|j        �Ä|j        }t          |t&          ¦  «        sJ ‚t)          |j        ¦  «        D ]‘\  }}|�*|                     d¦  «        s|                     d¦  «        sŒ2| j                             |j        |         ¦  «        }t3          ||¦  «        }|	                     t7          ||dt8          ¦  «        ¦  «         Œ’|                      ||¦  «        sPt3          d¦  «        }|	                     t7          |t=          t>          j         ¦  «        dtB          ¦  «        ¦  «         tE          | j        | j         d|	tG          ¦   «         ¬¦  «         dS )	z§Adds a fields-aware `__init__` method to the class.

        The added `__init__` will be annotated with types vs. all `Any` depending on the plugin settings.
        rb   NT)r×   rØ   Úrequires_dynamic_aliasesrÚ   r'  r&  rÛ   Ú__Ú_Úkwargs)rë   Úreturn_type)$r  r�   r0  Úplugin_generatedr^   rœ   rž   rÏ   r  rI  Úget_field_argumentsr  ro   r  rq   rp   r)   r   r’   r8   r6  r,  Ú
startswithÚ	anal_typer‡  r*   Úappendr   r   Úshould_init_forbid_extrar7   r<   rã   r   Ú
add_methodr:   )rc   r  r¬   r'  r&  r×   rØ   rÚ   r�  rë   Úbase_settings_nodeÚbase_settings_init_nodeÚ	func_typeÚarg_idxrS  Úanalyzed_variable_typerÞ   Úvars                     rU   r!  z(PydanticModelTransformer.add_initializer5  s`  € ð ˜œœÔ-Ð-Ð-°d´i´nÔ6JÈ:Ô6VÔ6gÐ-ØˆFàÔ"Ô-ˆÝ˜FœMÑ*Ô*ˆØÔ+°4Ð7ˆ	Ý#'¨Ô(BÐ(bÈ6ÔKbÐGbÑ#cÔ#cÐ Ø×'Ò'ØØØ%Ø%=ØØ#Ø'Ø%)ð (ñ 	
ô 	
ˆð ñ 	_Ø!%¤×!AÒ!AÕBWÑ!XÔ!XÔ!]ÐÝÐ0µ(Ñ;Ô;Ð;Ð;Ð;ØÐ/Ô5Ð5Ð5Ø*<Ô*BÀ:Ô*NÔ*SÐ'Ý!Ð"9½7ÑCÔCÐCÐCÐCØ*Ð6Ð;RÔ;WÐ;cØ 7Ô <�IÝ% iµÑ>Ô>Ð>Ð>Ð>Ý-6°yÔ7JÑ-KÔ-Kð _ð _Ñ)˜ Ø#Ð+¨x×/BÒ/BÀ4Ñ/HÔ/HÐ+ÐPX×PcÒPcÐdgÑPhÔPhÐ+Ø$Ø15´×1DÒ1DÀYÔEXÐY`ÔEaÑ1bÔ1bÐ.Ý#& xÐ1GÑ#HÔ#H˜ØŸš¥H¨XÐ7MÈtÕU\Ñ$]Ô$]Ñ^Ô^Ð^Ð^à×,Ò,¨V°VÑ<Ô<ð 	UÝ�h‘-”-ˆCØ�KŠK� ¥g­iÔ.@Ñ&AÔ&AÀ4ÍÑSÔSÑTÔTÐTå�4”9˜dœi¨¸$ÍHÉJÌJÐWÑWÔWÐWÐWÐWrW   c           
     ó8  — | j                              t          › d�| j                              t          › d�¦  «        g¦  «        }t          |t	          ¦   «         g¦  «        }t          t          d|¦  «        |dt          ¦  «        }t          j	        | j         j
        j        ¦  «        5  |                      |dt          |j        ¦  «        dd||¬¦  «        }ddd¦  «         n# 1 swxY w Y   |                      ||¦  «        sPt          d¦  «        }	|                     t          |	t#          t$          j        ¦  «        dt(          ¦  «        ¦  «         |r||gz   n|g|z   }t+          | j         | j        d	|t/          | j        j        ¦  «        d¬
¦  «         dS )zäAdds a fully typed `model_construct` classmethod to the class.

        Similar to the fields-aware __init__ method, but always uses the field names (not aliases),
        and does not treat settings fields as optional.
        z.setz.strÚ_fields_setNTF)r×   rØ   r�  rÚ   r'  r&  r’  Úmodel_construct)rë   r“  Úis_classmethod)r  Ú
named_typeÚBUILTINS_NAMEr?   r:   r   r*   r   r5   ré   rY   rê   r•  rž   rÏ   r™  r˜  r7   r<   rã   r   rš  r  rA   r�   )
rc   r  r¬   r'  r&  Úset_strÚoptional_set_strÚfields_set_argumentrë   r   s
             rU   r"  z3PydanticModelTransformer.add_model_construct_methodd  s×  € ð ”)×&Ò&­-Ð'=Ð'=Ð'=ÀÄ	×@TÒ@TÕXeÐUkÐUkÐUkÑ@lÔ@lÐ?mÑnÔnˆÝ$ g­x©z¬zÐ%:Ñ;Ô;ÐÝ&¥s¨=Ð:JÑ'KÔ'KÐM]Ð_cÕelÑmÔmÐÝÔ& t¤yÔ'8Ô'HÑIÔIð 		ð 		Ø×+Ò+ØØÝ! &¤-Ñ0Ô0Ø).ØØ'Ø+ð ,ñ ô ˆDð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð ×,Ò,¨V°VÑ<Ô<ð 	UÝ�h‘-”-ˆCØ�KŠK� ¥g­iÔ.@Ñ&AÔ&AÀ4ÍÑSÔSÑTÔTÐTà/<Ð^ˆtÐ*Ð+Ñ+Ð+ÐCVÐBWÐZ^ÑB^ˆåØŒIØŒIØØÝ% d¤i¤nÑ5Ô5Øð	
ñ 	
ô 	
ð 	
ð 	
ð 	
s   Â*/C%Ã%C)Ã,C)r	  c                ó¬  — | j         j        }|D �]C}|j                             |j        ¦  «        }|�À|j        }t          |t          ¦  «        r|p|j        |_	        ŒOt          |t          ¦  «        r&| j        j        s| j                             ¦   «          ŒŠ	 t          |¦  «        }n# t          $ r t!          |¦  «        }Y nw xY wd|› d|j        › d�}	t%          |	| j        | j         ¦  «         Œä|                     ||d¬¦  «        }||_        ||_	        |j        dz   |j        z   |_        t-          t.          |¦  «        |j        |j        <   �ŒEdS )z§Marks all fields as properties so that attempts to set them trigger mypy errors.

        This is the same approach used by the attrs and dataclasses plugins.
        Nzsym_node.node: r·   r¸   F)rÚ   ú.)r  r�   r0  r¤   rÃ   rq   rp   r*   rÌ   Úis_propertyr"   r  Úfinal_iterationÚdeferrP   Ú	TypeErrorÚreprrd   r½   râ   re   Ú	_fullnamer&   r   )
rc   r  r‰   r	  r�   r  rc  r   Úvar_strrÆ   s
             rU   r#  z#PydanticModelTransformer.set_frozenŒ  sk  € ð
 ŒyŒ~ˆØð 	Bñ 	BˆEØ”z—~’~ e¤jÑ1Ô1ˆHØÐ#Ø”m�Ý˜c¥3Ñ'Ô'ð LØ&,Ð&?°´�C”O�OÝ ¥_Ñ5Ô5ð L¸d¼iÔ>Wð Là”I—O’OÑ%Ô%Ð%Ð%ð,Ý"% c¡(¤(˜˜øÝ$ð ,ð ,ð ,å"& s¡)¤)˜˜˜ð,øøøð S¨wÐRÐRÀ#Ä-ÐRÐRÐR�FÝ-¨f°d´iÀÄÑKÔKÐKÐKà—l’l 4¨¸�lÑ>Ô>�Ø�”Ø"(�”Ø $¤°Ñ 3°c´hÑ >�”Ý'6µt¸SÑ'AÔ'A�”
˜3œ8Ñ$Ñ$ð/	Bð 	Bs   ÂB*Â*CÃCFrï   r   r<  úModelConfigData | Nonec                ó
  — || j         vrdS |dk    rlt          |t          ¦  «        r|j        dk    }n;t          |t          ¦  «        r|j        dk    }n|st          || j        |¦  «         dS t          |¬¦  «        S |dk    r4d}t          |t          ¦  «        r|j
        dk    rd}t          |¬	¦  «        S t          |t          ¦  «        r |j
        d
v rt          di ||j
        dk    i¤ŽS t          || j        |¦  «         dS )zÐDetermines the config update due to a single kwarg in the ConfigDict definition.

        Warns if a tracked config attribute is set to a value the plugin doesn't know how to interpret (e.g., an int)
        Nr  Úforbid)Úforbid_extrar
  Túbuiltins.NoneF)rI  )úbuiltins.Trueúbuiltins.Falser¸  r±   )r  rp   r%   r-  r   rÃ   Úerror_invalid_config_valuer  r9  r    re   )rc   rÃ   rï   r<  r¶  rI  s         rU   rA  z*PydanticModelTransformer.get_config_update«  s6  € ð
 �tÔ1Ð1Ð1Ø�4Ø�7Š?ˆ?Ý˜#�wÑ'Ô'ð Ø"œy¨HÒ4��Ý˜C¥Ñ,Ô,ð Ø"œx¨8Ò3��à ð 	Eõ /¨t°T´YÀÑDÔDÐDØ�tÝ"°Ð=Ñ=Ô=Ð=ØÐ$Ò$Ð$Ø"&ÐÝ˜#�xÑ(Ô(ð ,¨S¬\¸_Ò-LÐ-LØ&+Ð#Ý"Ð7JÐKÑKÔKÐKÝ�c�8Ñ$Ô$ð 	N¨¬Ð9\Ð)\Ð)\Ý"ÐMÐM d¨C¬L¸OÒ,KÐ%LÐMÐMÐMÝ" 4¨¬°CÑ8Ô8Ð8ØˆtrW   c                ó¸  — | j         }t          |t          ¦  «        rdS t          |t          ¦  «        r’t          |j        t
          ¦  «        rx|j        j        t          k    rct          |j	        |j
        ¦  «        D ]F\  }}|�|dk    r|j        t          uc S |dk    r#t          |t          ¦  «        o
|j        dk     c S ŒGdS t          |t          ¦  «         S )zUReturns a boolean indicating whether the field defined in `stmt` is a required field.FNrˆ  Údefault_factoryr·  )rF  rp   r'   r   r3  r#   re   ÚFIELD_FULLNAMErG  rë   r,  rd   r   r    ©rQ  rO  rï   rÃ   s       rU   rv  z(PydanticModelTransformer.get_has_defaultÎ  sì   € ð Œ{ˆÝ�d�HÑ%Ô%ð 	à�5Ý�d�HÑ%Ô%ð 	­*°T´[Å'Ñ*JÔ*Jð 	ÈtÌ{ÔOcÕguÒOuÐOuõ
 ! ¤¨D¬NÑ;Ô;ð _ð _‘	��Tà�< 4¨9Ò#4Ð#4Øœ=µÐ<Ð<Ð<Ð<ØÐ,Ò,Ð,Ý *¨3µÑ 9Ô 9Ð ]¸c¼lÈoÒ>]Ð^Ð^Ð^Ð^ð -à�5å˜d¥LÑ1Ô1Ð1Ð1rW   rÐ   c                óP  — | j         }t          |t          ¦  «        r‰t          |j        t          ¦  «        ro|j        j        t          k    rZt          |j        |j	        ¦  «        D ]?\  }}|dk    rŒt          |t          ¦  «        r|j        dk    r dS |j        dk    r dS  dS dS )zEReturns a the `strict` value of a field if defined, otherwise `None`.rÏ   r¸  Tr¹  FN)rF  rp   r   r3  r#   re   r½  rG  rë   r,  r    r¾  s       rU   rw  z#PydanticModelTransformer.get_strictä  s¶   € ð Œ{ˆÝ�d�HÑ%Ô%ð 		­*°T´[Å'Ñ*JÔ*Jð 		ÈtÌ{ÔOcÕguÒOuÐOuÝ  ¤¨D¬NÑ;Ô;ð ð ‘	��TØ˜8Ò#Ð#ØÝ˜c¥8Ñ,Ô,ð %Ø”| Ò6Ð6Ø#˜t˜tØœÐ)9Ò9Ð9Ø$˜u˜uØ�t�tØˆtrW   útuple[str | None, bool]c                ón  — | j         }t          |t          ¦  «        rdS t          |t          ¦  «        r/t          |j        t
          ¦  «        r|j        j        t          k    sdS t          |j	        ¦  «        D ];\  }}|dk    rŒ|j
        |         }t          |t          ¦  «        r|j        dfc S  dS dS )a  Returns a pair (alias, has_dynamic_alias), extracted from the declaration of the field defined in `stmt`.

        `has_dynamic_alias` is True if and only if an alias is provided, but not as a string literal.
        If `has_dynamic_alias` is True, `alias` will be None.
        )NFrÊ   F)NT)rF  rp   r'   r   r3  r#   re   r½  r6  r,  rë   r%   r-  ©rQ  rO  r.  rS  rï   s        rU   r{  z'PydanticModelTransformer.get_alias_infoô  sÊ   € ð Œ{ˆÝ�d�HÑ%Ô%ð 	à�;õ �t�XÑ&Ô&ð	Ý+5°d´kÅ7Ñ+KÔ+Kð	ØPTÔP[ÔPdÕhvÒPvÐPvð �;å$ T¤^Ñ4Ô4ð 	"ð 	"‰KˆAˆxØ˜7Ò"Ð"ØØ”)˜A”,ˆCÝ˜#�wÑ'Ô'ð "Ø”y %Ð'Ð'Ð'Ð'à!�z�zØˆ{rW   c                ól  — | j         }t          |t          ¦  «        rdS t          |t          ¦  «        r/t          |j        t
          ¦  «        r|j        j        t          k    sdS t          |j	        ¦  «        D ]:\  }}|dk    r/|j
        |         }t          |t          ¦  «        o
|j        dk    c S Œ;dS )al  Returns whether the field is frozen, extracted from the declaration of the field defined in `stmt`.

        Note that this is only whether the field was declared to be frozen in a `<field_name> = Field(frozen=True)`
        sense; this does not determine whether the field is frozen because the entire model is frozen; that is
        handled separately.
        Fr	  r¸  )rF  rp   r'   r   r3  r#   re   r½  r6  r,  rë   r    rÂ  s        rU   r|  z(PydanticModelTransformer.is_field_frozen  sÆ   € ð Œ{ˆÝ�d�HÑ%Ô%ð 	à�5õ �t�XÑ&Ô&ð	Ý+5°d´kÅ7Ñ+KÔ+Kð	ØPTÔP[ÔPdÕhvÒPvÐPvð �5å$ T¤^Ñ4Ô4ð 	Uð 	U‰KˆAˆxØ˜8Ò#Ð#Ø”i ”l�Ý! #¥xÑ0Ô0ÐT°S´\À_Ò5TÐTÐTÐTð $ð ˆurW   r×   rØ   rÚ   r�  rÛ   úlist[Argument]c	           	     ó\   ‡ ‡‡‡‡‡‡‡‡
— ‰ j         j        Š
ˆˆ
ˆˆˆˆˆ ˆˆf	d„|D ¦   «         }	|	S )zÈHelper function used during the construction of the `__init__` and `model_construct` method signatures.

        Returns a list of mypy Argument instances for use in the generated signatures.
        c                ó€   •	— g | ]:}‰
r|j         °|                     ‰‰	‰‰p‰‰
‰j        ‰‰o
|j        d k    ¬¦  «        ‘Œ;S )rY  )r×   rØ   rÙ   rÚ   r‰   rÛ   rÜ   )rÍ   rä   r  rÃ   )rl   r  rÛ   r�   r&  r'  rØ   r�  rc   r×   rÚ   s     €€€€€€€€€rU   ú
<listcomp>z@PydanticModelTransformer.get_field_arguments.<locals>.<listcomp>9  s~   ø€ ð 
ð 
ð 
ð Øð
ð #(Ô"9ð
Ø×ÒØØØ)Ø7ÐF¸;Ø#Ø”IØ)AØ#0Ð#I°U´ZÀ6Ò5Ið ñ 	ô 	ð
ð 
ð 
rW   )r  r�   )rc   r  r×   rØ   rÚ   r�  r'  r&  rÛ   Ú	argumentsr�   s   ` ``````` @rU   r•  z,PydanticModelTransformer.get_field_arguments)  sp   øøøøøøøøø€ ð ŒyŒ~ˆð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð  ð
ñ 
ô 
ˆ	ð ÐrW   c                óŽ   — |j         s*|                      |t          |j        ¦  «        ¦  «        rdS |j        rdS | j        j        S )a@  Indicates whether the generated `__init__` should get a `**kwargs` at the end of its signature.

        We disallow arbitrary kwargs if the extra config setting is "forbid", or if the plugin config says to,
        *unless* a required dynamic alias is present (since then we can't determine a valid signature).
        FT)r  Úis_dynamic_alias_presentrž   rI  r¶  r^   r›   )rc   r  r¬   s      rU   r™  z1PydanticModelTransformer.should_init_forbid_extraI  sS   € ð Ô&ð 	Ø×,Ò,¨VµT¸&Ô:TÑ5UÔ5UÑVÔVð Ø�uØÔð 	Ø�4ØÔ!Ô3Ð3rW   rI  c                óF   — | D ]}|j         r dS Œ|r| D ]}|j        € dS ŒdS )z‘Returns whether any fields on the model have a "dynamic alias", i.e., an alias that cannot be
        determined during static analysis.
        TNF)rÍ   rÊ   )r  rI  r  s      rU   rÊ  z1PydanticModelTransformer.is_dynamic_alias_presentV  sZ   € ð
 ð 	ð 	ˆEØÔ&ð Ø�t�tðàð 	 Øð  ð  �Ø”;Ð&Ø˜4˜4ð 'àˆurW   N)
r‡   r   rˆ   r  r‰   r1   r^   r]   rQ   rZ   )rQ   rž   )rQ   rZ   )rQ   r9  )r;  r9  r&  rž   rQ   rW  )rQ  r   rQ   rg  )rl  r   rQ   rg  )rQ  r   r;  r9  r  rn  rQ   ro  )ru   r&   rÃ   rP   r¾   r   rQ   rÔ   )
r  r�  r¬   r9  r'  rž   r&  rž   rQ   rZ   )r  r�  r‰   r1   r	  rž   rQ   rZ   rþ   )rÃ   rP   rï   r   r<  rž   rQ   r³  )rQ  r   rQ   rž   )rQ  r   rQ   rÐ   )rQ  r   rQ   rÀ  )r  r�  r×   rž   rØ   rž   rÚ   rž   r�  rž   r'  rž   r&  rž   rÛ   rž   rQ   rÄ  )r  r�  r¬   r9  rQ   rž   )r  r�  rI  rž   rQ   rž   )r•   r–   r—   r˜   r  rµ   rb   rŠ   r$  r  r   rk  r\  r]  r}  r!  r"  r#  rA  Ústaticmethodrv  rw  r{  r|  r•  r™  rÊ  r±   rW   rU   r†   r†   ”  sK  € € € € € € ðð ð'ð 'ð 'Ðð ð ð ñ ð+ð +ð +ð +ð"ð "ð "ð "ðH2ð 2ð 2ð 2ð6Jð Jð Jð JðXBLð BLð BLð BLðHRð Rð Rð RðSð Sð Sð Sð
ð 
ð 
ð 
ðB$ð $ð $ð $ðL-Xð -Xð -Xð -Xð^&
ð &
ð &
ð &
ðPBð Bð Bð Bð>!ð !ð !ð !ð !ðF ð2ð 2ð 2ñ „\ð2ð* ðð ð ñ „\ðð ðð ð ñ „\ðð6 ðð ð ñ „\ððB */ðð ð ð ð ð@4ð 4ð 4ð 4ð ðð ð ñ „\ðð ð rW   r†   c                  ó@   — e Zd ZdZ	 	 	 	 	 	 ddd
„Zdd„Zdd„Zdd„ZdS )r9  z(Pydantic mypy plugin model config class.Nr¶  rÐ   r	  rº   r  rI  rÏ   c                óZ   — || _         || _        || _        || _        || _        || _        d S r\   )r¶  r	  rº   r  rI  rÏ   )rc   r¶  r	  rº   r  rI  rÏ   s          rU   rb   zModelConfigData.__init__h  s6   € ð )ˆÔØˆŒØ.ˆÔØ 0ˆÔØ#6ˆÔ ØˆŒˆˆrW   rQ   r‚   c                óH   — d„ | j                              ¦   «         D ¦   «         S )z†Returns a dict of Pydantic model config names to their values.

        It includes the config if config value is not `None`.
        c                ó   — i | ]
\  }}|®||“ŒS r\   r±   )rl   ÚkÚvs      rU   r²   z3ModelConfigData.get_values_dict.<locals>.<dictcomp>}  s   € ÐHÐHÐH™˜˜A¸!¸-��1¸-¸-¸-rW   )Ú__dict__r@  r³   s    rU   r%  zModelConfigData.get_values_dictx  s'   € ð
 IÐH ¤×!4Ò!4Ñ!6Ô!6ÐHÑHÔHÐHrW   r¬   r³  rZ   c                óˆ   — |€dS |                      ¦   «                              ¦   «         D ]\  }}t          | ||¦  «         ŒdS )z$Update Pydantic model config values.N)r%  r@  r§   )rc   r¬   rÑ  rÒ  s       rU   rB  zModelConfigData.update  sV   € àˆ>ØˆFØ×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4ð 	 ð 	 ‰DˆAˆqÝ�D˜!˜QÑÔÐÐð	 ð 	 rW   r­   rP   r-  r   c                óL   — t          | |¦  «        €t          | ||¦  «         dS dS )zFSet default value for Pydantic model config if config value is `None`.N)r‘   r§   )rc   r­   r-  s      rU   rL  zModelConfigData.setdefault†  s2   € å�4˜ÑÔÐ%Ý�D˜#˜uÑ%Ô%Ð%Ð%Ð%ð &Ð%rW   )NNNNNN)r¶  rÐ   r	  rÐ   rº   rÐ   r  rÐ   rI  rÐ   rÏ   rÐ   r´   )r¬   r³  rQ   rZ   )r­   rP   r-  r   rQ   rZ   )r•   r–   r—   r˜   rb   r%  rB  rL  r±   rW   rU   r9  r9  e  s‡   € € € € € Ø2Ð2ð %)Ø"Ø'+Ø(,Ø+/Ø"ðð ð ð ð ð Ið Ið Ið Ið ð  ð  ð  ð&ð &ð &ð &ð &ð &rW   r9  zpydantic-ormzInvalid from_attributes callÚPydanticzpydantic-configzInvalid config valuezpydantic-aliaszDynamic alias disallowedzpydantic-unexpectedzUnexpected behaviorzpydantic-fieldzUntyped field disallowedzInvalid Field defaultsz!Extra field on RootModel subclassÚ
model_namer‰   r,   r¾   r   rZ   c                óH   — |                      d| › d�|t          ¬¦  «         dS )zCEmits an error when the model does not have `from_attributes=True`.r‚  z$" does not have from_attributes=True©ÚcodeN)rH  Ú	ERROR_ORM)r×  r‰   r¾   s      rU   rÂ   rÂ   •  s-   € à‡H‚HÐA�ÐAÐAÐAÀ7ÕQZ€HÑ[Ô[Ð[Ð[Ð[rW   rÃ   r1   c                óH   — |                      d| › d�|t          ¬¦  «         dS )z0Emits an error when the config value is invalid.zInvalid value for "Config.r‚  rÙ  N)rH  ÚERROR_CONFIG)rÃ   r‰   r¾   s      rU   rº  rº  š  s,   € à‡H‚HÐ1¨$Ð1Ð1Ð1°7Å€HÑNÔNÐNÐNÐNrW   c                ó@   — |                       d|t          ¬¦  «         dS )znEmits required dynamic aliases error.

    This will be called when `warn_required_dynamic_aliases=True`.
    z#Required dynamic aliases disallowedrÙ  N)rH  ÚERROR_ALIAS©r‰   r¾   s     rU   rJ  rJ  Ÿ  s#   € ð
 ‡H‚HÐ2°GÅ+€HÑNÔNÐNÐNÐNrW   rÆ   ú8CheckerPluginInterface | SemanticAnalyzerPluginInterfacec                ób   — d}d| › d�}|d|› d�z  }|                      ||t          ¬¦  «         dS )z Emits unexpected behavior error.z6https://github.com/pydantic/pydantic/issues/new/choosez7The pydantic mypy plugin ran into unexpected behavior: ú
z&Please consider reporting this bug at z so we can try to fix it!rÙ  N)rH  ÚERROR_UNEXPECTED)rÆ   r‰   r¾   ÚlinkÚfull_messages        rU   r½   r½   §  sO   € ð
 D€DØWÈVÐWÐWÐW€LØÐ\¸TÐ\Ð\Ð\Ñ\€LØ‡H‚Hˆ\˜7Õ)9€HÑ:Ô:Ð:Ð:Ð:rW   c                ó@   — |                       d|t          ¬¦  «         dS )z;Emits an error when there is an untyped field in the model.zUntyped fields disallowedrÙ  N)rH  ÚERROR_UNTYPEDrà  s     rU   rt  rt  ²  s!   € à‡H‚HÐ(¨'½€HÑFÔFÐFÐFÐFrW   c                ó@   — |                       d|t          ¬¦  «         dS )z]Emits an error when there is more than just a root field defined for a subclass of RootModel.z2Only `root` is allowed as a field of a `RootModel`rÙ  N)rH  ÚERROR_EXTRA_FIELD_ROOT_MODELrà  s     rU   r^  r^  ·  s"   € à‡H‚HÐAÀ7ÕQm€HÑnÔnÐnÐnÐnrW   Fú8SemanticAnalyzerPluginInterface | CheckerPluginInterfacer‡   r   rë   rÄ  r“  rè   rÔ   Útvar_defúTypeVarType | Noner¤  rž   c                ó,  — |j         }||j        v rR|j        |         }	|	j        r>t          |	j        t
          ¦  «        r$|j        j                             |	j        ¦  «         t          | t          ¦  «        r|  
                    d¦  «        }
n|                      dg ¦  «        }
|rE|pt          t          |¦  «        ¦  «        }t          t          d¦  «        |dt           d¦  «        g}n6|pt          |¦  «        }t          t          d¦  «        |dt           ¦  «        g}||z   }g g g }}}|D ]f}|j        s
J d¦   «         ‚|                     |j        ¦  «         |                     |j        j        ¦  «         |                     |j        ¦  «         Œgt-          |||||
¦  «        }|r|g|_        t          ||t1          t3          ¦   «         g¦  «        ¦  «        }||_         t5          ||¦  «        |_        ||_        |j        dz   |z   |_        |j        |_        ||j        v r*tA          ||j        ¦  «        }|j        |         |j        |<   |rwd|_!        t          ||j        ¦  «        }||_         |j        |_        d|_"        tG          |tI          d¦  «        g|¦  «        }|j        |_        tK          tL          |¦  «        }	ntK          tL          |¦  «        }	d|	_        |	|j        |<   |j'        j        j                             |¦  «         dS )	zhVery closely related to `mypy.plugins.common.add_method_to_class`, with a few pydantic-specific changes.zbuiltins.functionr  NTÚ__pydantic_self__z"All arguments must be fully typed.r«  r   )(r�   r0  r”  rp   rq   r   rC  rD  Úremover1   r¥  Únamed_generic_typer=   rA   r   r*   r   rß   r˜  rÞ   rÃ   rá   r8   Ú	variablesr   r!   r3   r’   r8  re   r±  rÑ   rB   Úis_decoratedr¤  r   r    r&   r   Údefn)r‰   r‡   rÃ   rë   r“  rè   rì  r¤  r�   ru   Úfunction_typeÚfirstr‡  r,  r†  rï   Ú	signaturer7  Úr_namerÒ  Údecs                        rU   rš  rš  ¼  s  € ð Œ8€Dð ˆtŒzÐÐØŒj˜ÔˆØÔð 	+¥J¨s¬x½Ñ$AÔ$Að 	+ØŒHŒM× Ò  ¤Ñ*Ô*Ð*å�#Õ6Ñ7Ô7ð HØŸšÐ':Ñ;Ô;ˆˆà×.Ò.Ð/BÀBÑGÔGˆàð OØÐ>¥­-¸Ñ*=Ô*=Ñ!>Ô!>ˆ	Ý�#˜f™+œ+ y°$½ÀÑFÔFÐGˆˆàÐ4¥¨tÑ!4Ô!4ˆ	õ �#Ð1Ñ2Ô2°I¸tÅWÑMÔMÐNˆØ�4‰<€Dà&(¨"¨b˜)ˆy€IØð #ð #ˆØÔ"ÐHÐHÐ$HÑHÔHÐHØ×Ò˜Ô,Ñ-Ô-Ð-Ø×Ò˜œÔ*Ñ+Ô+Ð+Ø×Ò˜œÑ"Ô"Ð"Ð"å˜Y¨	°9¸kÈ=ÑYÔY€IØð )Ø'˜jˆ	Ôå�4˜�u¥h¡j¤j \Ñ2Ô2Ñ3Ô3€DØ€D„IÝ! )¨TÑ2Ô2€D„IØ"€D„MØ”] SÑ(¨4Ñ/€D„NØ”	€D„Ið ˆtŒzÐÐå-¨d°D´JÑ?Ô?ˆØ!œZ¨Ô-ˆŒ
�6Ñð
 ð 
*Ø ˆÔÝ��d”iÑ Ô ˆØˆŒØ”nˆŒØˆÔÝ˜�x¨Ñ6Ô6Ð7¸Ñ;Ô;ˆØ”9ˆŒÝ�d CÑ(Ô(ˆˆå�d DÑ)Ô)ˆØ€CÔØ€D„JˆtÑà„I„NÔ×Ò˜tÑ$Ô$Ð$Ð$Ð$rW   r¢   údict[str, Any] | Nonec                ó8  — |                       d¦  «        sdS t          j        dk    rddl}n0	 ddl}n*# t
          $ r ddl}|                     d¦  «         Y dS w xY wt          | d¦  «        5 }| 	                    |¦  «        cddd¦  «         S # 1 swxY w Y   dS )z…Returns a dict of config keys to values.

    It reads configs from toml file and returns `None` if the file is not a toml file.
    z.tomlN)é   é   r   zJNo TOML parser installed, cannot read configuration from `pyproject.toml`.Úrb)
r~   ÚsysÚversion_infoÚtomllibÚtomliÚImportErrorÚwarningsÚwarnÚopenÚload)r¢   Útoml_r  Úrfs       rU   r£   r£     s  € ð
 ×Ò Ñ(Ô(ð Øˆtå
Ô˜7Ò"Ð"ØÐÐÐÐð	Ø!Ð!Ð!Ð!Ð!øÝð 	ð 	ð 	ØˆOˆOˆOà�MŠMÐfÑgÔgÐgØ�4�4ð		øøøõ 
ˆk˜4Ñ	 Ô	 ð  BØ�zŠz˜"‰~Œ~ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s!   ®3 ³#AÁAÁ-BÂBÂB)rO   rP   rQ   rR   )r�   r.   rQ   r;   )r×  rP   r‰   r,   r¾   r   rQ   rZ   )rÃ   rP   r‰   r1   r¾   r   rQ   rZ   )r‰   r1   r¾   r   rQ   rZ   )rÆ   rP   r‰   rá  r¾   r   rQ   rZ   )r‰   r,   r¾   r   rQ   rZ   )NNF)r‰   rë  r‡   r   rÃ   rP   rë   rÄ  r“  r;   rè   rÔ   rì  rí  r¤  rž   rQ   rZ   )r¢   rP   rQ   rú  )|r˜   Ú
__future__r   rÿ  Úconfigparserr   Útypingr   r   r   Úmypy.errorcodesr   Úmypy.expandtyper	   r
   Ú
mypy.nodesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Úmypy.optionsr+   Úmypy.pluginr,   r-   r.   r/   r0   r1   Úmypy.plugins.commonr2   Úmypy.semanalr3   Úmypy.server.triggerr4   Ú
mypy.stater5   Úmypy.typeopsr6   Ú
mypy.typesr7   r8   r9   r:   r;   r<   r=   r>   r?   r@   Úmypy.typevarsrA   Ú	mypy.utilrB   Úmypy.versionrC   Úmypy_versionÚpydantic._internalrD   Úpydantic.versionrE   rª   rÁ   rj   r  r  rx   r½  ÚDATACLASS_FULLNAMEr5  r4  ÚMYPY_VERSION_TUPLEr¦  rV   rT   r]   r   rÉ   r  r†   r9  rÛ  rÝ  rß  rä  rè  ÚERROR_FIELD_DEFAULTSrê  rÂ   rº  rJ  r½   rt  r^  rš  r£   r±   rW   rU   ú<module>r!     sŒ  ðØ dÐ dà "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø %Ð %Ð %Ð %Ð %Ð %Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à %Ð %Ð %Ð %Ð %Ð %Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð!ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ðD !Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à &Ð &Ð &Ð &Ð &Ð &Ø /Ð /Ð /Ð /Ð /Ð /à €Ø'€Ø.Ð Ø=Ð Ø5Ð ØRÐ Ø(€Ø5Ð ØKÐ ðð ð Ð ð (Ð'¨Ñ5Ô5Ð Ø€ð €ðð ð ð ð3@ð 3@ð 3@ð 3@ð 3@�Vñ 3@ô 3@ð 3@ðl+Cð +Cð +Cð +Cð +Cñ +Cô +Cð +Cð\#ð #ð #ð #ð4ATð ATð ATð ATð ATñ ATô ATð ATðH
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð2Nð Nð Nð Nð Nñ Nô Nð Nðb$&ð $&ð $&ð $&ð $&ñ $&ô $&ð $&ðN ˆI�nÐ&DÀjÑQÔQ€	ØˆyÐ*Ð,BÀJÑOÔO€ØˆiÐ(Ð*DÀjÑQÔQ€Ø�9Ð2Ð4IÈ:ÑVÔVÐ Ø�	Ð*Ð,FÈ
ÑSÔS€Ø �yÐ!1Ð3KÈZÑXÔXÐ Ø(˜yÐ)9Ð;^Ð`jÑkÔkÐ ð\ð \ð \ð \ð
Oð Oð Oð Oð
Oð Oð Oð Oð;ð ;ð ;ð ;ðGð Gð Gð Gð
oð oð oð oð "Ø#'Ø ðU%ð U%ð U%ð U%ð U%ðpð ð ð ð ð rW   