Ë
    Eü´j’î  ã                  óÖ  — 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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/m0Z0m1Z1m2Z2 dd
l3m4Z4 ddl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZH ddlmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR ddlSmTZT ddlUmVZV ddlWmXZY ddlZm[Z[ ddl\m]Z] dZ^dZ_dZ`dZadZbdZcdZddZed Zfd!Zgh d"£Zhehd#hz
  Zi e]eY«      Zjd$Zkd%ZXdLd&„Zl G d'„ d(e:«      Zm G d)„ d*«      ZndMd+„Zo G d,„ d-«      Zp G d.„ d/«      Zq G d0„ d1«      Zr G d2„ d3eF«      Zs G d4„ d5«      ZtdNd6„Zu ed7d8d9«      Zv ed:d;d9«      Zw ed<d=d9«      Zx ed>d?d9«      Zy ed@dAd9«      Zz ed@dBd9«      Z{ ed@dCd9«      Z|dOdD„Z}dPdE„Z~dQdF„Z	 	 	 	 	 	 	 	 dRdG„Z€dQdH„Z�dSdI„Z‚	 	 	 dT	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dUdJ„ZƒdVdK„Z„y)Wz^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ÚDynamicClassDefContextÚ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.main.create_modelz#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_validatorrI   ú0pydantic.functional_serializers.model_serializerrN   Úbuiltinsé   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)Úversions    úK/root/workspace/ytshorts/venv/lib/python3.12/site-packages/pydantic/mypy.pyÚpluginrU   q   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 )rR   zThe Pydantic mypy plugin.c                ó‚   •— t        |«      | _        | j                  j                  «       | _        t        ‰| �  |«       y ©N)ÚPydanticPluginConfigÚplugin_configÚto_dataÚ_plugin_dataÚsuperÚ__init__)ÚselfÚoptionsÚ	__class__s     €rT   r_   zPydanticPlugin.__init__ƒ   s4   ø€ Ü1°'Ó:ˆÔØ ×.Ñ.×6Ñ6Ó8ˆÔÜ‰Ñ˜Õ!rV   c                ó´   — | j                  |«      }|rEt        |j                  t        «      r+|j                  j	                  t
        «      r| j                  S y)zUpdate Pydantic model class.N)Úlookup_fully_qualifiedÚ
isinstanceÚnoder)   Úhas_baseÚBASEMODEL_FULLNAMEÚ$_pydantic_model_class_maker_callback)r`   ÚfullnameÚsyms      rT   Úget_base_class_hookz"PydanticPlugin.get_base_class_hookˆ   sD   € à×)Ñ)¨(Ó3ˆÙ”:˜cŸh™h¬Ô1à�x‰x× Ñ Ô!3Ô4Ø×@Ñ@Ð@ØrV   c                ó.   — |t         k(  r| j                  S y)z,Update Pydantic `ModelMetaclass` definition.N)ÚMODEL_METACLASS_FULLNAMEÚ)_pydantic_model_metaclass_marker_callback©r`   rj   s     rT   Úget_metaclass_hookz!PydanticPlugin.get_metaclass_hook‘   s   € àÔ/Ò/Ø×AÑAÐAØrV   c                ó2   — |j                  d«      rt        S y)z-Adjust return type of `from_orm` method call.z	.from_ormN)ÚendswithÚfrom_attributes_callbackrp   s     rT   Úget_method_hookzPydanticPlugin.get_method_hook—   s   € à×Ñ˜[Ô)Ü+Ð+ØrV   c                ó.   — |t         k(  r| j                  S y)zARecognize `create_model()` calls as dynamic BaseModel subclasses.N)ÚCREATE_MODEL_FULLNAMEÚ_pydantic_create_model_callbackrp   s     rT   Úget_dynamic_class_hookz%PydanticPlugin.get_dynamic_class_hook�   s   € àÔ,Ò,Ø×7Ñ7Ð7ØrV   c                ó   — | j                   S )zjReturn all plugin config data.

        Used by mypy to determine if cache needs to be discarded.
        )r]   )r`   Úctxs     rT   Úreport_config_dataz!PydanticPlugin.report_config_data£   s   € ð
 × Ñ Ð rV   c                ó�   — t        |j                  |j                  |j                  | j                  «      }|j                  «        y rY   )ÚPydanticModelTransformerÚclsÚreasonÚapir[   Ú	transform)r`   r{   Útransformers      rT   ri   z3PydanticPlugin._pydantic_model_class_maker_callbackª   s0   € Ü.¨s¯w©w¸¿
¹
ÀCÇGÁGÈT×M_ÑM_Ó`ˆØ×ÑÕrV   c                óÖ   — | j                   j                  ry|j                  j                  j                  }|sJ d«       ‚t        |j                  dd«      rd|j                  _        yy)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…   )r`   r{   Úinfo_metaclasss      rT   ro   z8PydanticPlugin._pydantic_model_metaclass_marker_callback®   s^   € ð ×Ñ×7Ò7ØØŸ™Ÿ™×8Ñ8ˆÙÐNÐNÓNˆ~Ü�>×&Ñ&Ð(BÀDÔIØ;?ˆN×ÑÕ8ð JrV   c                ó>  — t         }t        |j                  j                  |j                  j                  «      D ]Ä  \  }}|dk(  sŒt        |t        «      sŒ|j                  €Œ*t        |j                  t        «      r|j                  j                  }Œ[t        |j                  t        «      sŒvt        |j                  j                  t        «      sŒ›|j                  j                  j                  j                  }ŒÆ |j                  j                  |«      }|�t        |j                  t        «      s<|j                  j                  t         «      }|�t        |j                  t        «      sy|j                  }t        |«      }t        |t        «      sJ ‚|j                  j!                  |j"                  ||j                  j$                  «      }|j&                  |_        |j                  j)                  |j"                  t+        t,        |«      «       y)zFMake variables assigned from `create_model()` usable as types by mypy.Ú__base__N)rh   ÚzipÚcallÚ	arg_namesÚargsre   r#   rf   r)   rj   r*   rŠ   r;   r�   Úlookup_fully_qualified_or_nonerC   Úbasic_new_typeinfoÚnameÚlineÚmetaclass_typeÚadd_symbol_table_noder&   r   )	r`   r{   Úbase_fullnameÚarg_nameÚarg_exprÚbase_symÚ	base_infoÚbase_instancer‡   s	            rT   rx   z.PydanticPlugin._pydantic_create_model_callback»   st  € ô +ˆÜ"% c§h¡h×&8Ñ&8¸#¿(¹(¿-¹-Ó"Hò 	EÑˆH�hØ˜:Ó%¬*°X¼wÕ*GÈHÏMÉMÑLeÜ˜hŸm™m¬XÔ6Ø$,§M¡M×$:Ñ$:‘MÜ §¡¬sÕ3¼
À8Ç=Á=×CUÑCUÔW_Õ8`Ø$,§M¡M×$6Ñ$6×$;Ñ$;×$DÑ$D‘Mð	Eð —7‘7×9Ñ9¸-ÓHˆØÐ¤:¨h¯m©m¼XÔ#Fà—w‘w×=Ñ=Ô>PÓQˆHØÐ¤z°(·-±-ÄÔ'JØà—M‘Mˆ	Ü% iÓ0ˆÜ˜-¬Ô2Ð2Ð2à�w‰w×)Ñ)¨#¯(©(°MÀ3Ç8Á8Ç=Á=ÓQˆØ'×6Ñ6ˆÔà�‰×%Ñ% c§h¡h´ÄÀdÓ0KÕLrV   ©ra   r+   ÚreturnÚNone)rj   ÚstrrŸ   z(Callable[[ClassDefContext], None] | None)rj   r¡   rŸ   z&Callable[[MethodContext], Type] | None)rj   r¡   rŸ   z/Callable[[DynamicClassDefContext], None] | None)r{   r1   rŸ   údict[str, Any])r{   r-   rŸ   r    )r{   r.   rŸ   r    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r_   rl   rq   ru   ry   r|   ri   ro   rx   Ú__classcell__©rb   s   @rT   rR   rR   €   s5   ø„ Ù#õ"ó
óóóó!ó ó@÷MrV   rR   c                  óN   — 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y
)rZ   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†   c                óä  — |j                   €y t        |j                   «      }|�q|j                  di «      j                  di «      }| j                  D ]?  }|j                  |d«      }t	        |t
        «      st        d|› �«      ‚t        | ||«       ŒA y t        «       }|j                  |j                   «       | j                  D ]'  }|j                  t        |d¬«      }t        | ||«       Œ) y )NÚtoolrH   Fz/Configuration value must be a boolean for key: )Úfallback)Úconfig_fileÚ
parse_tomlÚgetÚ	__slots__re   r­   Ú
ValueErrorÚsetattrr   ÚreadÚ
getbooleanÚCONFIGFILE_KEY)r`   ra   Útoml_configÚconfigÚkeyÚsettingr[   s          rT   r_   zPydanticPluginConfig.__init__í   sæ   € Ø×ÑÐ&Øä  ×!4Ñ!4Ó5ˆØÐ"Ø —_‘_ V¨RÓ0×4Ñ4°_ÀbÓIˆFØ—~‘~ò ,�Ø Ÿ*™* S¨%Ó0�Ü! '¬4Ô0Ü$Ð'VÐWZÐV[Ð%\Ó]Ð]Ü˜˜c 7Õ+ñ	,ô )›NˆMØ×Ñ˜w×2Ñ2Ô3Ø—~‘~ò ,�Ø'×2Ñ2´>À3ÐQVÐ2ÓW�Ü˜˜c 7Õ+ñ,rV   c                óV   — | j                   D �ci c]  }|t        | |«      “Œ c}S c c}w )z/Returns a dict of config names to their values.)r´   r‰   )r`   r¼   s     rT   r\   zPydanticPluginConfig.to_data   s&   € à37·>±>ÖB¨C�”W˜T 3Ó'Ñ'ÒBÐBùÒBs   �&Nrž   ©rŸ   r¢   )r£   r¤   r¥   r¦   r´   Ú__annotations__r_   r\   © rV   rT   rZ   rZ   ×   s3   … ñð€Ið ÓØÓØ#'Ó'Ø#Ó#ó,ô&CrV   rZ   c                ó
  — | j                   }t        |t        «      r|j                  }t        |t        «      r't        |j
                  t        «      r|j
                  }n]t        |t        «      r|}nJd|› d|j                  j                  › d�}t        || j                  | j                  «       | j                  S |j                   j                  j                  t        «      }|€| j                  S |j                   j!                  t"        «      s| j                  S |j                  di «      j                  d«      }|dur5t%        |j                   j&                  | j                  | j                  «       | j                  S )z1Raise an error if from_attributes is not enabled.z
