§
    ©	Êj·û  ã                  ó  — d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
 ddlZddlmZ ddlmZmZ dd	lmZmZmZ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/m0Z0m1Z1m2Z2m3Z3 dd
l4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZC ddlDmEZE ddlFmGZG ddlHmIZI ddlJmKZK ddlmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZU ddlVmWZW ddlXmYZY ddlZm[Z\ ddl]m^Z^ ddl_m`Z` dZadZbdZcdZddZedZfdZgd Zhd!Zid"Zjd#Zkd$Zlh d%£Zmemd&hz
  Zn e`e\¦  «        Zod'Zpd(Z[dqd-„Zq G d.„ d/e;¦  «        Zr G d0„ d1¦  «        Zsdrd5„Zt G d6„ d7¦  «        Zu G d8„ d9¦  «        Zv G d:„ d;¦  «        Zw G d<„ d=eI¦  «        Zx G d>„ d?¦  «        ZydsdC„Zz edDdEdF¦  «        Z{ edGdHdF¦  «        Z| edIdJdF¦  «        Z} edKdLdF¦  «        Z~ edMdNdF¦  «        Z edMdOdF¦  «        Z€ edMdPdF¦  «        Z�dtdW„Z‚dudZ„Zƒdvd[„Z„dwd^„Z…dvd_„Z†dxd`„Z‡	 	 	 dydzdm„Zˆd{dp„Z‰dS )|z^This module includes classes and functions designed specifically for use with the mypy plugin.é    )ÚannotationsN)ÚCallableÚIterator)ÚConfigParser)ÚAny)Ú	ErrorCode)Úexpand_typeÚexpand_type_by_instance)!Ú	ARG_NAMEDÚARG_NAMED_OPTÚARG_OPTÚARG_POSÚ	ARG_STAR2ÚGDEFÚ	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ÚDynamicClassDefContextÚMethodContextÚPluginÚReportConfigContextÚSemanticAnalyzerPluginInterface)Údeserialize_and_fixup_type)Úset_callable_name)Úhas_placeholder)Ú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-mypy-metadata-tagzpydantic.main.BaseModelzpydantic.main.create_modelz#pydantic_settings.main.BaseSettingszpydantic.root_model.RootModelz5pydantic._internal._model_construction.ModelMetaclassz'pydantic.root_model._RootModelMetaclassz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_validatorrK   ú0pydantic.functional_serializers.model_serializerrP   Ú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)rS   s    ú=C:\Projects\Muse2API\.venv\Lib\site-packages\pydantic/mypy.pyÚpluginrZ   u   s
   € õ Ðó    c                  ód   ‡ — 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
