§
    Ë! h�ç  ã                  óð  — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZ dd	lmZ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/m0Z0 dd
l1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZC ddlDmEZE ddlFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZP ddlQmRZR ddlSmTZT ddlUmVZW ddlXmYZY ddlZm[Z[ dZ\dZ]dZ^dZ_dZ`dZadZbdZcd Zdh d!£Zeeed"hz
  Zf e[eW¦  «        Zgd#Zhd$ZVdmd)„Zi G d*„ d+e7¦  «        Zj G d,„ d-¦  «        Zkdnd1„Zl G d2„ d3¦  «        Zm G d4„ d5¦  «        Zn G d6„ d7¦  «        Zo G d8„ d9eC¦  «        Zp G d:„ d;¦  «        Zqdod?„Zr ed@dAdB¦  «        Zs edCdDdB¦  «        Zt edEdFdB¦  «        Zu edGdHdB¦  «        Zv edIdJdB¦  «        Zw edIdKdB¦  «        Zx edIdLdB¦  «        ZydpdS„ZzdqdV„Z{drdW„Z|dsdZ„Z}drd[„Z~dtd\„Z	 	 	 dudvdi„Z€dwdl„Z�dS )xz^This module includes classes and functions designed specifically for use with the mypy plugin.é    )ÚannotationsN)ÚIterator)ÚConfigParser)ÚAnyÚCallable)Ú	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)ÚTypeTranslator)Ú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ú3pydantic.deprecated.class_validators.root_validatorrH   ú0pydantic.functional_serializers.model_serializerrM   Ú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)rP   s    úGc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pydantic/mypy.pyÚpluginrW   m   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 )rU   zThe Pydantic mypy plugin.Úoptionsr+   rR   ÚNonec                ó®   •— t          |¦  «        | _        | j                             ¦   «         | _        t	          ¦   «                              |¦  «         d S ©N)ÚPydanticPluginConfigÚplugin_configÚto_dataÚ_plugin_dataÚsuperÚ__init__)ÚselfrZ   Ú	__class__s     €rV   rc   zPydanticPlugin.__init__   sH   ø€ Ý1°'Ñ:Ô:ˆÔØ Ô.×6Ò6Ñ8Ô8ˆÔÝ‰Œ×Ò˜Ñ!Ô!Ð!Ð!Ð!rX   ÚfullnamerQ   ú(Callable[[ClassDefContext], None] | Nonec                ó´   — |                       |¦  «        }|r@t          |j        t          ¦  «        r&|j                             t
          ¦  «        r| j        S dS )zUpdate Pydantic model class.N)Úlookup_fully_qualifiedÚ
isinstanceÚnoder)   Úhas_baseÚBASEMODEL_FULLNAMEÚ$_pydantic_model_class_maker_callback)rd   rf   Úsyms      rV   Úget_base_class_hookz"PydanticPlugin.get_base_class_hook„   sZ   € à×)Ò)¨(Ñ3Ô3ˆØð 	A•:˜cœh­Ñ1Ô1ð 	AàŒx× Ò Õ!3Ñ4Ô4ð AØÔ@Ð@ØˆtrX   c                ó*   — |t           k    r| j        S dS )z,Update Pydantic `ModelMetaclass` definition.N)ÚMODEL_METACLASS_FULLNAMEÚ)_pydantic_model_metaclass_marker_callback©rd   rf   s     rV   Úget_metaclass_hookz!PydanticPlugin.get_metaclass_hook�   s   € àÕ/Ò/Ð/ØÔAÐAØˆtrX   ú&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_callbackrt   s     rV   Úget_method_hookzPydanticPlugin.get_method_hook“   s#   € à×Ò˜[Ñ)Ô)ð 	,Ý+Ð+ØˆtrX   Úctxr0   údict[str, Any]c                ó   — | j         S )zjReturn all plugin config data.

        Used by mypy to determine if cache needs to be discarded.
        )ra   )rd   r{   s     rV   Úreport_config_dataz!PydanticPlugin.report_config_data™   s   € ð
 Ô Ð rX   r-   c                óz   — t          |j        |j        |j        | j        ¦  «        }|                     ¦   «          d S r]   )ÚPydanticModelTransformerÚclsÚreasonÚapir_   Ú	transform)rd   r{   Útransformers      rV   rn   z3PydanticPlugin._pydantic_model_class_maker_callback    s6   € Ý.¨s¬w¸¼
ÀCÄGÈTÔM_Ñ`Ô`ˆØ×ÒÑÔÐÐÐrX   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‡   )rd   r{   Úinfo_metaclasss      rV   rs   z8PydanticPlugin._pydantic_model_metaclass_marker_callback¤   sm   € ð ÔÔ7ð 	ØˆFØœœÔ8ˆØÐNÐNÐNÑNÔNˆ~Ý�>Ô&Ð(BÀDÑIÔIð 	@Ø;?ˆNÔÔ8Ð8Ð8ð	@ð 	@rX   ©rZ   r+   rR   r[   )rf   rQ   rR   rg   )rf   rQ   rR   rv   )r{   r0   rR   r|   )r{   r-   rR   r[   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rc   rp   ru   rz   r~   rn   rs   Ú__classcell__©re   s   @rV   rU   rU   |   sÃ   ø€ € € € € Ø#Ð#ð"ð "ð "ð "ð "ð "ð
ð ð ð ðð ð ð ðð ð ð ð!ð !ð !ð !ð ð  ð  ð  ð@ð @ð @ð @ð @ð @ð @ð @rX   rU   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ˆ   rZ   r+   rR   r[   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ÚtoolrG   Fz/Configuration value must be a boolean for key: )Úfallback)Úconfig_fileÚ
parse_tomlÚgetÚ	__slots__rj   r™   Ú
ValueErrorÚsetattrr   ÚreadÚ
getbooleanÚCONFIGFILE_KEY)rd   rZ   Útoml_configÚconfigÚkeyÚsettingr_   s          rV   rc   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Ñ+Ô+Ð+Ð+ð,ð ,rX   r|   c                ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )z/Returns a dict of config names to their values.c                ó2   •— i | ]}|t          ‰|¦  «        “ŒS © )r‹   )Ú.0r¨   rd   s     €rV   ú
<dictcomp>z0PydanticPluginConfig.to_data.<locals>.<dictcomp>Ý   s%   ø€ ÐBÐBÐB¨C�•W˜T 3Ñ'Ô'ÐBÐBÐBrX   )r    ©rd   s   `rV   r`   zPydanticPluginConfig.to_dataÛ   s   ø€ àBÐBÐBÐB°4´>ÐBÑBÔBÐBrX   NrŽ   ©rR   r|   )r�   r�   r‘   r’   r    Ú__annotations__rc   r`   r¬   rX   rV   r^   r^   ²   s‡   € € € € € € ðð ð€Ið ÐÐÑØÐÐÑØ'Ð'Ð'Ñ'Ø#Ð#Ð#Ñ#ð,ð ,ð ,ð ,ð&Cð Cð Cð Cð Cð CrX   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 |j                              t"          ¦  «        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 ú)Nr§   Úfrom_attributesT)rŒ   rj   r>   Úitemr9   Úret_typer:   re   r�   Úerror_unexpected_behaviorrƒ   ÚcontextÚdefault_return_typeÚmetadatarŸ   ÚMETADATA_KEYrl   rm   Úerror_from_attributesÚname)r{   Úctx_typeÚ
model_typeÚdetailÚpydantic_metadatarµ   s         rV   ry   ry   à   sG  € ð Œ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ÐØÐ ØÔ&Ð&ØŒ?×#Ò#Õ$6Ñ7Ô7ð 'àÔ&Ð&Ø'×+Ò+¨H°bÑ9Ô9×=Ò=Ð>OÑPÔP€OØ˜dÐ"Ð"Ý˜jœoÔ2°C´G¸S¼[ÑIÔIÐIØÔ"Ð"rX   c                  ód   — e Zd ZdZd-d„Zd.d„Z	 	 d/d0d"„Z	 d1d2d$„Zd3d&„Ze	d4d(„¦   «         Z
d5d+„Zd,S )6ÚPydanticModelFieldz5Based on mypy.plugins.dataclasses.DataclassAttribute.r¾   rQ   Ú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‰   )rd   r¾   rÅ   rÇ   rÈ   rÉ   rÊ   rÌ   rÎ   rŒ   r‰   s              rV   rc   zPydanticModelField.__init__ý   sP   € ð ˆŒ	ØˆŒ
Ø"ˆŒØ!2ˆÔØ&ˆÔØˆŒØˆŒ	ØˆŒØˆŒ	ØˆŒ	ˆ	ˆ	rX   Úcurrent_infoÚtypedÚmodel_strictÚforce_optionalÚ	use_aliasrƒ   r1   Úforce_typevars_invariantÚis_root_model_rootrR   r   c	                ó   — |                       ||||¦  «        }	| j        €|n| j        }
|s|
r|                      ||d¬¦  «        }nt          t          j        ¦  «        }t          |	|d|rt          n|s| j        rt          nt          ¬¦  «        S )zABased on mypy.plugins.dataclasses.DataclassAttribute.to_argument.NT)Úinclude_root_type)ÚvariableÚtype_annotationÚinitializerÚkind)Úto_varrÊ   r	   r8   r=   Úexplicitr   r   rÉ   r   r   )rd   rÑ   rÒ   rÓ   rÔ   rÕ   rƒ   rÖ   r×   rÚ   rÊ   rÛ   s               rV   Úto_argumentzPydanticModelField.to_argument  s«   € ð —;’;˜|¨S°)Ð=UÑVÔVˆà!%¤Ð!4��¸$¼+ˆØð 	:�Fð 	:Ø"×.Ò.¨|¸SÐTXÐ.ÑYÔYˆOˆOå%¥iÔ&8Ñ9Ô9ˆOåØØ+Øà!ðV•�à#1ÐT°TÔ5EÐT•-�-Í9ð
ñ 
ô 
ð 	
rX   FrÙ   c                ó  — |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¦  «        }|rlt          |t          ¦  «        rWt#          |j        ¦  «        rC|j        d         j        }	|	€|cddd¦  «         S t%          |	|¦  «        }
t'          ||
g¦  «        }|cddd¦  «         S # 1 swxY w Y   | j        S )zABased on mypy.plugins.dataclasses.DataclassAttribute.expand_type.NÚroot)rj   rŒ   r?   Úcopy_modifiedr   Úvariancer‰   Ú	self_typer5   Ústrict_optional_setrZ   Ústrict_optionalrB   r:   Úargsr	   ÚidÚis_root_modelr
   r@   )rd   rÑ   rƒ   rÖ   rÙ   Úmodified_typeÚfilled_with_typevarsÚargÚexpanded_typeÚ	root_typeÚexpanded_root_types              rV   r	   zPydanticModelField.expand_type2  sæ  € ð $ð 	*õ
 ˜$œ)¥[Ñ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øå +¨D¬I¸¼	Ô8KÔ8NÐPdÐ7eÑ fÔ f�Ø$ð S­°MÅ8Ñ)LÔ)Lð SÕQ^Ð_lÔ_qÑQrÔQrð Sð !.Ô 2°6Ô :Ô ?�IØ Ð(à,ð!%ð %ð %ð %ñ %ô %ð %ð %õ" *AÀÈMÑ)ZÔ)ZÐ&Ý$-¨}Ð>PÐ.QÑ$RÔ$R�MØ$ð'%ð %ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð( ŒyÐs   Á<B:E2Å"E2Å2E6Å9E6r*   c                ó|   — |r| j         �| j         }n| j        }t          ||                      |||¦  «        ¦  «        S )z<Based on mypy.plugins.dataclasses.DataclassAttribute.to_var.)rÅ   r¾   r*   r	   )rd   rÑ   rƒ   rÕ   rÖ   r¾   s         rV   rÞ   zPydanticModelField.to_var_  sF   € ð ð 	˜œÐ/Ø”:ˆDˆDà”9ˆDå�4˜×)Ò)¨,¸Ð=UÑVÔVÑWÔWÐWrX   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    rV   rô   zPydanticModelField.serializen  sY   € àŒyÐÐˆyà”IØ”ZØœØ!%Ô!7ØÔ+Ø”kØ”IØ”kØ”I×'Ò'Ñ)Ô)ð