ctx.type: z
 (of type ú)r»   Úfrom_attributesT)rŠ   re   r?   Úitemr:   Úret_typer;   rb   r£   Úerror_unexpected_behaviorr�   ÚcontextÚdefault_return_typeÚmetadatar³   ÚMETADATA_KEYrg   rh   Úerror_from_attributesr”   )r{   Úctx_typeÚ
model_typeÚdetailÚpydantic_metadatarÄ   s         rT   rt   rt     s0  € ð �x‰x€HÜ�(œHÔ%Ø—=‘=ˆÜ�(œLÔ)¬j¸×9JÑ9JÌHÔ.UØ×&Ñ&‰
Ü	�HœhÔ	'Ø‰
à˜h˜Z z°(×2DÑ2D×2MÑ2MÐ1NÈaÐPˆÜ! &¨#¯'©'°3·;±;Ô?Ø×&Ñ&Ð&Ø"Ÿ™×0Ñ0×4Ñ4´\ÓBÐØÐ Ø×&Ñ&Ð&Ø�?‰?×#Ñ#Ô$6Ô7à×&Ñ&Ð&Ø'×+Ñ+¨H°bÓ9×=Ñ=Ð>OÓP€OØ˜dÑ"Ü˜jŸo™o×2Ñ2°C·G±G¸S¿[¹[ÔIØ×"Ñ"Ð"rV   c                  óÌ   — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d
d„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Ze	dd„«       Z
dd„Zy	)ÚPydanticModelFieldz5Based on mypy.plugins.dataclasses.DataclassAttribute.c                ó�   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        y rY   )
r”   ÚaliasÚ	is_frozenÚhas_dynamic_aliasÚhas_defaultÚstrictr•   ÚcolumnrŠ   r‡   )r`   r”   rÔ   rÕ   rÖ   r×   rØ   r•   rÙ   rŠ   r‡   s              rT   r_   zPydanticModelField.__init__"  sL   € ð ˆŒ	ØˆŒ
Ø"ˆŒØ!2ˆÔØ&ˆÔØˆŒØˆŒ	ØˆŒØˆŒ	Øˆ�	rV   c	                ó4  — | j                  ||||«      }	| j                  €|n| j                  }
|s|
r| j                  ||d¬«      }nt        t        j
                  «      }t        |	|d|rt        ¬«      S |s| j                  rt        ¬«      S t        ¬«      S )zABased on mypy.plugins.dataclasses.DataclassAttribute.to_argument.NT)Úinclude_root_type)ÚvariableÚtype_annotationÚinitializerÚkind)Úto_varrØ   r	   r9   r>   Úexplicitr   r   r×   r   r   )r`   Úcurrent_infoÚtypedÚmodel_strictÚforce_optionalÚ	use_aliasr�   Úforce_typevars_invariantÚis_root_model_rootrÜ   rØ   rÝ   s               rT   Úto_argumentzPydanticModelField.to_argument:  s¢   € ð —;‘;˜|¨S°)Ð=UÓVˆà!%§¡Ð!4‘¸$¿+¹+ˆÙ‘FØ"×.Ñ.¨|¸SÐTXÐ.ÓY‰Oä%¤i×&8Ñ&8Ó9ˆOäØØ+Øá!ô ô	
ð 	
ñ $2°T×5EÒ5E”-ô
ð 	
ô LUô
ð 	
rV   c                óZ  — |rFt        | j                  t        «      r,| j                  j                  «       }t        |_        || _        | j                  ��4| j                  j                  ��t        j                  |j                  j                  «      5  t        |«      }t        |t        «      sJ ‚|r-|j                  D ]  }t        |t        «      sŒt        |_        Œ  t        | j                  | j                  j                  j                   |i«      }|rdt        |t        «      rTt#        |j                  «      r?|j                  d   j                  }	|	€|cddd«       S t%        |	|«      }
t'        ||
g«      }|cddd«       S | j                  S # 1 sw Y   | j                  S xY w)zABased on mypy.plugins.dataclasses.DataclassAttribute.expand_type.NÚroot)re   rŠ   r@   Úcopy_modifiedr   Úvariancer‡   Ú	self_typer6   Ústrict_optional_setra   Ústrict_optionalrC   r;   r‘   r	   ÚidÚis_root_modelr
   rA   )r`   râ   r�   rç   rÛ   Úmodified_typeÚfilled_with_typevarsÚargÚexpanded_typeÚ	root_typeÚexpanded_root_types              rT   r	   zPydanticModelField.expand_typeW  sn  € ñ $ô
 ˜$Ÿ)™)¤[Ô1Ø $§	¡	× 7Ñ 7Ó 9�Ü)2�Ô&Ø)�”	à�9‰9Ñ  T§Y¡Y×%8Ñ%8Ñ%Dô
 ×*Ñ*¨3¯;©;×+FÑ+FÓGñ %Ü'4°\Ó'BÐ$ä!Ð"6¼ÔAÐAÐAÙ+Ø3×8Ñ8ò 5˜Ü% c¬;Õ7Ü+4˜C�Lð5ô !,¨D¯I©I¸¿	¹	×8KÑ8K×8NÑ8NÐPdÐ7eÓ f�Ù$¬°MÄ8Ô)LÔQ^Ð_l×_qÑ_qÔQrð !.× 2Ñ 2°6Ñ :× ?Ñ ?�IØ Ð(à,÷!%ñ %ô" *AÀÈMÓ)ZÐ&Ü$-¨}Ð>PÐ.QÓ$R�MØ$÷'%ñ %ð( �y‰yÐ÷)%ð( �y‰yÐús   Â?FÃBFÅ&FÆF*c                óŠ   — |r| j                   �| j                   }n| j                  }t        || j                  |||«      «      S )z<Based on mypy.plugins.dataclasses.DataclassAttribute.to_var.)rÔ   r”   r*   r	   )r`   râ   r�   ræ   rç   r”   s         rT   rà   zPydanticModelField.to_var„  s?   € ñ ˜Ÿ™Ð/Ø—:‘:‰Dà—9‘9ˆDä�4˜×)Ñ)¨,¸Ð=UÓVÓWÐWrV   c           
     ó  — | j                   sJ ‚| 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Ù   Ú	serialize©r`   s    rT   rü   zPydanticModelField.serialize“  sd   € à�yŠyÐˆyà—I‘IØ—Z‘ZØŸ™Ø!%×!7Ñ!7Ø×+Ñ+Ø—k‘kØ—I‘IØ—k‘kØ—I‘I×'Ñ'Ó)ñ

ð 
	
rV   c                ón   — |j                  «       }t        |j                  d«      |«      } | d||dœ|¤ŽS )úABased on mypy.plugins.dataclasses.DataclassAttribute.deserialize.rŠ   )rŠ   r‡   rÁ   )Úcopyr3   Úpop)r   r‡   Údatar�   Útyps        rT   ÚdeserializezPydanticModelField.deserialize¢  s9   € ð �y‰y‹{ˆÜ(¨¯©°&Ó)9¸3Ó?ˆÙÐ/˜ $Ñ/¨$Ñ/Ð/rV   c                óæ   — | j                   �Yt        j                  |j                  j                  «      5  t        | j                   || j                  «      | _         ddd«       yy# 1 sw Y   yxY w)zxExpands type vars in the context of a subtype when an attribute is inherited
        from a generic super type.
        N)rŠ   r6   rï   ra   rð   r8   r‡   )r`   Úsub_typer�   s      rT   Úexpand_typevar_from_subtypez.PydanticModelField.expand_typevar_from_subtype©  sb   € ð �9‰9Ð Ü×*Ñ*¨3¯;©;×+FÑ+FÓGñ TÜ3°D·I±I¸xÈÏÉÓS�”	÷Tð Tð !÷Tð Tús   ¶'A'Á'A0N)r”   r¡   rÔ   z