dd„Zdd„Zˆ xZS ) rX   zThe Pydantic mypy plugin.Úoptionsr,   rU   ÚNonec                ó®   •— t          |¦  «        | _        | j                             ¦   «         | _        t	          ¦   «                              |¦  «         d S ©N)ÚPydanticPluginConfigÚplugin_configÚto_dataÚ_plugin_dataÚsuperÚ__init__)Úselfr]   Ú	__class__s     €rY   rf   zPydanticPlugin.__init__‡   sH   ø€ Ý1°'Ñ:Ô:ˆÔØ Ô.×6Ò6Ñ8Ô8ˆÔÝ‰Œ×Ò˜Ñ!Ô!Ð!Ð!Ð!r[   ÚfullnamerT   ú(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)rg   ri   Úsyms      rY   Úget_base_class_hookz"PydanticPlugin.get_base_class_hookŒ   sZ   € à×)Ò)¨(Ñ3Ô3ˆØð 	A•:˜cœh­Ñ1Ô1ð 	AàŒx× Ò Õ!3Ñ4Ô4ð AØÔ@Ð@Øˆtr[   c                ó4   — |t           t          fv r| j        S dS )z,Update Pydantic `ModelMetaclass` definition.N)ÚMODEL_METACLASS_FULLNAMEÚROOT_MODEL_METACLASS_FULLNAMEÚ)_pydantic_model_metaclass_marker_callback©rg   ri   s     rY   Úget_metaclass_hookz!PydanticPlugin.get_metaclass_hook•   s"   € àÕ0Õ2OÐPÐPÐPØÔAÐAØˆtr[   ú&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_callbackrx   s     rY   Úget_method_hookzPydanticPlugin.get_method_hook›   s#   € à×Ò˜[Ñ)Ô)ð 	,Ý+Ð+Øˆtr[   ú/Callable[[DynamicClassDefContext], None] | Nonec                ó*   — |t           k    r| j        S dS )zARecognize `create_model()` calls as dynamic BaseModel subclasses.N)ÚCREATE_MODEL_FULLNAMEÚ_pydantic_create_model_callbackrx   s     rY   Úget_dynamic_class_hookz%PydanticPlugin.get_dynamic_class_hook¡   s   € àÕ,Ò,Ð,ØÔ7Ð7Øˆtr[   Úctxr2   údict[str, Any]c                ó   — | j         S )zjReturn all plugin config data.

        Used by mypy to determine if cache needs to be discarded.
        )rd   )rg   r„   s     rY   Úreport_config_dataz!PydanticPlugin.report_config_data§   s   € ð
 Ô Ð r[   r.   c                óz   — t          |j        |j        |j        | j        ¦  «        }|                     ¦   «          d S r`   )ÚPydanticModelTransformerÚclsÚreasonÚapirb   Ú	transform)rg   r„   Útransformers      rY   rq   z3PydanticPlugin._pydantic_model_class_maker_callback®   s6   € Ý.¨s¬w¸¼
ÀCÄGÈTÔM_Ñ`Ô`ˆØ×ÒÑÔÐÐÐr[   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)rb   Údebug_dataclass_transformrŠ   ÚinfoÚdeclared_metaclassÚgetattrÚtyper�   )rg   r„   Úinfo_metaclasss      rY   rw   z8PydanticPlugin._pydantic_model_metaclass_marker_callback²   sm   € ð ÔÔ7ð 	ØˆFØœœÔ8ˆØÐNÐNÐNÑNÔNˆ~Ý�>Ô&Ð(BÀDÑIÔIð 	@Ø;?ˆNÔÔ8Ð8Ð8ð	@ð 	@r[   r/   c                óF  — t           }t          |j        j        |j        j        d¬¦  «        D �]\  }}|dk    rút          |t          ¦  «        rå|j        �Þt          |j        t          ¦  «        r|j        j	        }ŒOt          |j        t          ¦  «        r�t          |j        j        ¦  «        }t          |t          ¦  «        r|j        j	        }Œ¤t          |t          ¦  «        rMt          |j        ¦  «        }t          |t           ¦  «        r dS t          |t          ¦  «        r|j        j	        }�Œ|j                             |¦  «        }|�t          |j        t          ¦  «        s=|j                             t           ¦  «        }|�t          |j        t          ¦  «        sdS |j        }t'          |¦  «        }	t          |	t          ¦  «        sJ ‚|j                             |j        |	|j        j        ¦  «        }
|j        |
_        |j                             |j        t3          t4          |
¦  «        ¦  «         d|
j	        v rX|
j	                             dd¬¦  «        \  }}t3          t8          |
¦  «        |j        j        |j        j                 j        |<   dS dS )	zFMake variables assigned from `create_model()` usable as types by mypy.T©ÚstrictÚ__base__Nú@ú.é   )Úmaxsplit) rp   ÚzipÚcallÚ	arg_namesÚargsrm   r$   rn   r*   ri   r+   rD   r•   r=   rA   ÚitemrB   rŒ   Úlookup_fully_qualified_or_nonerE   Úbasic_new_typeinfoÚnameÚlineÚmetaclass_typeÚadd_symbol_table_noder'   r   Úrsplitr   ÚmodulesÚ
cur_mod_idÚnames)rg   r„   Úbase_fullnameÚarg_nameÚarg_exprÚarg_typeÚ	item_typeÚbase_symÚ	base_infoÚbase_instancer’   Ú_r¦   s                rY   r‚   z.PydanticPlugin._pydantic_create_model_callback¿   sR  € õ +ˆÝ"% c¤hÔ&8¸#¼(¼-ÐPTÐ"UÑ"UÔ"Uð 	Dñ 	DÑˆH�hØ˜:Ò%Ð%­*°X½wÑ*GÔ*GÐ%ÈHÌMÐLeÝ˜hœm­XÑ6Ô6ð DØ$,¤MÔ$:�M�MÝ ¤­sÑ3Ô3ð DÝ.¨x¬}Ô/AÑBÔB�HÝ! (­HÑ5Ô5ð 
DØ(0¬Ô(>˜˜Ý# H­hÑ7Ô7ð DÝ$3°H´MÑ$BÔ$B˜	Ý% iµÑ=Ô=ð #ð #˜F˜FÝ% iµÑ:Ô:ð DØ,5¬NÔ,C˜Mùà”7×9Ò9¸-ÑHÔHˆØÐ¥:¨h¬m½XÑ#FÔ#FÐà”w×=Ò=Õ>PÑQÔQˆHØÐ¥z°(´-ÅÑ'JÔ'JÐØ�à”Mˆ	Ý% iÑ0Ô0ˆÝ˜-­Ñ2Ô2Ð2Ð2Ð2àŒw×)Ò)¨#¬(°MÀ3Ä8Ä=ÑQÔQˆØ'Ô6ˆÔàŒ×%Ò% c¤hµÅÀdÑ0KÔ0KÑLÔLÐLð �$”-ÐÐØ”m×*Ò*¨3¸Ð*Ñ;Ô;‰GˆAˆtÝ>MÍdÐTXÑ>YÔ>YˆCŒGŒO˜CœGÔ.Ô/Ô5°dÑ;Ð;Ð;ð  Ðr[   ©r]   r,   rU   r^   )ri   rT   rU   rj   )ri   rT   rU   rz   )ri   rT   rU   r   )r„   r2   rU   r…   )r„   r.   rU   r^   )r„   r/   rU   r^   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rf   rs   ry   r~   rƒ   r‡   rq   rw   r‚   Ú__classcell__©rh   s   @rY   rX   rX   „   sï   ø€ € € € € Ø#Ð#ð"ð "ð "ð "ð "ð "ð
ð ð ð ðð ð ð ðð ð ð ðð ð ð ð!ð !ð !ð !ð ð  ð  ð  ð@ð @ð @ð @ð*Zð *Zð *Zð *Zð *Zð *Zð *Zð *Zr[   rX   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 )ra   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‘   r]   r,   rU   r^   c           
     ó  — |j         €d S t          |j         ¦  «        }|�æ|                     di ¦  «                             di ¦  «        }| j        D ]P}|                     |d¦  «        }t	          |t
          ¦  «        st          d|› �¦  «        ‚t          | ||¦  «         ŒQ|                     ¦   «         t          | j        ¦  «        z
  }t          |¦  «        D ])}t          d|› d||         › �t          j        ¬¦  «         Œ*d S t          ¦   «         }|                     |j         ¦  «         | j        D ]0}|                     t"          |d¬¦  «        }t          | ||¦  «         Œ1|                     t"          ¦  «        rˆt          |                     t"          ¦  «        ¦  «        t          | j        ¦  «        z
  }t          |¦  «        D ]>}t          d|› d|                     t"          |¦  «        › �t          j        ¬¦  «         Œ=d S d S )	NÚtoolrJ   Fz/Configuration value must be a boolean for key: z&[pydantic-mypy]: Unrecognized option: z = )Úfile)Úfallback)Úconfig_fileÚ
parse_tomlÚgetÚ	__slots__rm   rÂ   Ú
ValueErrorÚsetattrÚkeysÚsetÚsortedÚprintÚsysÚstderrr   ÚreadÚ
getbooleanÚCONFIGFILE_KEYÚhas_sectionr]   )rg   r]   Útoml_configÚconfigÚkeyÚsettingÚunknown_keysrb   s           rY   rf   zPydanticPluginConfig.__init__  s3  € ØÔÐ&ØˆFå  Ô!4Ñ5Ô5ˆØÐ"Ø —_’_ V¨RÑ0Ô0×4Ò4°_ÀbÑIÔIˆFØ”~ð ,ð ,�Ø Ÿ*š* S¨%Ñ0Ô0�Ý! '­4Ñ0Ô0ð ^Ý$Ð%\ÐWZÐ%\Ð%\Ñ]Ô]Ð]Ý˜˜c 7Ñ+Ô+Ð+Ð+Ø!Ÿ;š;™=œ=­3¨t¬~Ñ+>Ô+>Ñ>ˆLÝ˜lÑ+Ô+ð gð g�ÝÐT¸sÐTÐTÀvÈcÄ{ÐTÐTÕ[^Ô[eÐfÑfÔfÐfÐfðgð gõ )™NœNˆMØ×Ò˜wÔ2Ñ3Ô3Ð3Ø”~ð ,ð ,�Ø'×2Ò2µ>À3ÐQVÐ2ÑWÔW�Ý˜˜c 7Ñ+Ô+Ð+Ð+Ø×(Ò(­Ñ8Ô8ð Ý" =×#8Ò#8½Ñ#HÔ#HÑIÔIÍCÐPTÔP^ÑL_ÔL_Ñ_�Ý! ,Ñ/Ô/ð ð �CÝØqÀÐqÐqÈ×IZÒIZÕ[iÐknÑIoÔIoÐqÐqÝ œZðñ ô ð ð ðð ðð r[   r…   c                ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )z/Returns a dict of config names to their values.c                ó2   •— i | ]}|t          ‰|¦  «        “ŒS © )r”   )Ú.0rÙ   rg   s     €rY   ú
<dictcomp>z0PydanticPluginConfig.to_data.<locals>.<dictcomp>!  s%   ø€ ÐBÐBÐB¨C�•W˜T 3Ñ'Ô'ÐBÐBÐBr[   )rÊ   ©rg   s   `rY   rc   zPydanticPluginConfig.to_data  s   ø€ àBÐBÐBÐB°4´>ÐBÑBÔBÐBr[   Nr·   ©rU   r…   )r¸   r¹   rº   r»   rÊ   Ú__annotations__rf   rc   rÞ   r[   rY   ra   ra   ì   s‡   € € € € € € ðð ð€Ið ÐÐÑØÐÐÑØ'Ð'Ð'Ñ'Ø#Ð#Ð#Ñ#ðð ð ð ð:Cð Cð Cð Cð Cð Cr[   ra   r„   r0   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: z
 (of type ú)NrØ   Úfrom_attributesT)r•   rm   rA   r£   r<   Úret_typer=   rh   r¸   Úerror_unexpected_behaviorrŒ   ÚcontextÚdefault_return_typeÚmetadatarÉ   ÚMETADATA_KEYro   rp   Úerror_from_attributesr¦   )r„   Úctx_typeÚ