ð 

ð 
	
rX   Údatac                ó†   — |                      ¦   «         }t          |                     d¦  «        |¦  «        } | d||dœ|¤ŽS )úABased on mypy.plugins.dataclasses.DataclassAttribute.deserialize.rŒ   )rŒ   r‰   r¬   )Úcopyr2   Úpop)r�   r‰   rõ   rƒ   Útyps        rV   ÚdeserializezPydanticModelField.deserialize}  sI   € ð �yŠy‰{Œ{ˆÝ(¨¯ª°&Ñ)9Ô)9¸3Ñ?Ô?ˆØˆsÐ/˜ $Ð/Ð/¨$Ð/Ð/Ð/rX   Úsub_typer[   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æ   rZ   rç   r7   r‰   )rd   rü   rƒ   s      rV   Úexpand_typevar_from_subtypez.PydanticModelField.expand_typevar_from_subtype„  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¾   rQ   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™   rR   r   )FF)
rÑ   r)   rƒ   r1   rÖ   r™   rÙ   r™   rR   rÏ   ©F)
rÑ   r)   rƒ   r1   rÕ   r™   rÖ   r™   rR   r*   ©rR   r   )r‰   r)   rõ   r   rƒ   r1   rR   rÄ   )rü   r)   rƒ   r1   rR   r[   )r�   r�   r‘   r’   rc   rà   r	   rÞ   rô   Úclassmethodrû   rþ   r¬   rX   rV   rÄ   rÄ   ú   sÖ   € € € € € Ø?Ð?ðð ð ð ð0
ð 
ð 
ð 
ðB */Ø"'ð+ð +ð +ð +ð +ðd */ðXð Xð Xð Xð Xð
ð 
ð 
ð 
ð ð0ð 0ð 0ñ „[ð0ðTð Tð Tð Tð Tð TrX   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¾   )rd   r¾   s     rV   rc   zPydanticModelClassVar.__init__–  s   € ØˆŒ	ˆ	ˆ	rX   rõ   r   rR   c                ó:   — |                      ¦   «         } | di |¤ŽS )r÷   r¬   )rø   )r�   rõ   s     rV   rû   z!PydanticModelClassVar.deserialize™  s#   € ð �yŠy‰{Œ{ˆØˆsˆ{ˆ{�Tˆ{ˆ{ÐrX   c                ó   — d| j         iS )ró   r¾   r  r¯   s    rV   rô   zPydanticModelClassVar.serializeŸ  s   € ð �D”Ið
ð 	
rX   N)rõ   r   rR   r  r   )r�   r�   r‘   r’   rc   r  rû   rô   r¬   rX   rV   r  r  �  sa   € € € € € ðð ðð ð ð ðð ð ñ „[ðð

ð 
ð 
ð 
ð 
ð 
rX   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_nameÚvalidate_by_nameÚvalidate_by_aliaszset[str]Útracked_config_fieldsr�   r   r‚   úExpression | Statementrƒ   r1   r_   r^   rR   r[   c                ó>   — || _         || _        || _        || _        d S r]   )Ú_clsÚ_reasonÚ_apir_   )rd   r�   r‚   rƒ   r_   s        rV   rc   z!PydanticModelTransformer.__init__¸  s'   € ð ˆŒ	ØˆŒØˆŒ	à*ˆÔÐÐrX   r™   c                ó6  — | j         j        }t          |¦  «        }|                      ¦   «         }|                      ||¦  «        \  }}|�|€dS |D ]}|j        € dS Œ|                     t          ¦  «        }|                      ||||¦  «         |  	                    ||||¦  «         |  
                    || 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
        NFT)r
  c                óB   — i | ]}|j         |                     ¦   «         “ŒS r¬   ©r¾   rô   )r­   Úfields     rV   r®   z6PydanticModelTransformer.transform.<locals>.<dictcomp>â  s&   € ÐIÐIÐI¸�u”z 5§?¢?Ñ#4Ô#4ÐIÐIÐIrX   c                óB   — i | ]}|j         |                     ¦   «         “ŒS r¬   r  )r­   Ú	class_vars     rV   r®   z6PydanticModelTransformer.transform.<locals>.<dictcomp>ã  s(   € Ð]Ð]Ð]ÀY˜9œ>¨9×+>Ò+>Ñ+@Ô+@Ð]Ð]Ð]rX   )ÚfieldsÚ