str | NonerÕ   r­   rÖ   r­   r×   r­   rØ   úbool | Noner•   ÚintrÙ   r	  rŠ   úType | Noner‡   r)   )râ   r)   rã   r­   rä   r­   rå   r­   ræ   r­   r�   r2   rç   r­   rè   r­   rŸ   r   )FF)
râ   r)   r�   r2   rç   r­   rÛ   r­   rŸ   r
  ©F)
râ   r)   r�   r2   ræ   r­   rç   r­   rŸ   r*   ©rŸ   r   )r‡   r)   r  r   r�   r2   rŸ   rÒ   )r  r)   r�   r2   rŸ   r    )r£   r¤   r¥   r¦   r_   ré   r	   rà   rü   Úclassmethodr  r  rÁ   rV   rT   rÒ   rÒ     sg  „ Ù?ðàðð ðð ð	ð
  ðð ðð ðð ðð ðð ðð óð0
àð
ð ð
ð ð	
ð
 ð
ð ð
ð -ð
ð #'ð
ð !ð
ð 
ó
ðB */Ø"'ð+àð+ð -ð+ð #'ð	+ð
  ð+ð 
ó+ðd */ðXàðXð -ðXð ð	Xð
 #'ðXð 
óXó
ð ò0ó ð0ôTrV   rÒ   c                  ó0   — e Zd ZdZd„ Zedd„«       Zdd„Zy)ÚPydanticModelClassVarz•Based on mypy.plugins.dataclasses.DataclassAttribute.

    ClassVars are ignored by subclasses.

    Attributes:
        name: the ClassVar name
    c                ó   — || _         y rY   ©r”   )r`   r”   s     rT   r_   zPydanticModelClassVar.__init__»  s	   € Øˆ�	rV   c                ó2   — |j                  «       } | di |¤ŽS )rÿ   rÁ   )r   )r   r  s     rT   r  z!PydanticModelClassVar.deserialize¾  s   € ð �y‰y‹{ˆÙ‰{�T‰{ÐrV   c                ó   — d| j                   iS )rû   r”   r  rý   s    rT   rü   zPydanticModelClassVar.serializeÄ  s   € ð �D—I‘Ið
ð 	
rV   N)r  r   rŸ   r  r  )r£   r¤   r¥   r¦   r_   r  r  rü   rÁ   rV   rT   r  r  ²  s%   „ ñòð òó ðô

rV   r  c                  óv  — e Zd ZU dZh d£Zded<   	 	 	 	 	 	 	 	 	 	 d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	 	 	 	 	 	 	 	 	 	 d#d„Z	 	 	 	 	 	 	 	 	 	 d#d„Zd$d„Zd%d&d„Zed'd„«       Zed(d„«       Zed)d„«       Zed'd„«       Z	 d%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d*d„Zd+d„Zed,d„«       Zy)-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_fieldsc                ó<   — || _         || _        || _        || _        y rY   )Ú_clsÚ_reasonÚ_apir[   )r`   r   r€   r�   r[   s        rT   r_   z!PydanticModelTransformer.__init__Ý  s!   € ð ˆŒ	ØˆŒØˆŒ	à*ˆÕrV   c                ó¬  — | j                   j                  }t        |«      }| j                  «       }| j	                  ||«      \  }}|�|€y|D ]  }|j
                  �Œ y |j                  t        «      }| j                  ||||«       | j                  ||||«       | j                  || j                  |j                  du ¬«       | j                  «        |D �ci c]  }|j                  |j                  «       “Œ c}|D �ci c]  }|j                  |j                  «       “Œ c}|j!                  «       dœ|j"                  t$        <   yc c}w c c}w )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
        FT)r  )ÚfieldsÚ