model_typeÚdetailÚpydantic_metadataræ   s         rY   r}   r}   $  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ØÔ"Ð"r[   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¦   rT   Úaliasú
str | NoneÚ	is_frozenrÂ   Úhas_dynamic_aliasÚhas_defaultr™   úbool | Noner§   ÚintÚcolumnr•   úType | Noner’   r*   c                ó’   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        d S r`   )
r¦   rô   rö   r÷   rø   r™   r§   rû   r•   r’   )rg   r¦   rô   rö   r÷   rø   r™   r§   rû   r•   r’   s              rY   rf   zPydanticModelField.__init__A  sP   € ð ˆŒ	ØˆŒ
Ø"ˆŒØ!2ˆÔØ&ˆÔØˆŒØˆŒ	ØˆŒØˆŒ	ØˆŒ	ˆ	ˆ	r[   Úcurrent_infoÚtypedÚmodel_strictÚforce_optionalÚ	use_aliasrŒ   r3   Úforce_typevars_invariantÚis_root_model_rootrU   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	   r;   r@   Úspecial_formr   r   rø   r   r   )rg   rþ   rÿ   r   r  r  rŒ   r  r  r  r™   r  s               rY   Úto_argumentzPydanticModelField.to_argumentY  s«   € ð —;’;˜|¨S°)Ð=UÑVÔVˆà!%¤Ð!4��¸$¼+ˆØð 	>�Fð 	>Ø"×.Ò.¨|¸SÐTXÐ.ÑYÔYˆOˆOå%¥iÔ&<Ñ=Ô=ˆOåØØ+Øà!ðV•�à#1ÐT°TÔ5EÐT•-�-Í9ð
ñ 
ô 
ð 	
r[   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)rm   r•   rB   Úcopy_modifiedr   Úvariancer’   Ú	self_typer8   Ústrict_optional_setr]   Ústrict_optionalrE   r=   r¢   r	   ÚidÚis_root_modelr
   rC   )rg   rþ   rŒ   r  r  Úmodified_typeÚfilled_with_typevarsÚargÚexpanded_typeÚ	root_typeÚexpanded_root_types              rY   r	   zPydanticModelField.expand_typev  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	   )rg   rþ   rŒ   r  r  r¦   s         rY   r  zPydanticModelField.to_var£  sF   € ð ð 	˜œÐ/Ø”:ˆDˆDà”9ˆDå�4˜×)Ò)¨,¸Ð=UÑVÔVÑWÔWÐWr[   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    rY   r   zPydanticModelField.serialize²  sY   € àŒyÐÐˆyà”IØ”ZØœØ!%Ô!7ØÔ+Ø”kØ”IØ”kØ”I×'Ò'Ñ)Ô)ð

ð 

ð 
	
r[   Údatac                ó†   — |                      ¦   «         }t          |                     d¦  «        |¦  «        } | d||dœ|¤ŽS )úABased on mypy.plugins.dataclasses.DataclassAttribute.deserialize.r•   )r•   r’   rÞ   )Úcopyr4   Úpop)rŠ   r’   r!  rŒ   Útyps        rY   ÚdeserializezPydanticModelField.deserializeÁ  sI   € ð �yŠy‰{Œ{ˆÝ(¨¯ª°&Ñ)9Ô)9¸3Ñ?Ô?ˆØˆsÐ/˜ $Ð/Ð/¨$Ð/Ð/Ð/r[   Ú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•   r8   r  r]   r  r:   r’   )rg   r(  rŒ   s      rY   Ú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¦   rT   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Œ   r3   r  rÂ   r  rÂ   rU   r   )FF)
rþ   r*   rŒ   r3   r  rÂ   r  rÂ   rU   rü   ©F)
rþ   r*   rŒ   r3   r  rÂ   r  rÂ   rU   r+   ©rU   r   )r’   r*   r!  r   rŒ   r3   rU   ró   )r(  r*   rŒ   r3   rU   r^   )r¸   r¹   rº   r»   rf   r  r	   r  r   Úclassmethodr'  r*  rÞ   r[   rY   ró   ró   >  sÖ   € € € € € Ø?Ð?ðð ð ð ð0
ð 
ð 
ð 
ðB */Ø"'ð+ð +ð +ð +ð +ðd */ðXð Xð Xð Xð Xð
ð 
ð 
ð 
ð ð0ð 0ð 0ñ „[ð0ðTð Tð Tð Tð Tð Tr[   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¦   )rg   r¦   s     rY   rf   zPydanticModelClassVar.__init__Ú  s   € ØˆŒ	ˆ	ˆ	r[   r!  r   rU   c                ó:   — |                      ¦   «         } | di |¤ŽS )r#  rÞ   )r$  )rŠ   r!  s     rY   r'  z!PydanticModelClassVar.deserializeÝ  s#   € ð �yŠy‰{Œ{ˆØˆsˆ{ˆ{�Tˆ{ˆ{Ðr[   c                ó   — d| j         iS )r  r¦   r1  rá   s    rY   r   zPydanticModelClassVar.serializeã  s   € ð �D”Ið
ð 	
r[   N)r!  r   rU   r/  r,  )r¸   r¹   rº   r»   rf   r-  r'  r   rÞ   r[   rY   r/  r/  Ñ  sa   € € € € € ðð ðð ð ð ðð ð ñ „[ðð

ð 
ð 
ð 
ð 
ð 
r[   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Œ   r3   rb   ra   rU   r^   c                ó>   — || _         || _        || _        || _        d S r`   )Ú_clsÚ_reasonÚ_apirb   )rg   rŠ   r‹   rŒ   rb   s        rY   rf   z!PydanticModelTransformer.__init__ü  s'   € ð ˆŒ	ØˆŒØˆŒ	à*ˆÔÐÐr[   rÂ   c                ó2  — | j         j        }|j                             t          i ¦  «         t          |¦  «        }|                      ¦   «         }|                      ||¦  «        \  }}|�|€'| j        j	        s| j         
                    ¦   «          dS |D ]E}|j        �t          |j        ¦  «        r(| j        j	        s| j         
                    ¦   «           dS ŒF|                     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)r6  c                óB   — i | ]}|j         |                     ¦   «         “ŒS rÞ   ©r¦   r   )rß   Úfields     rY   rà   z6PydanticModelTransformer.transform.<locals>.<dictcomp>1  s&   € ÐIÐIÐI¸�u”z 5§?¢?Ñ#4Ô#4ÐIÐIÐIr[   c                óB   — i | ]}|j         |                     ¦   «         “ŒS rÞ   rC  )rß   Ú	class_vars     rY   rà   z6PydanticModelTransformer.transform.<locals>.<dictcomp>2  s(   € Ð]Ð]Ð]ÀY˜9œ>¨9×+>Ò+>Ñ+@Ô+@Ð]Ð]Ð]r[   )ÚfieldsÚ