class_varsr§   )r  r‰   rê   Úcollect_configÚcollect_fields_and_class_varsrŒ   rl   ÚBASESETTINGS_FULLNAMEÚadd_initializerÚadd_model_construct_methodÚ
set_frozenr  r
  Úadjust_decorator_signaturesÚget_values_dictr»   r¼   )rd   r‰   Úis_a_root_modelr§   r  r  r  Úis_settingss           rV   r„   z"PydanticModelTransformer.transformÅ  sA  € ð ŒyŒ~ˆÝ'¨Ñ-Ô-ˆØ×$Ò$Ñ&Ô&ˆØ!×?Ò?ÀÈÑXÔXÑˆ�
Øˆ>˜ZÐ/à�5Øð 	ð 	ˆEØŒzÐ!Ø�u�uð "ð —m’mÕ$9Ñ:Ô:ˆØ×Ò˜V V¨[¸/ÑJÔJÐJØ×'Ò'¨°¸À_ÑUÔUÐUØ�Š˜ ¤	°&´-À4Ð2GˆÑHÔHÐHà×(Ò(Ñ*Ô*Ð*ð JÐIÀ&ÐIÑIÔIØ]Ð]ÐR\Ð]Ñ]Ô]Ø×,Ò,Ñ.Ô.ð'
ð '
ˆŒ•lÑ#ð ˆtrX   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_namesrj   r%   Úvalue)r­   Úirí   Ú	first_decs      €rV   ú	<genexpr>zGPydanticModelTransformer.adjust_decorator_signatures.<locals>.<genexpr>û  sg   øè è € ð  ð  á &  3ð &Ô/°Ô2°fÒ<ÐrÅÈCÕQXÑAYÔAYÐrÐ^aÔ^gÐkrÒ^rð ð  ð  ð  ð  ð  rX   TN)r  r‰   ÚnamesÚvaluesrj   rk   r   Úoriginal_decoratorsr   Úcalleer    rf   Ú(IMPLICIT_CLASSMETHOD_DECORATOR_FULLNAMESÚMODEL_VALIDATOR_FULLNAMEÚanyÚ	enumeraterè   ÚfuncÚis_class)rd   ro   r.  s     @rV   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Õ5]Ð]Ð]ð "Ô(Ô1Õ5MÒMÐMÝð  ð  ð  ð  å*3°I´NÑ*CÔ*Cð ñ  ô  ñ ô ð Nð .2�C”H”MÔ*øð#	2ð 	2rX   Ú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|r8|r6|j        r/|j        s(|j        s!| j        j        rt;          | j        |¦  «         |j        j        d	d…         D ]ƒ}t@          |j!        vrŒ| j         "                    tG          |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  r:  ÚkeywordsÚitemsÚget_config_updateÚupdateÚdefsÚbodyrj   r   r   Úlvaluesr    r¾   Úrvaluer   Úzipr+  rè   r   r%   r,  r  ÚfailÚhas_alias_generatorr  r  r_   r˜   Úerror_required_dynamic_aliasesr‰   Úmror¼   r»   Úadd_plugin_dependencyr4   rf   Ú
setdefault)rd   r�   r§   Úhas_config_kwargsÚhas_config_from_namespacer¾   ÚexprÚconfig_dataÚstmtÚlhsÚarg_namerí   Úkey_exprÚ
value_exprÚsubstmtr‰   r,  s                    rV   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ð 	@àð@àÔ.ð@ð  Ô0ð@ð 5;Ô4Kð@ð Ô&ÔDð	@õ /¨t¬y¸$Ñ?Ô?Ð?à”H”L   Ô$ð 	/ð 	/ˆDÝ 4¤=Ð0Ð0Øð ŒI×+Ò+Õ,AÀ$Ä-Ñ,PÔ,PÑQÔQÐQØ#œ}­\Ô:¸8ÔD×JÒJÑLÔLð /ð /‘��eØ×!Ò! $¨Ñ.Ô.Ð.Ð.ð/àˆrX   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  z7BaseModel field may only be overridden by another fieldr  Nr   râ   ) r  Úreversedr‰   rL  r¼   r»   r  rM  r4   rf   rA  rÄ   rû   rþ   r0  rŸ   rk   rj   r*   rI  r  ÚsetÚ%_get_assignment_statements_from_blockrD  Ú$collect_field_or_class_var_from_stmtrF  r    r¾   Ú error_extra_fields_on_root_modelÚaddÚlistr1  )rd   r<  rê   r�   Úfound_fieldsÚfound_class_varsr‰   r¾   rõ   r  Úsym_nodeÚcurrent_field_namesÚcurrent_class_vars_namesrS  Úmaybe_fieldrT  s                   rV   r  z6PydanticModelTransformer.collect_fields_and_class_varsP  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ÐKrX   rS  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]   )rE  Úis_unreachabler^  Ú	else_body)rd   rS  rE  s      rV   Ú,_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ð &Ð%Ð%Ð%rX   Úblockr   c              #  ó²   K  — |j         D ]L}t          |t          ¦  «        r|V — Œt          |t          ¦  «        r|                      |¦  «        E d {V —† ŒMd S r]   )rE  rj   r   r   rm  )rd   rn  rS  s      rV   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rX   r   r  ú dict[str, PydanticModelClassVar]ú1PydanticModelField | PydanticModelClassVar | Nonec                óH  — | 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#        ¦  «        |_        |j        r|	rt1          |j        ¦  «        S |  $                    |¦  «        \  }}|r/|j%        s(|j&        s!| j'        j(        rtS          | j        |¦  «         |  *                    |¦  «        }|  +                    ||j        |¦  «        }tY          |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  rF  rj   r    rE   Úis_valid_field_namer¾   Ú
new_syntaxrG  r   r3  rf   ÚDECORATOR_FULLNAMESÚerror_untyped_fieldsr  r‰   r0  rŸ   rk   r"   r(   rI  r*   Úis_classvarr  rA   rŒ   r:   Úget_has_defaultÚ
get_strictrs  Úis_inferredÚanalyze_simple_literal_typer8   r=   Ú
from_errorÚget_alias_infor  r  r_   r˜   rK  Úis_field_frozenÚ_infer_dataclass_attr_init_typerÄ   rÌ   rÎ   )rd   rS  r<  r  r�   rT  ro   rk   Ú	node_typerÉ   rÊ   rú   rÅ   rÈ   rÇ   Ú	init_types                   rV   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�”	àŒ=ð 	3˜[ð 	3å(¨¬Ñ2Ô2Ð2à#'×#6Ò#6°tÑ#<Ô#<Ñ ˆÐ àð	<à!Ô2ð	<à6BÔ6Sð	<ð Ô"Ô@ð	<õ
 +¨4¬9°dÑ;Ô;Ð;Ø×(Ò(¨Ñ.Ô.ˆ	à×8Ò8¸¸c¼hÈÑMÔMˆ	Ý!Ø”Ø/Ø#ØØØØ”Ø”;ØØ”ð
ñ 
ô 
ð 	
rX   ro   r&   r¾   rQ   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__rO   z(Unsupported signature for "__set__" in "ú"zUnsupported "__set__" in ")rŒ   ÚimplicitrA   rj   r:   rŸ   rk   r   Úget_containing_type_infor7   r8   r=   Úunannotatedr9   Ú	arg_kindsr   r
   Ú	arg_typesr  rI  r¾   )	rd   ro   r¾   r¹   ÚdefaultÚtÚsetterÚ
super_infoÚsetter_types	            rV   r€  z8PydanticModelTransformer._infer_dataclass_attr_init_type+  sq  € ð
 ”(ˆØŒ<ð 	ØˆNÝ˜CœHÑ%Ô%ˆõ ˜!�XÑ&Ô&ð 	ØˆNØ”—’˜IÑ&Ô&ˆØñ 	UÝ˜&œ+¥wÑ/Ô/ð UØœV×<Ò<¸YÑGÔG�
Ø!Ð!Ð!�zØ”;ð :Ý"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àˆrX   r  úlist[PydanticModelField]r§   r&  c           
     óN  — d| j         j        j        v r| j         j        j        d         j        sdS | j        j        }t          |j        ¦  «        }|j        p|j	         o|j
        du}t          |j        o|j         ¦  «        }|                      |||||||d¬¦  «        }	|�ro| 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        |         ¦  «        }|�2|dk    r,|                     t9          t:          j        ¦  «        ¦  «        }t?          ||¦  «        }|	                      tC          ||dtD          ¦  «        ¦  «         ŒÆ|  #                    ||¦  «        sPt?          d	¦  «        }|	                      tC          |tI          t:          j%        ¦  «        dtL          ¦  «        ¦  «         tO          | j        | j         d|	tQ          ¦   «         ¬