class_varsr»   )r  r‡   rò   Úcollect_configÚcollect_fields_and_class_varsrŠ   rg   ÚBASESETTINGS_FULLNAMEÚadd_initializerÚadd_model_construct_methodÚ
set_frozenr  r  Úadjust_decorator_signaturesr”   rü   Úget_values_dictrÊ   rË   )	r`   r‡   Úis_a_root_modelr»   r!  r"  ÚfieldÚis_settingsÚ	class_vars	            rT   r‚   z"PydanticModelTransformer.transformê  s9  € ð �y‰y�~‰~ˆÜ'¨Ó-ˆØ×$Ñ$Ó&ˆØ!×?Ñ?ÀÈÓXÑˆ�
Øˆ>˜ZÐ/àØò 	ˆEØ�z‰zÑ!Ùð	ð —m‘mÔ$9Ó:ˆØ×Ñ˜V V¨[¸/ÔJØ×'Ñ'¨°¸À_ÔUØ�‰˜ §	¡	°&·-±-À4Ð2GˆÔHà×(Ñ(Ô*ð CIÖI¸�u—z‘z 5§?¡?Ó#4Ñ4ÒIØR\Ö]ÀY˜9Ÿ>™>¨9×+>Ñ+>Ó+@Ñ@Ò]Ø×,Ñ,Ó.ñ'
ˆ�‰”lÑ#ð ùò JùÚ]s   Ã"EÄ"Ec                ó&  ‡— | j                   j                  j                  j                  «       D ]ß  }t	        |j
                  t        «      sŒ|j
                  j                  d   Št	        ‰t        «      sŒHt	        ‰j                  t        «      sŒc‰j                  j                  t        v sŒ€‰j                  j                  t        k(  r(t        ˆfd„t        ‰j                   «      D «       «      rŒÅd|j
                  j"                  _        Œá y)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  — | ]<  \  }}‰j                   |   d k(  xr! t        |t        «      xr |j                  dk(  –— Œ> y­w)ÚmodeÚafterN)r�   re   r%   Úvalue)Ú.0Úirõ   Ú	first_decs      €rT   ú	<genexpr>zGPydanticModelTransformer.adjust_decorator_signatures.<locals>.<genexpr>   sO   øè ø€ ò  á &  3ð &×/Ñ/°Ñ2°fÑ<ÒrÄÈCÔQXÓAYÒrÐ^a×^gÑ^gÐkrÑ^rÓrñ ùs   ƒAATN)r  r‡   ÚnamesÚvaluesre   rf   r   Úoriginal_decoratorsr   Úcalleer    rj   Ú(IMPLICIT_CLASSMETHOD_DECORATOR_FULLNAMESÚMODEL_VALIDATOR_FULLNAMEÚanyÚ	enumerater‘   ÚfuncÚis_class)r`   rk   r6  s     @rT   r)  z4PydanticModelTransformer.adjust_decorator_signatures  sÃ   ø€ ð —9‘9—>‘>×'Ñ'×.Ñ.Ó0ò 	2ˆCÜ˜#Ÿ(™(¤IÕ.ØŸH™H×8Ñ8¸Ñ;�	ä˜y¬(Õ3Ü" 9×#3Ñ#3´XÕ>Ø!×(Ñ(×1Ñ1Ô5]Ò]ð "×(Ñ(×1Ñ1Ô5MÒMÜó  ä*3°I·N±NÓ*Cô õ ð .2�C—H‘H—M‘MÕ*ñ#	2rV   c           	     ó  — | j                   }t        «       }d}d}|j                  j                  «       D ]-  \  }}| j	                  ||«      }|sŒd}|j                  |«       Œ/ d}|j                  j                  D �]  }t        |t        t        f«      sŒt        |t        «      �r"|j                  d   }	t        |	t        «      r|	j                  dk7  rŒ[t        |j                  t        «      rdt!        |j                  j"                  |j                  j$                  «      D ]+  \  }
}|
€Œ	|j                  | j	                  |
|d¬«      «       Œ- �nt        |j                  t&        «      rý|j                  j                  D ]A  \  }}t        |t(        «      sŒ|j                  | j	                  |j*                  |«      «       ŒC n¢t        |t        «      r’|j                  dk7  r�Œo|j                  j                  D ]h  }t        |t        «      sŒ|j                  d   }	t        |	t        «      sŒ4|j                  | j	                  |	j                  |j                  «      «       Œj |r| j,                  j/                  d|«        nd}�Œ |s|rR|rP|j0                  rD|j2                  s8|j4                  s,| j6                  j8                  rt;        | j,                  |«       |j<                  j>                  d	d D ]�  }t@        |jB                  vrŒ| j,                  jE                  tG        |jH                  «      «       |jB                  t@           d
   j                  «       D ]  \  }}|jK                  ||«       Œ Œƒ |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  ÚModelConfigDataÚkeywordsÚitemsÚget_config_updateÚupdateÚdefsÚbodyre   r   r   Úlvaluesr    r”   Úrvaluer   rŽ   r�   r‘   r   r%   r3  r  ÚfailÚhas_alias_generatorr  r  r[   r¬   Úerror_required_dynamic_aliasesr‡   ÚmrorË   rÊ   Úadd_plugin_dependencyr5   rj   Ú
setdefault)r`   r   r»   Úhas_config_kwargsÚhas_config_from_namespacer”   ÚexprÚconfig_dataÚstmtÚlhsr™   rõ   Úkey_exprÚ
value_exprÚsubstmtr‡   r3  s                    rT   r#  z'PydanticModelTransformer.collect_config)  sú  € à�i‰iˆÜ Ó"ˆà!ÐØ$)Ð!ð Ÿ,™,×,Ñ,Ó.ò 	+‰JˆD�$Ø×0Ñ0°°tÓ<ˆKÚØ$(Ð!Ø—‘˜kÕ*ð		+ð "&ˆØ—H‘H—M‘Mó &	-ˆDÜ˜d¤^´XÐ$>Ô?Øä˜$¤Õ/Ø—l‘l 1‘o�Ü! #¤xÔ0°C·H±HÀÒ4NØä˜dŸk™k¬8Ô4Ü),¨T¯[©[×-BÑ-BÀDÇKÁK×DTÑDTÓ)Uò ]™˜ #Ø#Ð+Ø$ØŸ™ d×&<Ñ&<¸XÀsÐVZÐ&<Ó&[Õ\ò]ô   §¡¬XÔ6Ø04·±×0AÑ0Aò ZÑ,˜ *Ü)¨(´GÔ<Ø$ØŸ™ d×&<Ñ&<¸X¿^¹^ÈZÓ&XÕYñZô
 ˜D¤(Ô+Ø—9‘9 Ò(ÙØ#Ÿy™yŸ~™~ò T�GÜ% g¬~Ô>Ø Ø!Ÿ/™/¨!Ñ,�CÜ% c¬8Ô4Ø Ø—M‘M $×"8Ñ"8¸¿¹À7Ç>Á>Ó"RÕSðTñ !Ø—	‘	—‘ØoØôñ à(,Ò%ðM&	-ñP Ñ 9áØ×.Ò.Ø×0Ò0°F×4KÒ4KØ×&Ñ&×DÒDä.¨t¯y©y¸$Ô?à—H‘H—L‘L  Ð$ò 	/ˆDÜ 4§=¡=Ñ0Øð �I‰I×+Ñ+Ô,AÀ$Ç-Á-Ó,PÔQØ#Ÿ}™}¬\Ñ:¸8ÑD×JÑJÓLò /‘��eØ×!Ñ! $¨Õ.ñ/ð	/ð ˆrV   c                óÜ  — | j                   }i }i }t        |j                  j                  dd «      D �]|  }t        |j
                  vrŒ| j                  j                  t        |j                  «      «       |j
                  t           d   j                  «       D ]Í  \  }}t        j                  ||| j                  «      }	|	j                  |j                  | j                  «       |	||<   |j                  j                  j                  |«      }
|
sŒz|
j                   sŒ‡t#        |
j                   t$        t&        f«      rŒ¨| j                  j)                  d|
j                   «       ŒÏ |j
                  t           d   j                  «       D ]  \  }}t*        j                  |«      ||<   Œ �Œ t-        «       }t-        «       }| j/                  |j0                  «      D ]×  }| j3                  |||«      }|€Œ|j4                  d   }t#        |t6        «      sJ ‚t#        |t        «      rS|r&|j8                  dk7  rt;        | j                  |«       Œr|j=                  |j8                  «       |||j8                  <   Œ�t#        |t*        «      sŒ®|j=                  |j8                  «       |||j8                  <   ŒÙ t?        |jA                  «       «      t?        |jA                  «       «      fS )zACollects the fields for the model, accounting for parent classes.rF  éÿÿÿÿr!  z7BaseModel field may only be overridden by another fieldr"  r   rë   )!r  Úreversedr‡   rS  rË   rÊ   r  rT  r5   rj   rI  rÒ   r  r  r8  r³   rf   re   r*   r"   rP  r  ÚsetÚ%_get_assignment_statements_from_blockrL  Ú$collect_field_or_class_var_from_stmtrN  r    r”   Ú error_extra_fields_on_root_modelÚaddÚlistr9  )r`   rC  rò   r   Úfound_fieldsÚfound_class_varsr‡   r”   r  r,  Úsym_nodeÚcurrent_field_namesÚcurrent_class_vars_namesrZ  Úmaybe_fieldr[  s                   rT   r$  z6PydanticModelTransformer.collect_fields_and_class_varsu  so  € ð �i‰iˆð 79ˆØ=?ÐÜ˜SŸX™XŸ\™\¨!¨BÐ/Ó0ó 	QˆDô  4§=¡=Ñ0Øð �I‰I×+Ñ+Ô,AÀ$Ç-Á-Ó,PÔQà"Ÿm™m¬LÑ9¸(ÑC×IÑIÓKò ‘
��dÜ*×6Ñ6°t¸TÀ4Ç9Á9ÓM�ð
 ×1Ñ1°#·(±(¸D¿I¹IÔFØ%*�˜TÑ"àŸ8™8Ÿ>™>×-Ñ-¨dÓ3�Ú §£´jÀÇÁÔQTÔVeÐPfÕ6gØ—I‘I—N‘NØQØ Ÿ™õðð  #Ÿm™m¬LÑ9¸,ÑG×MÑMÓOò Q‘
��dÜ)>×)JÑ)JÈ4Ó)PÐ  Ò&òQð5	Qô< ),«ÐÜ-0«UÐ Ø×>Ñ>¸s¿x¹xÓHò 	9ˆDØ×CÑCÀDÈ,ÐXhÓiˆKØÐ"Øà—,‘,˜q‘/ˆCÜ˜c¤8Ô,Ð,Ð,Ü˜+Ô'9Ô:Ù  S§X¡X°Ò%7Ü4°T·Y±YÀÕEà'×+Ñ+¨C¯H©HÔ5Ø-8�L §¡Ò*Ü˜KÔ)>Õ?Ø(×,Ñ,¨S¯X©XÔ6Ø-8Ð  §¡Ò*ð	9ô" �L×'Ñ'Ó)Ó*¬DÐ1A×1HÑ1HÓ1JÓ,KÐKÐKrV   c              #  ó  K  — |j                   D ](  }|j                  rŒ| j                  |«      E d {  –—†  Œ* |j                  �;|j                  j                  s$| j                  |j                  «      E d {  –—†  y y y 7 ŒN7 Œ	­wrY   )rM  Úis_unreachablerc  Ú	else_body)r`   rZ  rM  s      rT   Ú,_get_assignment_statements_from_if_statementzEPydanticModelTransformer._get_assignment_statements_from_if_statement¹  s{   è ø€ Ø—I‘Iò 	LˆDØ×&Ó&Ø×EÑEÀdÓK×KÑKð	Lð �>‰>Ð%¨d¯n©n×.KÒ.KØ×AÑAÀ$Ç.Á.ÓQ×QÑQð /LÐ%ð LøàQús'   ‚BŸB³B´ABÁ:BÁ;BÂBc              #  ó°   K  — |j                   D ]A  }t        |t        «      r|–— Œt        |t        «      sŒ)| j	                  |«      E d {  –—†  ŒC y 7 Œ­wrY   )rM  re   r   r   rq  )r`   ÚblockrZ  s      rT   rc  z>PydanticModelTransformer._get_assignment_statements_from_blockÀ  sN   è ø€ Ø—J‘Jò 	SˆDÜ˜$¤Ô/Ø“
Ü˜D¤&Õ)Ø×LÑLÈTÓR×RÑRñ		Sð Sús   ‚5A¸AÁAÁAc                ó4  — | j                   }|j                  d   }t        |t        «      r.t	        j
                  |j                  «      r|j                  dk(  ry|j                  sÃt        |j                  t        «      rƒt        |j                  j                  t        «      r_t        |j                  j                  j                  t        «      r1|j                  j                  j                  j                  t        v ry|j                  |v ryt        | j                  |«       y|j                  d   }t        |t        «      syt	        j
                  |j                  «      r|j                  dk(  ry|j                  j                   j#                  |j                  «      }|€y|j$                  }t        |t&        «      ryt        |t(        «      r| j                  j+                  d|«       yt        |t,        «      sy|j.                  rt1        |j                  «      S t3        |j4                  «      }t        |t6        «      r5|j4                  j                  dk(  r| j                  j+                  d|«       | j9                  |«      }	| j;                  |«      }
|j4                  €ƒ|j<                  rw|j>                  rk| j                  jA                  |j                  d¬«      }|r||_        n:| j                  j+                  d	|«       tC        tD        jF                  «      |_        |j<                  r|	rt1        |j                  «      S | jI                  |«      \  }}|rD|jJ                  s8|jL                  s,| jN                  jP                  rtS        | j                  |«       | jU                  |«      }| jW                  ||j                  |«      }tY        |j                  ||	|
|||jZ                  |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   rC  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  rN  re   r    rF   Úis_valid_field_namer”   Ú
new_syntaxrO  r   r;  rj   ÚDECORATOR_FULLNAMESÚerror_untyped_fieldsr  r‡   r8  r³   rf   r"   r(   rP  r*   Úis_classvarr  rB   rŠ   r;   Úget_has_defaultÚ
get_strictru  Úis_inferredÚanalyze_simple_literal_typer9   r>   Ú
from_errorÚget_alias_infor  r  r[   r¬   rR  Úis_field_frozenÚ_infer_dataclass_attr_init_typerÒ   r•   rÙ   )r`   rZ  rC  r"  r   r[  rk   rf   Ú	node_typer×   rØ   r  rÔ   rÖ   rÕ   Ú	init_types                   rT   rd  z=PydanticModelTransformer.collect_field_or_class_var_from_stmtÇ  s%  € ð �i‰iˆà�l‰l˜1‰oˆÜ˜#œxÔ(´×0KÑ0KÈCÏHÉHÔ0UÐY\×YaÑYaÐesÒYsØà�Šä˜4Ÿ;™;¬Ô1Ü˜tŸ{™{×1Ñ1´8Ô<Ü˜tŸ{™{×1Ñ1×8Ñ8¼(ÔCØ—K‘K×&Ñ&×-Ñ-×6Ñ6Ô:MÑMð
 à�x‰x˜:Ñ%àô ! §¡¨DÔ1Øà�l‰l˜1‰oˆÜ˜#œxÔ(Øä×*Ñ*¨3¯8©8Ô4¸¿¹ÀNÒ8RØà�h‰h�n‰n× Ñ  §¡Ó*ˆØˆ;ð à�x‰xˆÜ�dœOÔ,ð
 ä�dœIÔ&Ø�I‰I�N‰NØXØôð ä˜$¤Ô$ð
 ð ×ÒÜ(¨¯©Ó2Ð2ô $ D§I¡IÓ.ˆ	Ü�i¤Ô*¨y¯~©~×/FÑ/FÐJ_Ò/_Ø�I‰I�N‰NØ7Øôð
 ×*Ñ*¨4Ó0ˆØ—‘ Ó&ˆà�8‰8Ð §¢°$×2BÒ2Bð —)‘)×7Ñ7¸¿¹ÈdÐ7ÓSˆCÙØ�•	à—	‘	—‘Ø]Øôô $¤I×$8Ñ$8Ó9�”	à�=Š=™[ä(¨¯©Ó2Ð2à#'×#6Ñ#6°tÓ#<Ñ ˆÐ áØ!×2Ò2°l×6SÒ6SØ×"Ñ"×@Ò@ä*¨4¯9©9°dÔ;Ø×(Ñ(¨Ó.ˆ	à×8Ñ8¸¸c¿h¹hÈÓMˆ	Ü!Ø—‘Ø/Ø#ØØØØ—‘Ø—;‘;ØØ—‘ô
ð 	
rV   c                ó8  — |j                   }|j                  r|S t        |j                   «      }t        |t        «      s|S |j                   j                  d«      }|�r:t        |j                  t        «      rì|j                   j                  d«      }|sJ ‚|j                   r+t        t        |j                   |j                   |«      «      }nt        t        j                  «      S t        |t        «      r7|j                  t        t        t        gk(  rt!        |j"                  d   |«      S | j$                  j'                  d|j                   j(                  › d�|«       |S | j$                  j'                  d|j                   j(                  › d�|«       |S )zvInfer __init__ argument type for an attribute.

        In particular, possibly use the signature of __set__.
        Ú__set__rP   z(Unsupported signature for "__set__" in "ú"zUnsupported "__set__" in ")rŠ   ÚimplicitrB   re   r;   r³   rf   r   Úget_containing_type_infor8   r9   r>   Úunannotatedr:   Ú	arg_kindsr   r
   Ú	arg_typesr  rP  r”   )	r`   rk   r”   rÈ   ÚdefaultÚtÚsetterÚ