class_varsrØ   )r>  r’   rë   Ú
setdefaultÚMETADATA_TAG_KEYr  Úcollect_configÚcollect_fields_and_class_varsr@  Úfinal_iterationÚdeferr•   r6   ro   ÚBASESETTINGS_FULLNAMEÚadd_initializerÚadd_model_construct_methodÚ
set_frozenr6  Úadjust_decorator_signaturesÚget_values_dictrì   )rg   r’   Úis_a_root_modelrØ   rG  rH  rD  Úis_settingss           rY   r�   z"PydanticModelTransformer.transform	  s«  € ð ŒyŒ~ˆð 	Œ× Ò Õ!1°2Ñ6Ô6Ð6Ý'¨Ñ-Ô-ˆØ×$Ò$Ñ&Ô&ˆØ!×?Ò?ÀÈÑXÔXÑˆ�
Øˆ>˜ZÐ/à”9Ô,ð "Ø”	—’Ñ!Ô!Ð!Ø�5Øð 	ð 	ˆEØŒzÐ!¥_°U´ZÑ%@Ô%@Ð!ð ”yÔ0ð &Ø”I—O’OÑ%Ô%Ð%Ø�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Ñ#ð ˆtr[   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)r¡   rm   r&   Úvalue)rß   Úir  Ú	first_decs      €rY   ú	<genexpr>zGPydanticModelTransformer.adjust_decorator_signatures.<locals>.<genexpr>J  sg   øè è € ð  ð  á &  3ð &Ô/°Ô2°fÒ<ÐrÅÈCÕQXÑAYÔAYÐrÐ^aÔ^gÐkrÒ^rð ð  ð  ð  ð  ð  r[   TN)r>  r’   r­   Úvaluesrm   rn   r   Úoriginal_decoratorsr   Úcalleer!   ri   Ú(IMPLICIT_CLASSMETHOD_DECORATOR_FULLNAMESÚMODEL_VALIDATOR_FULLNAMEÚanyÚ	enumerater¢   ÚfuncÚis_class)rg   rr   r]  s     @rY   rS  z4PydanticModelTransformer.adjust_decorator_signatures8  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ð 	2r[   Ú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          ¦  «        r\t!          |j        j        |j        j        d¬¦  «        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�Œm|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_configr˜   )Ú	lax_extraÚConfigzYSpecifying config in two places is ambiguous, use either Config attribute or class kwargsr�   rØ   )&r>  rh  ÚkeywordsÚitemsÚget_config_updateÚupdateÚdefsÚbodyrm   r   r   Úlvaluesr!   r¦   Úrvaluer   rŸ   r¡   r¢   r   r&   r[  r@  ÚfailÚhas_alias_generatorr9  r8  rb   rÁ   Úerror_required_dynamic_aliasesr’   Úmrorì   rë   Úadd_plugin_dependencyr7   ri   rI  )rg   rŠ   rØ   Úhas_config_kwargsÚhas_config_from_namespacer¦   ÚexprÚconfig_dataÚstmtÚlhsr¯   r  Úkey_exprÚ
value_exprÚsubstmtr’   r[  s                    rY   rK  z'PydanticModelTransformer.collect_configS  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Ð]aÐ)bÑ)bÔ)bð ]ð ]™˜ #Ø#Ð+Ø$ØŸš 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Ø×!Ò! $¨Ñ.Ô.Ð.Ð.ð/àˆr[   rj  r  úJtuple[list[PydanticModelField] | None, list[PydanticModelClassVar] | None]c                ó
  — | j         }i }i }t          |j        j        dd…         ¦  «        D �]‡}t          |j        vrt          |j        v r| j        j        s dS Œ/| j         	                    t          |j        ¦  «        ¦  «         |j        t                   d                              ¦   «         D ]´\  }}t                               ||| j        ¦  «        }	|	                     |j        | j        ¦  «         |	||<   |j        j                             |¦  «        }