¦  «         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.
        rc   NFT)rÒ   rÓ   Úrequires_dynamic_aliasesrÕ   r&  rê   rÖ   Ú__Ú_Ú_cli_settings_sourceÚkwargs)rè   Úreturn_type))r  r‰   r0  Úplugin_generatedr_   r—   r™   rÊ   r  r  r  rJ  Úget_field_argumentsr  ri   r  rk   rj   r)   r   rŒ   r9   r7  r+  Ú
startswithÚ	anal_typerŠ  ÚacceptÚChangeExplicitTypeOfAnyr=   Úfrom_omitted_genericsr*   Úappendr   r   Úshould_init_forbid_extrar8   rß   r   Ú
add_methodr;   )rd   r  r§   r&  rê   rÒ   rÓ   rÕ   r’  rè   Úbase_settings_nodeÚbase_settings_init_nodeÚ	func_typeÚarg_idxrU  Úanalyzed_variable_typerÚ   Úvars                     rV   r   z(PydanticModelTransformer.add_initializerQ  s¯  € ð ˜œœÔ-Ð-Ð-°d´i´nÔ6JÈ:Ô6VÔ6gÐ-ØˆFàÔ"Ô-ˆÝ˜FœMÑ*Ô*ˆØÔ0ÐK°FÔ4KÐLÐvÐQWÔQiÐqvÐQvˆ	Ý#'¨Ô(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Ð.Ø1Ð=À(ÐNdÒBdÐBdð 6L×5RÒ5RÝ 7½	Ô8WÑ XÔ Xñ6ô 6Ð2õ $' 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ÐWrX   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æ   rZ   rç   r™  r™   rÊ   r   rŸ  r8   r=   rß   r   r¡  r  rB   r‰   )
rd   r  r§   r&  rê   Úset_strÚoptional_set_strÚfields_set_argumentrè   r§  s
             rV   r!  z3PydanticModelTransformer.add_model_construct_method‡  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¾   rk   rj   r*   rÇ   Úis_propertyr"   r  Úfinal_iterationÚdeferrQ   Ú	TypeErrorÚreprre   r¸   rÞ   rf   Ú	_fullnamer&   r   )
rd   r  rƒ   r
  r‰   r  re  r§  Úvar_strrÁ   s
             rV   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)rJ  )úbuiltins.Trueúbuiltins.Falser¿  r¬   )r  rj   r%   r,  r   r¾   Úerror_invalid_config_valuer  r:  r    rf   )rd   r¾   rí   r=  r½  rJ  s         rV   rB  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ØˆtrX   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¾  )rG  rj   r'   r   r3  r#   rf   ÚFIELD_FULLNAMErH  rè   r+  re   r   r    ©rS  rQ  rí   r¾   s       rV   ry  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Ð1rX   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)rG  rj   r   r3  r#   rf   rÄ  rH  rè   r+  r    rÅ  s       rV   rz  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ØˆtrX   útuple[str | None, bool]c                óÊ  — | j         }t          |t          ¦  «        rdS t          |t          ¦  «        r/t          |j        t
          ¦  «        r|j        j        t          k    sdS d|j        v r&|j	        |j         
                    d¦  «                 }n1d|j        v r&|j	        |j         
                    d¦  «                 }ndS t          |t          ¦  «        r	|j        df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.
        )NFÚvalidation_aliasrÅ   F)NT)rG  rj   r'   r   r3  r#   rf   rÄ  r+  rè   Úindexr%   r,  )rS  rQ  rí   s      rV   r~  z'PydanticModelTransformer.get_alias_info  sã   € ð Œ{ˆÝ�d�HÑ%Ô%ð 	à�;õ �t�XÑ&Ô&ð	Ý+5°d´kÅ7Ñ+KÔ+Kð	ØPTÔP[ÔPdÕhvÒPvÐPvð �;à ¤Ð/Ð/Ø”)˜DœN×0Ò0Ð1CÑDÔDÔEˆCˆCØ˜œÐ&Ð&Ø”)˜DœN×0Ò0°Ñ9Ô9Ô:ˆCˆCà�;å�c�7Ñ#Ô#ð 	Ø”9˜eÐ#Ð#à�:rX   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¿  )rG  rj   r'   r   r3  r#   rf   rÄ  r7  r+  rè   r    )rS  rQ  r-  rU  rí   s        rV   r  z(PydanticModelTransformer.is_field_frozen5  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ð $ð ˆurX   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 )râ   )rÒ   rÓ   rÔ   rÕ   rƒ   rÖ   r×   )rÈ   rà   r  r¾   )r­   r  rÖ   r‰   rê   r&  rÓ   r’  rd   rÒ   rÕ   s     €€€€€€€€€rV   ú