super_infoÚsetter_types	            rT   r‚  z8PydanticModelTransformer._infer_dataclass_attr_init_typeP  sG  € ð
 —(‘(ˆØ�<Š<ØˆNÜ˜CŸH™HÓ%ˆô ˜!œXÔ&ØˆNØ—‘—‘˜IÓ&ˆÚÜ˜&Ÿ+™+¤wÔ/ØŸV™V×<Ñ<¸YÓG�
Ù!Ð!�zØ—;’;Ü"1Ô2IÈ&Ï+É+ÐWX×W]ÑW]Ð_iÓ2jÓ"k‘Kä"¤9×#8Ñ#8Ó9Ð9Ü˜k¬<Ô8¸[×=RÑ=RÜÜÜðWò >ô
 3°;×3HÑ3HÈÑ3KÈQÓOÐOà—I‘I—N‘NÐ%MÈaÏfÉfÏkÉkÈ]ÐZ[Ð#\Ð^eÔfð ˆð —	‘	—‘Ð!;¸A¿F¹F¿K¹K¸=ÈÐJÈGÔTàˆrV   c           
     óž  — d| j                   j                  j                  v r.| j                   j                  j                  d   j                  sy| j                  j
                  }t        |j                  «      }|j                  xs |j                   xr |j                  du}t        |j                  xr |j                   «      }| j                  |||||||d¬«      }	|�rf| j                  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 ]­  \  }}|�"|j1                  d«      s|j1                  d«      sŒ+| j                  j3                  |j4                  |   «      }|�,|dv r(|j7                  t9        t:        j<                  «      «      }t?        ||«      }|	jA                  tC        ||dtD        «      «       Œ¯ | jG                  ||«      sCt?        d	«      }|	jA                  tC        |tI        t:        jJ                  «      dtL        «      «       tO        | j                  | j                   d|	tQ        «       ¬
«       y)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.
        r_   NFT)rã   rä   Úrequires_dynamic_aliasesræ   r-  rò   rç   Ú__Ú_)Ú_cli_settings_sourceÚ_build_sourcesÚkwargs)r‘   Úreturn_type))r  r‡   r8  Úplugin_generatedr[   r«   r­   rØ   r  r  r  rQ  Úget_field_argumentsr  rd   r%  rf   re   r)   r   rŠ   r:   r?  r�   Ú
startswithÚ	anal_typerŒ  ÚacceptÚChangeExplicitTypeOfAnyr>   Úfrom_omitted_genericsr*   Úappendr   r   Úshould_init_forbid_extrar9   rá   r   Ú
add_methodr<   )r`   r!  r»   r-  rò   rã   rä   ræ   r“  r‘   Úbase_settings_nodeÚbase_settings_init_nodeÚ	func_typeÚarg_idxr™   Úanalyzed_variable_typerÜ   Úvars                     rT   r&  z(PydanticModelTransformer.add_initializerv  s€  € ð ˜Ÿ™Ÿ™×-Ñ-Ñ-°d·i±i·n±n×6JÑ6JÈ:Ñ6V×6gÒ6gØà×"Ñ"×-Ñ-ˆÜ˜FŸM™MÓ*ˆØ×0Ñ0ÒK°F×4KÑ4KÐLÒvÐQW×QiÑQiÐqvÐQvˆ	Ü#'¨×(BÑ(BÒ(bÈ6×KbÑKbÐGbÓ#cÐ Ø×'Ñ'ØØØ%Ø%=ØØ#Ø'Ø%)ð (ó 	
ˆò Ø!%§¡×!AÑ!AÔBWÓ!X×!]Ñ!]ÐÜÐ0´(Ô;Ð;Ð;ØÐ/×5Ñ5Ò5Ø*<×*BÑ*BÀ:Ñ*N×*SÑ*SÐ'Ü!Ð"9¼7ÔCÐCÐCØ*Ð6Ð;R×;WÑ;WÐ;cØ 7× <Ñ <�IÜ% i´Ô>Ð>Ð>Ü-6°y×7JÑ7JÓ-Kò _Ñ)˜ Ø#Ð+¨x×/BÑ/BÀ4Ô/HÐPX×PcÑPcÐdgÔPhØ$Ø15·±×1DÑ1DÀY×EXÑEXÐY`ÑEaÓ1bÐ.Ø1Ð=À(ð Oñ Cð 6L×5RÑ5RÜ 7¼	×8WÑ8WÓ Xó6Ð2ô $' xÐ1GÓ#H˜ØŸ™¤H¨XÐ7MÈtÔU\Ó$]Õ^ð_ð" ×,Ñ,¨V°VÔ<Ü�h“-ˆCØ�K‰Kœ ¤g¬i×.@Ñ.@Ó&AÀ4ÌÓSÔTä�4—9‘9˜dŸi™i¨¸$ÌHËJÖWrV   c           
     ó  — | j                   j                  t        › d�| j                   j                  t        › d�«      g«      }t        |t	        «       g«      }t        t        d|«      |dt        «      }t        j                  | j                   j                  j                  «      5  | j                  |dt        |j                  «      dd||¬«      }ddd«       | j                  ||«      sCt        d«      }	j!                  t        |	t#        t$        j&                  «      dt(        «      «       |r|gz   n|gz   }t+        | j                   | j,                  d	|t/        | j,                  j0                  «      d¬