|
rH|
j        rAt'          |
j        t(          t*          f¦  «        s | j                             d|
j        ¦  «         Œµ|j        t                   d                              ¦   «         D ]"\  }}t.                               |¦  «        ||<   Œ#�Œ‰t1          ¦   «         }t1          ¦   «         }|                      |j        ¦  «        D ]Ö}|                      |||¦  «        }|€Œ|j        d         }t'          |t:          ¦  «        sJ ‚t'          |t          ¦  «        rH|r!|j        d	k    rt?          | j        |¦  «         Œx|                      |j        ¦  «         |||j        <   Œ�t'          |t.          ¦  «        r$|                      |j        ¦  «         |||j        <   Œ×tC          | "                    ¦   «         ¦  «        tC          | "                    ¦   «         ¦  «        fS )
zACollects the fields for the model, accounting for parent classes.r�   éÿÿÿÿ)NNrG  z7BaseModel field may only be overridden by another fieldrH  Nr   r  )#r>  Úreversedr’   rx  rì   rë   rJ  r@  rM  ry  r7   ri   rn  ró   r'  r*  r­   rÉ   rn   rm   r+   r#   ru  r/  rÎ   Ú%_get_assignment_statements_from_blockrq  Ú$collect_field_or_class_var_from_stmtrs  r!   r¦   Ú error_extra_fields_on_root_modelÚaddÚlistr_  )rg   rj  r  rŠ   Úfound_fieldsÚfound_class_varsr’   r¦   r!  rD  Úsym_nodeÚcurrent_field_namesÚcurrent_class_vars_namesr~  Úmaybe_fieldr  s                   rY   rL  z6PydanticModelTransformer.collect_fields_and_class_varsŸ  sò  € ð Œiˆð 79ˆØ=?ÐÝ˜SœXœ\¨!¨B¨$Ô/Ñ0Ô0ð 	Qñ 	QˆDÝ 4¤=Ð0Ð0Ý# t¤}Ð4Ð4¸T¼YÔ=VÐ4ð
 &˜:˜:Øð Œ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ÀÄÕQTÕVeÐPfÑ6gÔ6gð Ø”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ÐKr[   r~  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`   )rr  Úis_unreachabler‡  Ú	else_body)rg   r~  rr  s      rY   Ú,_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ð &Ð%Ð%Ð%r[   Úblockr   c              #  ó²   K  — |j         D ]L}t          |t          ¦  «        r|V — Œt          |t          ¦  «        r|                      |¦  «        E d {V —† ŒMd S r`   )rr  rm   r   r   r–  )rg   r—  r~  s      rY   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r[   r   rH  ú 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   rj  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>  rs  rm   r!   rH   Úis_valid_field_namer¦   Ú
new_syntaxrt  r   ra  ri   ÚDECORATOR_FULLNAMESÚerror_untyped_fieldsr@  r’   r­   rÉ   rn   r#   r)   ru  r+   Úis_classvarr/  rD   r•   r=   Úget_has_defaultÚ
get_strictrœ  Úis_inferredÚanalyze_simple_literal_typer;   r@   Ú
from_errorÚget_alias_infor9  r8  rb   rÁ   rw  Úis_field_frozenÚ_infer_dataclass_attr_init_typeró   r§   rû   )rg   r~  rj  rH  rŠ   r  rr   rn   Ú	node_typerø   r™   r&  rô   r÷   rö   Ú	init_types                   rY   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ˆ	Ý!Ø”Ø/Ø#ØØØØ”Ø”;ØØ”ð
ñ 
ô 
ð 	
r[   rr   r'   r¦   rT   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__rR   z(Unsupported signature for "__set__" in "ú"zUnsupported "__set__" in ")r•   ÚimplicitrD   rm   r=   rÉ   rn   r   Úget_containing_type_infor:   r;   r@   Úunannotatedr<   Ú	arg_kindsr   r
   Ú	arg_typesr@  ru  r¦   )	rg   rr   r¦   ré   ÚdefaultÚtÚsetterÚ
super_infoÚsetter_types	            rY   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àˆr[   rG  úlist[PydanticModelField]rØ   rV  c           
     ót  — d| j         j        j        v r3| j         j        j        d         j        s| j         j        t
          k    rdS | j        j        }t          |j	        ¦  «        }|j
        p|j         o|j        du}t          |j        o|j
         ¦  «        }|                      |||||||d¬¦  «        }	|�rm| j                             t"          ¦  «        j        }
t'          |
t(          ¦  «        sJ ‚d|
j        v �r(|
j        d         j        }t'          |t*          ¦  «        sJ ‚|�ý|j        �ö|j        }t'          |t.          ¦  «        sJ ‚t1          |j        ¦  «        D ]Ã\  }}|�*|                     d¦  «        s|                     d¦  «        sŒ2| j                             |j        |         ¦  «        }|�0|dv r,|                     t=          t>          j         ¦  «        ¦  «        }tC          ||¦  «        }|	 "                    tG          ||dtH          ¦  «        ¦  «         ŒÄ|  %                    ||¦  «        sPtC          d	¦  «        }|	 "                    tG          |tM          t>          j'        ¦  «        dtP          ¦  «        ¦  «         tS          | j        | j         d|	tU          ¦   «         ¬
¦  «         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.
        rf   NFT)rÿ   r   Úrequires_dynamic_aliasesr  rV  r  r  Ú__r¶   )Ú_cli_settings_sourceÚ_build_sourcesÚkwargs)r¢   Úreturn_type)+r>  r’   r­   Úplugin_generatedri   ÚROOT_MODEL_FULLNAMErb   rÀ   rÂ   r™   r9  r8  r:  rv  Úget_field_argumentsr@  rl   rO  rn   rm   r*   r   r•   r<   re  r¡   Ú
startswithÚ	anal_typer³  ÚacceptÚChangeExplicitTypeOfAnyr@   Úfrom_omitted_genericsr+   Úappendr   r   Úshould_init_forbid_extrar;   r  r   Ú
add_methodr>   )rg   rG  rØ   rV  r  rÿ   r   r  r»  r¢   Úbase_settings_nodeÚbase_settings_init_nodeÚ	func_typeÚarg_idxr¯   Úanalyzed_variable_typer  Úvars                     rY   rP  z(PydanticModelTransformer.add_initializer£  sÎ  € ð ˜$œ)œ.Ô.Ð.Ð.Ø”I”NÔ(¨Ô4ÔEð /ð ”	Ô"Õ&9Ò9Ð9àˆ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Ð=À(ð Oð Cð Cð 6L×5RÒ5RÝ 7½	Ô8WÑ XÔ Xñ6ô 6Ð2õ $' xÐ1GÑ#HÔ#H˜ØŸš¥H¨XÐ7MÈtÕU\Ñ$]Ô$]Ñ^Ô^Ð^Ð^à×,Ò,¨V°VÑ<Ô<ð 	YÝ�h‘-”-ˆCØ�KŠK� ¥g­iÔ.DÑ&EÔ&EÀtÍYÑWÔWÑXÔXÐXå�4”9˜dœi¨¸$ÍHÉJÌJÐWÑWÔWÐWÐWÐWr[   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  rV  r  r¿  Úmodel_construct)r¢   rÀ  Úis_classmethod)r@  Ú
named_typeÚBUILTINS_NAMErC   r>   r   r+   r   r8   r  r]   r  rÃ  rÂ   r™   rÊ  rÉ  r;   r@   r  r   rË  r>  rE   r’   )
rg   rG  rØ   rV  r  Úset_strÚoptional_set_strÚfields_set_argumentr¢   rÑ  s
             rY   rQ  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Ñ<Ô<ð 	YÝ�h‘-”-ˆCØ�KŠK� ¥g­iÔ.DÑ&EÔ&EÀtÍYÑWÔWÑXÔXÐXà/<Ð^ˆtÐ*Ð+Ñ+Ð+ÐCVÐBWÐZ^ÑB^ˆåØŒIØŒIØØÝ% d¤i¤nÑ5Ô5Øð	