<listcomp>z@PydanticModelTransformer.get_field_arguments.<locals>.<listcomp>^  s~   ø€ ð 
ð 
ð 
ð Øð
ð #(Ô"9ð
Ø×ÒØØØ)Ø7ÐF¸;Ø#Ø”IØ)AØ#0Ð#I°U´ZÀ6Ò5Ið ñ 	ô 	ð
ð 
ð 
rX   )r  r‰   )rd   r  rÒ   rÓ   rÕ   r’  r&  rê   rÖ   Ú	argumentsr‰   s   ` ``````` @rV   r™  z,PydanticModelTransformer.get_field_argumentsN  sp   øøøøøøøøø€ ð ŒyŒ~ˆð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð  ð
ñ 
ô 
ˆ	ð ÐrX   c                óœ   — |j         s1|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  r  Úis_dynamic_alias_presentr™   rJ  r½  r_   r–   )rd   r  r§   s      rV   r   z1PydanticModelTransformer.should_init_forbid_extran  s]   € ð Ô'ð 	¨6Ô+Bð 	Ø×,Ò,¨VµT¸&Ô:TÑ5UÔ5UÑVÔVð Ø�uØÔð 	Ø�4ØÔ!Ô3Ð3rX   rJ  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  rJ  r  s      rV   rÒ  z1PydanticModelTransformer.is_dynamic_alias_present{  sZ   € ð
 ð 	ð 	ˆEØÔ&ð Ø�t�tðàð 	 Øð  ð  �Ø”;Ð&Ø˜4˜4ð 'àˆurX   N)