«       y# 1 sw Y   Œ¯xY w)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_NAMErA   r<   r   r*   r   r6   rï   ra   rð   r›  r­   rØ   r¢  r¡  r9   r>   rá   r   r£  r  rC   r‡   )
r`   r!  r»   r-  rò   Úset_strÚoptional_set_strÚfields_set_argumentr‘   r©  s
             rT   r'  z3PydanticModelTransformer.add_model_construct_method¯  sY  € ð —)‘)×&Ñ&¬-¨¸Ð'=ÀÇ	Á	×@TÑ@TÔXeÐWfÐfjÐUkÓ@lÐ?mÓnˆÜ$ g¬x«zÐ%:Ó;ÐÜ&¤s¨=Ð:JÓ'KÐM]Ð_cÔelÓmÐÜ×&Ñ& t§y¡y×'8Ñ'8×'HÑ'HÓIñ 		Ø×+Ñ+ØØÜ! &§-¡-Ó0Ø).ØØ'Ø+ð ,ó ˆD÷		ð ×,Ñ,¨V°VÔ<Ü�h“-ˆCØ�K‰Kœ ¤g¬i×.@Ñ.@Ó&AÀ4ÌÓSÔTá/<ˆtÐ*Ð+Ò+ÐCVÐBWÐZ^ÑB^ˆäØ�I‰IØ�I‰IØØÜ% d§i¡i§n¡nÓ5Øö	
÷!		ð 		ús   Â),FÆFc                óN  — | j                   j                  }|D �]	  }|j                  j                  |j                  «      }|�u|j
                  }t        |t        «      r|xs |j                  |_	        Œ]t        |t        «      sŒn| j                  j                  rŒ…| j                  j                  «        Œ |j                  ||d¬«      }||_        ||_	        |j                  dz   |j                  z   |_        t#        t$        |«      |j                  |j                  <   �Œ y)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‡   r8  r³   r”   rf   re   r*   rÕ   Úis_propertyr"   r  Úfinal_iterationÚdeferrà   rj   Ú	_fullnamer&   r   )r`   r!  r�   r  r‡   r,  rj  r©  s           rT   r(  z#PydanticModelTransformer.set_frozen×  sÛ   € ð
 �y‰y�~‰~ˆØó 	BˆEØ—z‘z—~‘~ e§j¡jÓ1ˆHØÐ#Ø—m‘m�Ü˜c¤3Ô'Ø&,Ò&?°·±�C•OÜ ¤_Õ5¸d¿i¹i×>WÓ>Wà—I‘I—O‘OÕ%ð
 —l‘l 4¨¸�lÓ>�Ø�”Ø"(�”Ø $§¡°Ñ 3°c·h±hÑ >�”Ü'6´t¸SÓ'A�—
‘
˜3Ÿ8™8Ó$ñ#	BrV   c                óþ  — || j                   vry|dk(  rft        |t        «      r|j                  dk(  }n:t        |t        «      r|j
                  dk(  }n|st        || j                  |«       yt        |¬«      S |dk(  r/d}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                  |«       y)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)rQ  )úbuiltins.Trueúbuiltins.Falser½  rÁ   )r  re   r%   r3  r   r”   Úerror_invalid_config_valuer  rG  r    rj   )r`   r”   rõ   rD  r»  rQ  s         rT   rJ  z*PydanticModelTransformer.get_config_updateð  sê   € ð
 �t×1Ñ1Ñ1ØØ�7Š?Ü˜#œwÔ'Ø"Ÿy™y¨HÑ4‘Ü˜C¤Ô,Ø"Ÿx™x¨8Ñ3‘á ô /¨t°T·Y±YÀÔDØÜ"°Ô=Ð=ØÐ$Ò$Ø"&ÐÜ˜#œxÔ(¨S¯\©\¸_Ò-LØ&+Ð#Ü"Ð7JÔKÐKÜ�cœ8Ô$¨¯©Ð9\Ñ)\Ü"ÑM d¨C¯L©L¸OÑ,KÐ%LÑMÐMÜ" 4¨¯©°CÔ8ØrV   c                óÆ  — | j                   }t        |t        «      ryt        |t        «      r¤t        |j                  t
        «      rŠ|j                  j                  t        k(  rmt        |j                  |j                  «      D ]I  \  }}|�|dk(  r|j                  t        uc S |dk(  sŒ't        |t        «      xr |j                  dk(   c S  yt        |t        «       S )zUReturns a boolean indicating whether the field defined in `stmt` is a required field.Fr�  Údefault_factoryr¼  )rO  re   r'   r   r;  r#   rj   ÚFIELD_FULLNAMErŽ   r‘   r�   rb   r   r    ©rZ  rX  rõ   r”   s       rT   r{  z(PydanticModelTransformer.get_has_default  sÀ   € ð �{‰{ˆÜ�dœHÔ%àÜ�dœHÔ%¬*°T·[±[Ä'Ô*JÈtÏ{É{×OcÑOcÔguÒOuô
 ! §¡¨D¯N©NÓ;ò _‘	��Tà�< 4¨9Ò#4ØŸ=™=´Ð<Ò<ØÐ,Ó,Ü *¨3´Ó 9Ò ]¸c¿l¹lÈoÑ>]Ð^Ò^ð_ð ä˜d¤LÓ1Ð1Ð1rV   c                ól  — | j                   }t        |t        «      r˜t        |j                  t        «      r~|j                  j
                  t        k(  rat        |j                  |j                  «      D ]>  \  }}|dk7  rŒt        |t        «      r"|j
                  dk(  r y|j
                  dk(  r y y y)zEReturns a the `strict` value of a field if defined, otherwise `None`.rØ   r½  Tr¾  FN)rO  re   r   r;  r#   rj   rÂ  rŽ   r‘   r�   r    rÃ  s       rT   r|  z#PydanticModelTransformer.get_strict)  s”   € ð �{‰{ˆÜ�dœHÔ%¬*°T·[±[Ä'Ô*JÈtÏ{É{×OcÑOcÔguÒOuÜ  §¡¨D¯N©NÓ;ò ‘	��TØ˜8Ò#ØÜ˜c¤8Ô,Ø—|‘| Ò6Ù#ØŸ™Ð)9Ò9Ù$Ùðð rV   c                óè  — | j                   }t        |t        «      ryt        |t        «      r7t        |j                  t
        «      r|j                  j                  t        k(  syd|j                  v r)|j                  |j                  j                  d«         }n8d|j                  v r)|j                  |j                  j                  d«         }nyt        |t        «      r|j                  dfS y)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)rO  re   r'   r   r;  r#   rj   rÂ  r�   r‘   Úindexr%   r3  )rZ  rX  rõ   s      rT   r€  z'PydanticModelTransformer.get_alias_info9  s¿   € ð �{‰{ˆÜ�dœHÔ%àô �tœXÔ&¬:°d·k±kÄ7Ô+KÐPT×P[ÑP[×PdÑPdÔhvÒPvð à §¡Ñ/Ø—)‘)˜DŸN™N×0Ñ0Ð1CÓDÑE‰CØ˜Ÿ™Ñ&Ø—)‘)˜DŸN™N×0Ñ0°Ó9Ñ:‰Càä�cœ7Ô#Ø—9‘9˜eÐ#Ð#àrV   c                óv  — | j                   }t        |t        «      ryt        |t        «      r7t        |j                  t
        «      r|j                  j                  t        k(  syt        |j                  «      D ]<  \  }}|dk(  sŒ|j                  |   }t        |t        «      xr |j                  dk(  c S  y)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½  )rO  re   r'   r   r;  r#   rj   rÂ  r?  r�   r‘   r    )rZ  rX  r5  r™   rõ   s        rT   r�  z(PydanticModelTransformer.is_field_frozenW  s    € ð �{‰{ˆÜ�dœHÔ%àô �tœXÔ&¬:°d·k±kÄ7Ô+KÐPT×P[ÑP[×PdÑPdÔhvÒPvð ä$ T§^¡^Ó4ò 	U‰KˆAˆxØ˜8Ó#Ø—i‘i ‘l�Ü! #¤xÓ0ÒT°S·\±\À_Ñ5TÒTð	Uð rV   c	                óâ   — | j                   j                  }	|D �
cg c]H  }
|r|
j                  s8|
j                  |	|||xs ||| j                  ||xr |
j
                  dk(  ¬«      ‘ŒJ }}
|S c c}
w )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.
        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,  Ú	argumentss               rT   r›  z,PydanticModelTransformer.get_field_argumentsp  s‰   € ð �y‰y�~‰~ˆð  ö
ð Ù %×"9Ò"9ð ×ÑØØØ)Ø7ÒF¸;Ø#Ø—I‘IØ)AØ#0Ò#I°U·Z±ZÀ6Ñ5Ið õ 	ð
ˆ	ð 
ð Ðùò
s   ›AA,c                óÄ   — |j                   s2|j                  s&| j                  |t        |j                  «      «      ry|j
                  ry| 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­   rQ  r»  r[   rª   )r`   r!  r»   s      rT   r¢  z1PydanticModelTransformer.should_init_forbid_extra�  sQ   € ð ×'Ò'¨6×+BÒ+BØ×,Ñ,¨V´T¸&×:TÑ:TÓ5UÔVØØ×ÒØØ×!Ñ!×3Ñ3Ð3rV   c                ó\   — | D ]  }|j                   sŒ y |r| D ]  }|j                  �Œ y y)z‘Returns whether any fields on the model have a "dynamic alias", i.e., an alias that cannot be
        determined during static analysis.
        TF)rÖ   rÔ   )r!  rQ  r,  s      rT   rÌ  z1PydanticModelTransformer.is_dynamic_alias_present�  sE   € ð
 ò 	ˆEØ×&Ó&Ùð	ñ Øò  �Ø—;‘;Ñ&Ùð ð rV   N)