ñ 	
ô 	
ð 	
ð 	
ð 	
s   Â*/C%Ã%C)Ã,C)r6  c                óô  — | j         j        }|D ]è}|j                             |j        ¦  «        }|�f|j        }t          |t          ¦  «        r|p|j        |_	        ŒNt          |t          ¦  «        r%| j        j        s| j                             ¦   «          Œ‰|                     ||d¬¦  «        }||_        ||_	        |j        dz   |j        z   |_        t#          t$          |¦  «        |j        |j        <   Œéd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.
        NF)r  rœ   )r>  r’   r­   rÉ   r¦   rn   rm   r+   rö   Úis_propertyr#   r@  rM  rN  r  ri   Ú	_fullnamer'   r   )rg   rG  rŒ   r6  r’   rD  rŽ  rÑ  s           rY   rR  z#PydanticModelTransformer.set_frozen
  sö   € ð
 ŒyŒ~ˆØð 	Bð 	BˆEØ”z—~’~ e¤jÑ1Ô1ˆHØÐ#Ø”m�Ý˜c¥3Ñ'Ô'ð &Ø&,Ð&?°´�C”O�OÝ ¥_Ñ5Ô5ð &¸d¼iÔ>Wð &à”I—O’OÑ%Ô%Ð%øð
 —l’l 4¨¸�lÑ>Ô>�Ø�”Ø"(�”Ø $¤°Ñ 3°c´hÑ >�”Ý'6µt¸SÑ'AÔ'A�”
˜3œ8Ñ$Ð$ð#	Bð 	Br[   Fr  r   rk  ú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)
        Nr5  Úforbid)Úforbid_extrar7  Túbuiltins.NoneF)rv  )úbuiltins.Trueúbuiltins.Falserã  rÞ   )r;  rm   r&   r[  r    r¦   Úerror_invalid_config_valuer@  rh  r!   ri   )rg   r¦   r  rk  rá  rv  s         rY   ro  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Øˆtr[   c                ó¼  — | j         }t          |t          ¦  «        rdS t          |t          ¦  «        r”t          |j        t
          ¦  «        rz|j        j        t          k    ret          |j	        |j
        d¬¦  «        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.FTr˜   Nr´  Údefault_factoryrâ  )rt  rm   r(   r   ra  r$   ri   ÚFIELD_FULLNAMErŸ   r¢   r¡   rh   r   r!   ©r~  r|  r  r¦   s       rY   r¢  z(PydanticModelTransformer.get_has_defaultF  sñ   € ð Œ{ˆÝ�d�HÑ%Ô%ð 	à�5Ý�d�HÑ%Ô%ð 	­*°T´[Å'Ñ*JÔ*Jð 	ÈtÌ{ÔOcÕguÒOuÐOuõ
 ! ¤¨D¬NÀ4ÐHÑHÔHð _ð _‘	��Tà�< 4¨9Ò#4Ð#4Øœ=µÐ<Ð<Ð<Ð<ØÐ,Ò,Ð,Ý *¨3µÑ 9Ô 9Ð ]¸c¼lÈoÒ>]Ð^Ð^Ð^Ð^ð -à�5å˜d¥LÑ1Ô1Ð1Ð1r[   rù   c                óT  — | j         }t          |t          ¦  «        r‹t          |j        t          ¦  «        rq|j        j        t          k    r\t          |j        |j	        d¬¦  «        D ]?\  }}|dk    rŒt          |t          ¦  «        r|j        dk    r dS |j        dk    r dS  dS dS )zCReturns the `strict` value of a field if defined, otherwise `None`.Tr˜   r™   rã  rä  FN)rt  rm   r   ra  r$   ri   rè  rŸ   r¢   r¡   r!   ré  s       rY   r£  z#PydanticModelTransformer.get_strict\  s»   € ð Œ{ˆÝ�d�HÑ%Ô%ð 		­*°T´[Å'Ñ*JÔ*Jð 		ÈtÌ{ÔOcÕguÒOuÐOuÝ  ¤¨D¬NÀ4ÐHÑHÔHð ð ‘	��TØ˜8Ò#Ð#ØÝ˜c¥8Ñ,Ô,ð %Ø”| Ò6Ð6Ø#˜t˜tØœÐ)9Ò9Ð9Ø$˜u˜uØ�t�tØˆtr[   ú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)rt  rm   r(   r   ra  r$   ri   rè  r¡   r¢   Úindexr&   r[  )r~  r|  r  s      rY   r§  z'PydanticModelTransformer.get_alias_infol  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Ð#Ð#à�:r[   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.
        Fr6  rã  )rt  rm   r(   r   ra  r$   ri   rè  re  r¡   r¢   r!   )r~  r|  r\  r¯   r  s        rY   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ð $ð ˆur[   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ß   rD  r  r’   r  rV  r   r»  rg   rÿ   r  s     €€€€€€€€€rY   ú
<listcomp>z@PydanticModelTransformer.get_field_arguments.<locals>.<listcomp>³  s~   ø€ ð 
ð 
ð 
ð Øð
ð #(Ô"9ð
Ø×ÒØØØ)Ø7ÐF¸;Ø#Ø”IØ)AØ#0Ð#I°U´ZÀ6Ò5Ið ñ 	ô 	ð
ð 
ð 
r[   )r>  r’   )rg   rG  rÿ   r   r  r»  rV  r  r  Ú	argumentsr’   s   ` ``````` @rY   rÃ  z,PydanticModelTransformer.get_field_arguments£  sp   øøøøøøøøø€ ð ŒyŒ~ˆð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð  ð
ñ 
ô 
ˆ	ð Ðr[   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)r9  r8  Úis_dynamic_alias_presentrÂ   rv  rá  rb   r¿   )rg   rG  rØ   s      rY   rÊ  z1PydanticModelTransformer.should_init_forbid_extraÃ  s]   € ð Ô'ð 	¨6Ô+Bð 	Ø×,Ò,¨VµT¸&Ô:TÑ5UÔ5UÑVÔVð Ø�uØÔð 	Ø�4ØÔ!Ô3Ð3r[   rv  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ô   )rG  rv  rD  s      rY   rö  z1PydanticModelTransformer.is_dynamic_alias_presentÐ  sZ   € ð
 ð 	ð 	ˆEØÔ&ð Ø�t�tðàð 	 Øð  ð  �Ø”;Ð&Ø˜4˜4ð 'àˆur[   N)