r�   r   r‚   r  rƒ   r1   r_   r^   rR   r[   )rR   r™   )rR   r[   )rR   r:  )r<  r:  rê   r™   rR   rY  )rS  r   rR   ri  )rn  r   rR   ri  )rS  r   r<  r:  r  rp  rR   rq  )ro   r&   r¾   rQ   r¹   r   rR   rÏ   )
r  r�  r§   r:  r&  r™   rê   r™   rR   r[   )r  r�  rƒ   r1   r
  r™   rR   r[   rÿ   )r¾   rQ   rí   r   r=  r™   rR   rº  )rS  r   rR   r™   )rS  r   rR   rË   )rS  r   rR   rÇ  )r  r�  rÒ   r™   rÓ   r™   rÕ   r™   r’  r™   r&  r™   rê   r™   rÖ   r™   rR   rÌ  )r  r�  r§   r:  rR   r™   )r  r�  rJ  r™   rR   r™   )r�   r�   r‘   r’   r  r±   rc   r„   r#  r  r  rm  r^  r_  r€  r   r!  r"  rB  Ústaticmethodry  rz  r~  r  r™  r   rÒ  r¬   rX   rV   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ðG
ð G
ð G
ð G
ðR$ð $ð $ð $ðL4Xð 4Xð 4Xð 4Xðl&
ð &
ð &
ð &
ðPBð Bð Bð Bð>!ð !ð !ð !ð !ðF ð2ð 2ð 2ñ „\ð2ð* ðð ð ñ „\ðð ðð ð ñ „\ðð: ðð ð ñ „\ððB */ðð ð ð ð ð@4ð 4ð 4ð 4ð ðð ð ñ „\ðð ð rX   r€   c                  ó,   ‡ — e Zd ZdZdˆ fd„Zdd
„Zˆ xZS )r�  z<A type translator used to change type of Any's, if explicit.Útype_of_anyrÍ   rR   r[   c                óV   •— || _         t          ¦   «                              ¦   «          d S r]   )Ú_type_of_anyrb   rc   )rd   rÖ  re   s     €rV   rc   z ChangeExplicitTypeOfAny.__init__�  s'   ø€ Ø'ˆÔÝ‰Œ×ÒÑÔÐÐÐrX   rŒ  r8   r<   c                óf   — |j         t          j        k    r|                     | j        ¬¦  «        S |S )N)rÖ  )rÖ  r=   rß   rã   rØ  )rd   rŒ  s     rV   Ú	visit_anyz!ChangeExplicitTypeOfAny.visit_any‘  s.   € ØŒ=�IÔ.Ò.Ð.Ø—?’?¨tÔ/@�?ÑAÔAÐAàˆHrX   )rÖ  rÍ   rR   r[   )rŒ  r8   rR   r<   )r�   r�   r‘   r’   rc   rÚ  r“   r”   s   @rV   r�  r�  Š  sW   ø€ € € € € ØFÐFðð ð ð ð ð ðð ð ð ð ð ð ð rX   r�  c                  óD   — e Zd ZdZ	 	 	 	 	 	 	 	 ddd„Zdd„Zdd„Zdd„ZdS )r:  z(Pydantic mypy plugin model config class.Nr½  rË   r
  rµ   r  r  r  rJ  rÊ   c	                óv   — || _         || _        || _        || _        || _        || _        || _        || _        d S r]   )r½  r
  rµ   r  r  r  rJ  rÊ   )	rd   r½  r
  rµ   r  r  r  rJ  rÊ   s	            rV   rc   zModelConfigData.__init__›  sF   € ð )ˆÔØˆŒØ.ˆÔØ 0ˆÔØ!2ˆÔØ 0ˆÔØ#6ˆÔ ØˆŒˆˆrX   rR   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¬   )r­   ÚkÚvs      rV   r®   z3ModelConfigData.get_values_dict.<locals>.<dictcomp>´  s   € ÐHÐHÐH™˜˜A¸!¸-��1¸-¸-¸-rX   )Ú__dict__rA  r¯   s    rV   r$  zModelConfigData.get_values_dict¯  s'   € ð
 IÐH ¤×!4Ò!4Ñ!6Ô!6ÐHÑHÔHÐHrX   r§   rº  r[   c                óˆ   — |€dS |                      ¦   «                              ¦   «         D ]\  }}t          | ||¦  «         ŒdS )z$Update Pydantic model config values.N)r$  rA  r¢   )rd   r§   rß  rà  s       rV   rC  zModelConfigData.update¶  sV   € àˆ>ØˆFØ×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4ð 	 ð 	 ‰DˆAˆqÝ�D˜!˜QÑÔÐÐð	 ð 	 rX   r¨   rQ   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¢   )rd   r¨   r,  s      rV   rN  zModelConfigData.setdefault½  s2   € å�4˜ÑÔÐ%Ý�D˜#˜uÑ%Ô%Ð%Ð%Ð%ð &Ð%rX   )NNNNNNNN)r½  rË   r
  rË   rµ   rË   r  rË   r  rË   r  rË   rJ  rË   rÊ   rË   r°   )r§   rº  rR   r[   )r¨   rQ   r,  r   rR   r[   )r�   r�   r‘   r’   rc   r$  rC  rN  r¬   rX   rV   r:  r:  ˜  s�   € € € € € Ø2Ð2ð %)Ø"Ø'+Ø(,Ø)-Ø(,Ø+/Ø"ðð ð ð ð ð(Ið Ið Ið Ið ð  ð  ð  ð&ð &ð &ð &ð &ð &rX   r:  r‰   r)   r™   c                ó6   — |                       t          ¦  «        S )zXReturn whether the type info is a root model subclass (or the `RootModel` class itself).)rl   ÚROOT_MODEL_FULLNAME)r‰   s    rV   rê   rê   Ã  s   € à�=Š=Õ,Ñ-Ô-Ð-rX   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   r[   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)rI  Ú	ERROR_ORM)rç  rƒ   r¹   s      rV   r½   r½   Ñ  s-   € à‡H‚HÐA�ÐAÐAÐAÀ7ÕQZ€HÑ[Ô[Ð[Ð[Ð[rX   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)rI  ÚERROR_CONFIG)r¾   rƒ   r¹   s      rV   rÁ  rÁ  Ö  s,   € à‡H‚HÐ1¨$Ð1Ð1Ð1°7Å€HÑNÔNÐNÐNÐNrX   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)rI  ÚERROR_ALIAS©rƒ   r¹   s     rV   rK  rK  Û  s#   € ð
 ‡H‚HÐ2°GÅ+€HÑNÔNÐNÐNÐNrX   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)rI  ÚERROR_UNEXPECTED)rÁ   rƒ   r¹   ÚlinkÚfull_messages        rV   r¸   r¸   ã  sO   € ð
 D€DØWÈVÐWÐWÐW€LØÐ\¸TÐ\Ð\Ð\Ñ\€LØ‡H‚Hˆ\˜7Õ)9€HÑ:Ô:Ð:Ð:Ð:rX   c                ó@   — |                       d|t          ¬¦  «         dS )z;Emits an error when there is an untyped field in the model.zUntyped fields disallowedré  N)rI  ÚERROR_UNTYPEDrð  s     rV   rw  rw  î  s!   € à‡H‚HÐ(¨'½€HÑFÔFÐFÐFÐFrX   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)rI  ÚERROR_EXTRA_FIELD_ROOT_MODELrð  s     rV   r`  r`  ó  s"   € à‡H‚HÐAÀ7ÕQm€HÑnÔnÐnÐnÐnrX   Fú8SemanticAnalyzerPluginInterface | CheckerPluginInterfacer�   r   rè   rÌ  r—  rå   rÏ   Útvar_defúTypeVarType | Noner«  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˜  rj   rk   r   rD  rE  Úremover1   r¬  Únamed_generic_typer>   rB   r   r*   r   rÛ   rŸ  rÚ   r¾   rÝ   r9   Ú	variablesr   r!   r3   rŒ   r9  rf   r¸  rÌ   rC   Úis_decoratedr«  r   r    r&   r   Údefn)rƒ   r�   r¾   rè   r—  rå   rü  r«  r‰   ro   Úfunction_typeÚfirstrŠ  r+  r‰  rí   Ú	signaturer8  Úr_namerà  Údecs                        rV   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Ð"Ø×Ò˜Ô,Ñ-Ô-Ð-Ø×Ò˜œÔ*Ñ+Ô+Ð+Ø×Ò˜œÑ"Ô"Ð"Ð"å˜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Ñ$Ô$Ð$Ð$Ð$rX   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)
rx   ÚsysÚversion_infoÚtomllibÚtomliÚImportErrorÚwarningsÚwarnÚopenÚload)r�   Útoml_r  Úrfs       rV   rž   rž   P  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)rP   rQ   rR   rS   )r{   r.   rR   r<   )r‰   r)   rR   r™   )rç  rQ   rƒ   r,   r¹   r   rR   r[   )r¾   rQ   rƒ   r1   r¹   r   rR   r[   )rƒ   r1   r¹   r   rR   r[   )rÁ   rQ   rƒ   rñ  r¹   r   rR   r[   )rƒ   r,   r¹   r   rR   r[   )NNF)rƒ   rû  r�   r   r¾   rQ   rè   rÌ  r—  r<   rå   rÏ   rü  rý  r«  r™   rR   r[   )r�   rQ   rR   r
  )‚r’   Ú