r   r   r€   zExpression | Statementr�   r2   r[   rZ   rŸ   r    )rŸ   r­   )rŸ   r    )rŸ   rG  )rC  rG  rò   r­   rŸ   zJtuple[list[PydanticModelField] | None, list[PydanticModelClassVar] | None])rZ  r   rŸ   úIterator[AssignmentStmt])rs  r   rŸ   rÎ  )rZ  r   rC  rG  r"  z dict[str, PydanticModelClassVar]rŸ   z1PydanticModelField | PydanticModelClassVar | None)rk   r&   r”   r¡   rÈ   r   rŸ   r
  )
r!  úlist[PydanticModelField]r»   rG  r-  r­   rò   r­   rŸ   r    )r!  rÏ  r�   r2   r  r­   rŸ   r    r  )r”   r¡   rõ   r   rD  r­   rŸ   úModelConfigData | None)rZ  r   rŸ   r­   )rZ  r   rŸ   r  )rZ  r   rŸ   ztuple[str | None, bool])r!  rÏ  rã   r­   rä   r­   ræ   r­   r“  r­   r-  r­   rò   r­   rç   r­   rŸ   úlist[Argument])r!  rÏ  r»   rG  rŸ   r­   )r!  rÏ  rQ  r­   rŸ   r­   )r£   r¤   r¥   r¦   r  rÀ   r_   r‚   r)  r#  r$  rq  rc  rd  r‚  r&  r'  r(  rJ  Ústaticmethodr{  r|  r€  r�  r›  r¢  rÌ  rÁ   rV   rT   r~   r~   Ë  s  … ñò	'Ð˜8ó 	ð+àð+ð 'ð+ð -ð	+ð
 ,ð+ð 
ó+ó"óH2ó6JðXBLØ+ðBLØ<@ðBLà	SóBLóHRóSðG
Ø"ðG
Ø2AðG
ØOoðG
à	:óG
óR$ðL7XØ.ð7XØ8Gð7XØVZð7XØkoð7Xà	ó7Xðr&
à(ð&
ð  ð&
ð ð	&
ð
 ð&
ð 
ó&
óPBô2!ðF ò2ó ð2ð* òó ðð òó ðð: òó ððB */ðà(ðð ðð ð	ð
 ðð #'ðð ðð ðð #'ðð 
óó@4ð òó ñrV   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.c                ó0   •— || _         t        ‰| �	  «        y rY   )Ú_type_of_anyr^   r_   )r`   Útype_of_anyrb   s     €rT   r_   z ChangeExplicitTypeOfAny.__init__¯  s   ø€ Ø'ˆÔÜ‰ÑÕrV   c                óx   — |j                   t        j                  k(  r|j                  | j                  ¬«      S |S )N)rÖ  )rÖ  r>   rá   rì   rÕ  )r`   rŽ  s     rT   Ú	visit_anyz!ChangeExplicitTypeOfAny.visit_any³  s0   € Ø�=‰=œI×.Ñ.Ò.Ø—?‘?¨t×/@Ñ/@�?ÓAÐAàˆHrV   )rÖ  r	  rŸ   r    )rŽ  r9   rŸ   r=   )r£   r¤   r¥   r¦   r_   rØ  r§   r¨   s   @rT   rŸ  rŸ  ¬  s   ø„ ÙFõ÷rV   rŸ  c                  ó`   — e Zd ZdZ	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zd	d„Zd
d„Zdd„Zy)rG  z(Pydantic mypy plugin model config class.Nc	                ót   — || _         || _        || _        || _        || _        || _        || _        || _        y rY   )r»  r  rÄ   r  r  r  rQ  rØ   )	r`   r»  r  rÄ   r  r  r  rQ  rØ   s	            rT   r_   zModelConfigData.__init__½  sB   € ð )ˆÔØˆŒØ.ˆÔØ 0ˆÔØ!2ˆÔØ 0ˆÔØ#6ˆÔ Øˆ�rV   c                óp   — | j                   j                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}S c c}}w )z†Returns a dict of Pydantic model config names to their values.

        It includes the config if config value is not `None`.
        )Ú__dict__rI  )r`   ÚkÚvs      rT   r*  zModelConfigData.get_values_dictÑ  s1   € ð
 "&§¡×!4Ñ!4Ó!6×H™˜˜A¸!¹-��1‘ÓHÐHùÓHs   ž
2©2c                óp   — |€y|j                  «       j                  «       D ]  \  }}t        | ||«       Œ y)z$Update Pydantic model config values.N)r*  rI  r¶   )r`   r»   rÝ  rÞ  s       rT   rK  zModelConfigData.updateØ  s;   € àˆ>ØØ×*Ñ*Ó,×2Ñ2Ó4ò 	 ‰DˆAˆqÜ�D˜!˜QÕñ	 rV   c                ó8   — t        | |«      €t        | ||«       yy)zFSet default value for Pydantic model config if config value is `None`.N)r‰   r¶   )r`   r¼   r3  s      rT   rU  zModelConfigData.setdefaultß  s    € ä�4˜ÓÐ%Ü�D˜#˜uÕ%ð &rV   )NNNNNNNN)r»  r  r  r  rÄ   r  r  r  r  r  r  r  rQ  r  rØ   r  r¿   )r»   rÐ  rŸ   r    )r¼   r¡   r3  r   rŸ   r    )r£   r¤   r¥   r¦   r_   r*  rK  rU  rÁ   rV   rT   rG  rG  º  s‚   „ Ù2ð %)Ø"Ø'+Ø(,Ø)-Ø(,Ø+/Ø"ðà!ðð ðð %ð	ð
 &ðð 'ðð &ðð )ðð óó(Ió ô&rV   rG  c                ó,   — | j                  t        «      S )zXReturn whether the type info is a root model subclass (or the `RootModel` class itself).)rg   ÚROOT_MODEL_FULLNAME)r‡   s    rT   rò   rò   å  s   € à�=‰=Ô,Ó-Ð-rV   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 subclassc                ó<   — |j                  d| › d�|t        ¬«       y)zCEmits an error when the model does not have `from_attributes=True`.r‡  z$" does not have from_attributes=True©ÚcodeN)rP  Ú	ERROR_ORM)Ú
model_namer�   rÈ   s      rT   rÌ   rÌ   ó  s   € à‡H�Hˆq��Ð@ÐAÀ7ÔQZ€HÕ[rV   c                ó<   — |j                  d| › d�|t        ¬«       y)z0Emits an error when the config value is invalid.zInvalid value for "Config.r‡  rå  N)rP  ÚERROR_CONFIG)r”   r�   rÈ   s      rT   r¿  r¿  ø  s   € à‡H�HÐ)¨$¨¨qÐ1°7Ä€HÕNrV   c                ó4   — | j                  d|t        ¬«       y)znEmits required dynamic aliases error.

    This will be called when `warn_required_dynamic_aliases=True`.
    z#Required dynamic aliases disallowedrå  N)rP  ÚERROR_ALIAS©r�   rÈ   s     rT   rR  rR  ý  s   € ð
 ‡H�HÐ2°GÄ+€HÕNrV   c                óV   — d}d| › d�}|d|› d�z  }|j                  ||t        ¬«       y)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)rP  ÚERROR_UNEXPECTED)rÏ   r�   rÈ   ÚlinkÚfull_messages        rT   rÇ   rÇ     sA   € ð
 D€DØLÈVÈHÐTVÐW€LØÐ<¸T¸FÐB[Ð\Ñ\€LØ‡H�Hˆ\˜7Ô)9€HÕ:rV   c                ó4   — | j                  d|t        ¬«       y)z;Emits an error when there is an untyped field in the model.zUntyped fields disallowedrå  N)rP  ÚERROR_UNTYPEDrí  s     rT   ry  ry    s   € à‡H�HÐ(¨'¼€HÕFrV   c                ó4   — | j                  d|t        ¬«       y)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)rP  ÚERROR_EXTRA_FIELD_ROOT_MODELrí  s     rT   re  re    s   € à‡H�HÐAÀ7ÔQm€HÕnrV   c                ó>  — |j                   }||j                  v rd|j                  |   }	|	j                  rIt        |	j                  t
        «      r/|j                  j                  j                  |	j                  «       t        | t        «      r| j                  d«      }
n| j                  dg «      }
|r6|xs t        t        |«      «      }t        t        d«      |dt         d«      g}n+|xs t        |«      }t        t        d«      |dt         «      g}||z   }g g g }}}|D ]p  }|j"                  sJ d«       ‚|j%                  |j"                  «       |j%                  |j&                  j(                  «       |j%                  |j*                  «       Œr t-        |||||
|r|gnd¬«      }t        ||t/        t1        «       g«      «      }||_         t3        ||«      |_        ||_        |j8                  dz   |z   |_        |j<                  |_        ||j                  v r2t?        ||j                  «      }|j                  |   |j                  |<   |rud|_         t        ||j4                  «      }||_         |j:                  |_        d|_!        tE        |tG        d	«      g|«      }|j<                  |_        tI        tJ        |«      }	ntI        tJ        |«      }	d|	_        |	|j                  |<   |jL                  j                  j                  j%                  |«       y)
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‡   r8  rš  re   rf   r   rL  rM  Úremover2   r®  Únamed_generic_typer?   rC   r   r*   r   rÝ   r¡  rÜ   r”   rß   r:   r   r!   r4   rŠ   rA  rj   r¸  r•   rD   Úis_decoratedr­  r   r    r&   r   Údefn)r�   r   r”   r‘   r™  rî   Útvar_defr­  r‡   rk   Úfunction_typeÚfirstrŒ  r�   r‹  rõ   Ú	signaturer@  Úr_namerÞ  Údecs                        rT   r£  r£    s¦  € ð �8‰8€Dð ˆt�z‰zÑØ�j‰j˜ÑˆØ×Ò¤J¨s¯x©x¼Ô$AØ�H‰H�M‰M× Ñ  §¡Ô*ä�#Ô6Ô7ØŸ™Ð':Ó;‰à×.Ñ.Ð/BÀBÓGˆáØÒ>¤¬-¸Ó*=Ó!>ˆ	Üœ#˜f›+ y°$¼ÀÓFÐG‰àÒ4¤¨tÓ!4ˆ	ô œ#Ð1Ó2°I¸tÄWÓMÐNˆØ�4‰<€Dà&(¨"¨b˜)ˆy€IØò #ˆØ×"Ò"ÐHÐ$HÓHÐ"Ø×Ñ˜×,Ñ,Ô-Ø×Ñ˜Ÿ™×*Ñ*Ô+Ø×Ñ˜Ÿ™Õ"ð	#ô Ø�9˜i¨°mÑ]eÐPXÉzÐkoô€Iô �4˜œu¤h£j \Ó2Ó3€DØ€D„IÜ! )¨TÓ2€D„IØ"€D„MØ—]‘] SÑ(¨4Ñ/€D„NØ—	‘	€D„Ið ˆt�z‰zÑä-¨d°D·J±JÓ?ˆØ!ŸZ™Z¨Ñ-ˆ�
‰
�6Ññ
 Ø ˆÔÜ��d—i‘iÓ ˆØˆŒØ—n‘nˆŒØˆÔÜ˜œx¨Ó6Ð7¸Ó;ˆØ—9‘9ˆŒÜœd CÓ(‰äœd DÓ)ˆØ€CÔØ€D‡J�JˆtÑà‡I�I‡N�N×Ñ×Ñ˜tÕ$rV   c                ó  — | j                  d«      syt        j                  dk\  rddl}n	 ddl}t        | d«      5 }|j                  |«      cddd«       S # t
        $ r ddl}|j                  dd¬«       Y yw xY w# 1 sw Y   yxY w)	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`.rP   )Ú