rŠ   r   r‹   r<  rŒ   r3   rb   ra   rU   r^   )rU   rÂ   )rU   r^   )rU   rh  )rj  rh  r  rÂ   rU   rƒ  )r~  r   rU   r’  )r—  r   rU   r’  )r~  r   rj  rh  rH  r™  rU   rš  )rr   r'   r¦   rT   ré   r   rU   rü   )
rG  r¹  rØ   rh  rV  rÂ   r  rÂ   rU   r^   )rG  r¹  rŒ   r3   r6  rÂ   rU   r^   r+  )r¦   rT   r  r   rk  rÂ   rU   rÞ  )r~  r   rU   rÂ   )r~  r   rU   rù   )r~  r   rU   rë  )rG  r¹  rÿ   rÂ   r   rÂ   r  rÂ   r»  rÂ   rV  rÂ   r  rÂ   r  rÂ   rU   rð  )rG  r¹  rØ   rh  rU   rÂ   )rG  r¹  rv  rÂ   rU   rÂ   )r¸   r¹   rº   r»   r;  rã   rf   r�   rS  rK  rL  r–  r‡  rˆ  r©  rP  rQ  rR  ro  Ústaticmethodr¢  r£  r§  r¨  rÃ  rÊ  rö  rÞ   r[   rY   r‰   r‰   ê  sK  € € € € € € ðð ð	'ð 	'ð 	'Ðð 	ð 	ð 	ñ 	ð+ð +ð +ð +ð-ð -ð -ð -ð^2ð 2ð 2ð 2ð6Jð Jð Jð JðXELð ELð ELð ELðNRð Rð Rð RðSð Sð Sð SðG
ð G
ð G
ð G
ðR$ð $ð $ð $ðL=Xð =Xð =Xð =Xð~&
ð &
ð &
ð &
ðPBð Bð Bð Bð2!ð !ð !ð !ð !ðF ð2ð 2ð 2ñ „\ð2ð* ðð ð ñ „\ðð ðð ð ñ „\ðð: ðð ð ñ „\ððB */ðð ð ð ð ð@4ð 4ð 4ð 4ð ðð ð ñ „\ðð ð r[   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ú   rU   r^   c                óV   •— || _         t          ¦   «                              ¦   «          d S r`   )Ú_type_of_anyre   rf   )rg   rú  rh   s     €rY   rf   z ChangeExplicitTypeOfAny.__init__â  s'   ø€ Ø'ˆÔÝ‰Œ×ÒÑÔÐÐÐr[   rµ  r;   r?   c                óf   — |j         t          j        k    r|                     | j        ¬¦  «        S |S )N)rú  )rú  r@   Úexplicitr  rü  )rg   rµ  s     rY   Ú	visit_anyz!ChangeExplicitTypeOfAny.visit_anyæ  s.   € ØŒ=�IÔ.Ò.Ð.Ø—?’?¨tÔ/@�?ÑAÔAÐAàˆHr[   )rú  rú   rU   r^   )rµ  r;   rU   r?   )r¸   r¹   rº   r»   rf   rÿ  r¼   r½   s   @rY   rÇ  rÇ  ß  sW   ø€ € € € € ØFÐFðð ð ð ð ð ðð ð ð ð ð ð ð r[   rÇ  c                  óD   — e Zd ZdZ	 	 	 	 	 	 	 	 ddd„Zdd„Zdd„Zdd„ZdS )rh  z(Pydantic mypy plugin model config class.Nrá  rù   r6  ræ   r8  r:  r9  rv  r™   c	                óv   — || _         || _        || _        || _        || _        || _        || _        || _        d S r`   )rá  r6  ræ   r8  r:  r9  rv  r™   )	rg   rá  r6  ræ   r8  r:  r9  rv  r™   s	            rY   rf   zModelConfigData.__init__ð  sF   € ð )ˆÔØˆŒØ.ˆÔØ 0ˆÔØ!2ˆÔØ 0ˆÔØ#6ˆÔ ØˆŒˆˆr[   rU   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      rY   rà   z3ModelConfigData.get_values_dict.<locals>.<dictcomp>	  s   € ÐHÐHÐH™˜˜A¸!¸-��1¸-¸-¸-r[   )Ú__dict__rn  rá   s    rY   rT  zModelConfigData.get_values_dict  s'   € ð
 IÐH ¤×!4Ò!4Ñ!6Ô!6ÐHÑHÔHÐHr[   rØ   rÞ  r^   c                óˆ   — |€dS |                      ¦   «                              ¦   «         D ]\  }}t          | ||¦  «         ŒdS )z$Update Pydantic model config values.N)rT  rn  rÌ   )rg   rØ   r  r  s       rY   rp  zModelConfigData.update  sV   € àˆ>ØˆFØ×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4ð 	 ð 	 ‰DˆAˆqÝ�D˜!˜QÑÔÐÐð	 ð 	 r[   rÙ   rT   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Ì   )rg   rÙ   r[  s      rY   rI  zModelConfigData.setdefault  s2   € å�4˜ÑÔÐ%Ý�D˜#˜uÑ%Ô%Ð%Ð%Ð%ð &Ð%r[   )NNNNNNNN)rá  rù   r6  rù   ræ   rù   r8  rù   r:  rù   r9  rù   rv  rù   r™   rù   râ   )rØ   rÞ  rU   r^   )rÙ   rT   r[  r   rU   r^   )r¸   r¹   rº   r»   rf   rT  rp  rI  rÞ   r[   rY   rh  rh  í  s�   € € € € € Ø2Ð2ð %)Ø"Ø'+Ø(,Ø)-Ø(,Ø+/Ø"ðð ð ð ð ð(Ið Ið Ið Ið ð  ð  ð  ð&ð &ð &ð &ð &ð &r[   rh  r’   r*   rÂ   c                ó6   — |                       t          ¦  «        S )zXReturn whether the type info is a root model subclass (or the `RootModel` class itself).)ro   rÂ  )r’   s    rY   r  r    s   € à�=Š=Õ,Ñ-Ô-Ð-r[   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)ru  Ú	ERROR_ORM)r  rŒ   ré   s      rY   rí   rí   &  s-   € à‡H‚HÐA�ÐAÐAÐAÀ7ÕQZ€HÑ[Ô[Ð[Ð[Ð[r[   r¦   r3   c                óH   — |                      d| › d�|t          ¬¦  «         dS )z0Emits an error when the config value is invalid.zInvalid value for "Config.r®  r  N)ru  ÚERROR_CONFIG)r¦   rŒ   ré   s      rY   rå  rå  +  s,   € à‡H‚HÐ1¨$Ð1Ð1Ð1°7Å€HÑNÔNÐNÐNÐNr[   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)ru  ÚERROR_ALIAS©rŒ   ré   s     rY   rw  rw  0  s#   € ð
 ‡H‚HÐ2°GÅ+€HÑNÔNÐNÐNÐNr[   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)ru  ÚERROR_UNEXPECTED)rð   rŒ   ré   ÚlinkÚfull_messages        rY   rè   rè   8  sO   € ð
 D€DØWÈVÐWÐWÐW€LØÐ\¸TÐ\Ð\Ð\Ñ\€LØ‡H‚Hˆ\˜7Õ)9€HÑ:Ô:Ð:Ð:Ð:r[   c                ó@   — |                       d|t          ¬¦  «         dS )z;Emits an error when there is an untyped field in the model.zUntyped fields disallowedr  N)ru  ÚERROR_UNTYPEDr  s     rY   r   r   C  s!   € à‡H‚HÐ(¨'½€HÑFÔFÐFÐFÐFr[   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)ru  ÚERROR_EXTRA_FIELD_ROOT_MODELr  s     rY   r‰  r‰  H  s"   € à‡H‚HÐAÀ7ÕQm€HÑnÔnÐnÐnÐnr[   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nd¬¦  «        }t          ||t/          t1          ¦   «         g¦  «        ¦  «        }||_         t3          ||¦  «        |_        ||_        |j        dz   |z   |_        |j        |_        ||j        v r*t?          ||j        ¦  «        }|j        |         |j        |<   |rwd|_         t          ||j        ¦  «        }||_         |j        |_        d|_!        tE          |tG          d	¦  «        g|¦  «        }|j        |_        tI          tJ          |¦  «        }	ntI          tJ          |¦  «        }	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.)Ú	variablesrœ   r-  )'r’   r­   rÁ  rm   rn   r   rq  rr  Úremover3   rÖ  Únamed_generic_typerA   rE   r   r+   r   r  rÉ  r  r¦   r
  r<   r   r"   r5   r•   rg  ri   rÝ  r§   rF   Úis_decoratedrÕ  r   r!   r'   r   Údefn)rŒ   rŠ   r¦   r¢   rÀ  r  r   rÕ  r’   rr   Úfunction_typeÚfirstr³  r¡   r²  r  Ú	signaturerf  Úr_namer  Údecs                        rY   rË  rË  M  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Ð"Ø×Ò˜Ô,Ñ-Ô-Ð-Ø×Ò˜œÔ*Ñ+Ô+Ð+Ø×Ò˜œÑ"Ô"Ð"Ð"åØ�9˜i¨°mÐ]eÐOoÐPXÈzÈzÐkoðñ ô €Iõ �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Ñ$Ô$Ð$Ð$Ð$r[   rÇ   údict[str, Any] | Nonec                ó<  — |                       d¦  «        sdS t          j        dk    rddl}n2	 ddl}n,# t
          $ r ddl}|                     d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`.rR   )Ú
stacklevelÚrb)
r|   rÑ   Úversion_infoÚtomllibÚtomliÚImportErrorÚwarningsÚwarnÚopenÚload)rÇ   Útoml_r8  Úrfs       rY   rÈ   rÈ   ¥  s  € ð
 ×Ò Ñ(Ô(ð Øˆtå
Ô˜7Ò"Ð"ØÐÐÐÐð	Ø!Ð!Ð!Ð!Ð!øÝð 	ð 	ð 	ØˆOˆOˆOà�MŠMÐfÐstˆMÑuÔuÐuØ�4�4ð		øøøõ 
ˆk˜4Ñ	 Ô	 ð  BØ�zŠz˜"‰~Œ~ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s!   ®3 ³%AÁAÁ/BÂBÂB)rS   rT   rU   rV   )r„   r0   rU   r?   )r’   r*   rU   rÂ   )r  rT   rŒ   r-   ré   r   rU   r^   )r¦   rT   rŒ   r3   ré   r   rU   r^   )rŒ   r3   ré   r   rU   r^   )rð   rT   rŒ   r  ré   r   rU   r^   )rŒ   r-   ré   r   rU   r^   )NNF)rŒ   r  rŠ   r   r¦   rT   r¢   rð  rÀ  r?   r  rü   r   r!  rÕ  rÂ   rU   r^   )rÇ   rT   rU   r.  )Šr»   Ú
__future__r   rÑ   Úcollections.abcr   r   Úconfigparserr   Útypingr   Ú
mypy.typesÚmypyÚ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*   r+   Úmypy.optionsr,   Úmypy.pluginr-   r.   r/   r0   r1   r2   r3   Úmypy.plugins.commonr4   Úmypy.semanalr5   Úmypy.semanal_sharedr6   Úmypy.server.triggerr7   Ú
mypy.stater8   Úmypy.type_visitorr9   Úmypy.typeopsr:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   Úmypy.typevarsrE   Ú	mypy.utilrF   Úmypy.versionrG   Úmypy_versionÚpydantic._internalrH   Úpydantic.versionrI   rÕ   rì   rJ  rp   r�   rO  rÂ  ru   rv   rè  ÚDATACLASS_FULLNAMErc  rŸ  rb  ÚMYPY_VERSION_TUPLEr×  rZ   rX   ra   r}   ró   r/  r‰   rÇ  rh  r  r  r  r  r  r  ÚERROR_FIELD_DEFAULTSr  rí   rå  rw  rè   r   r‰  rË  rÈ   rÞ   r[   rY   ú<module>rY     sG  ðØ dÐ dà "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð"ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ðF !Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø /Ð /Ð /Ð /Ð /Ð /Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à &Ð &Ð &Ð &Ð &Ð &Ø /Ð /Ð /Ð /Ð /Ð /à €Ø'€Ø/Ð Ø.Ð Ø4Ð Ø=Ð Ø5Ð ØRÐ Ø IÐ Ø(€Ø5Ð ØKÐ ðð ð Ð ð ,?ÐBtÐAuÑ+uÐ (ð (Ð'¨Ñ5Ô5Ð Ø€ð €ðð ð ð ðeZð eZð eZð eZð eZ�Vñ eZô eZð eZðP5Cð 5Cð 5Cð 5Cð 5Cñ 5Cô 5Cð 5Cðp#ð #ð #ð #ð4PTð PTð PTð PTð PTñ PTô PTð PTðf
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð2rð rð rð rð rñ rô rð rðjð ð ð ð ˜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ð ð ð ð ð r[   