__future__r   r  Úcollections.abcr   Úconfigparserr   Útypingr   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.type_visitorr6   Úmypy.typeopsr7   Ú
mypy.typesr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   Úmypy.typevarsrB   Ú	mypy.utilrC   Úmypy.versionrD   Úmypy_versionÚpydantic._internalrE   Úpydantic.versionrF   r¥   r¼   rm   r  rå  rr   rÄ  ÚDATACLASS_FULLNAMEr5  rv  r4  ÚMYPY_VERSION_TUPLEr­  rW   rU   r^   ry   rÄ   r  r€   r�  r:  rê   rë  rí  rï  rô  rø  ÚERROR_FIELD_DEFAULTSrú  r½   rÁ  rK  r¸   rw  r`  r¡  rž   r¬   rX   rV   ú<module>r3     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Ð ðð ð Ð ð ,?ÐBtÐAuÑ+uÐ (ð (Ð'¨Ñ5Ô5Ð Ø€ð €ðð ð ð ð3@ð 3@ð 3@ð 3@ð 3@�Vñ 3@ô 3@ð 3@ðl+Cð +Cð +Cð +Cð +Cñ +Cô +Cð +Cð\#ð #ð #ð #ð4PTð PTð PTð PTð PTñ PTô PTð PTðf
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð2að að að að añ aô að aðHð ð ð ð ˜nñ ô ð ð(&ð (&ð (&ð (&ð (&ñ (&ô (&ð (&ðV.ð .ð .ð .ð
 ˆ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ð ð ð ð ð rX   