stacklevelÚrb)
rs   ÚsysÚversion_infoÚtomllibÚtomliÚImportErrorÚwarningsÚwarnÚopenÚload)r±   Útoml_r  Úrfs       rT   r²   r²   r  sŠ   € ð
 ×Ñ Ô(Øä
×Ñ˜7Ò"Üð	Û!ô 
ˆk˜4Ó	 ð  BØ�z‰z˜"‹~÷ñ øô ò 	Ûà�M‰MÐfÐstˆMÔuÙð		ú÷ð ús   ¬A ¼A=Á A:Á9A:Á=B)rS   r¡   rŸ   ztype[Plugin])r{   r/   rŸ   r=   )r‡   r)   rŸ   r­   )rè  r¡   r�   r,   rÈ   r   rŸ   r    )r”   r¡   r�   r2   rÈ   r   rŸ   r    )r�   r2   rÈ   r   rŸ   r    )rÏ   r¡   r�   z8CheckerPluginInterface | SemanticAnalyzerPluginInterfacerÈ   r   rŸ   r    )r�   r,   rÈ   r   rŸ   r    )NNF)r�   z8SemanticAnalyzerPluginInterface | CheckerPluginInterfacer   r   r”   r¡   r‘   rÑ  r™  r=   rî   r
  rþ  zTypeVarType | Noner­  r­   rŸ   r    )r±   r¡   rŸ   zdict[str, Any] | None)…r¦   Ú
__future__r   r	  Úcollections.abcr   Úconfigparserr   Útypingr   r   Ú
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*   Úmypy.optionsr+   Úmypy.pluginr,   r-   r.   r/   r0   r1   r2   Úmypy.plugins.commonr3   Úmypy.semanalr4   Úmypy.server.triggerr5   Ú
mypy.stater6   Úmypy.type_visitorr7   Úmypy.typeopsr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   Úmypy.typevarsrC   Ú	mypy.utilrD   Úmypy.versionrE   Úmypy_versionÚpydantic._internalrF   Úpydantic.versionrG   r¹   rË   rh   rw   r%  râ  rn   rÂ  ÚDATACLASS_FULLNAMEr=  rx  r<  ÚMYPY_VERSION_TUPLEr¯  rU   rR   rZ   rt   rÒ   r  r~   rŸ  rG  rò   rç  rê  rì  rð  rô  ÚERROR_FIELD_DEFAULTSrö  rÌ   r¿  rR  rÇ   ry  re  r£  r²   rÁ   rV   rT   ú<module>r.     s�  ðÙ då "ã 
Ý $Ý %ß  ó Ý %ß @÷!÷ !÷ !÷ !÷ !÷ !÷ !÷ !ó !õD !÷÷ ñ õõ +Ý 5Ý Ý ,Ý 0÷÷ ÷ õ (Ý 2Ý 4å &Ý /à €Ø'€Ø.Ð Ø4Ð Ø=Ð Ø5Ð ØRÐ Ø(€Ø5Ð ØKÐ òÐ ð ,?ÐBtÐAuÑ+uÐ (ñ (¨Ó5Ð Ø€ð €óôTM�Vô TM÷n+Cñ +Có\#÷4PTñ PT÷f
ñ 
÷2^ñ ^ôB˜nô ÷(&ñ (&óV.ñ
 �nÐ&DÀjÓQ€	ÙÐ*Ð,BÀJÓO€ÙÐ(Ð*DÀjÓQ€ÙÐ2Ð4IÈ:ÓVÐ ÙÐ*Ð,FÈ
ÓS€Ù Ð!1Ð3KÈZÓXÐ Ù(Ð)9Ð;^Ð`jÓkÐ ó\ó
Oó
Oð;Øð;ØNð;ØY`ð;à	ó;óGó
oð "Ø#'Ø ðU%Ø	AðU%à	ðU%ð ðU%ð ð	U%ð
 ðU%ð ðU%ð !ðU%ð ðU%ð 
óU%ôprV   