Ë
    oPêjcü  ã                  óî  — 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[dOd)„Zq G d*„ d+e;«      Zr G d,„ d-«      ZsdPd.„Zt G d/„ d0«      Zu G d1„ d2«      Zv G d3„ d4«      Zw G d5„ d6eI«      Zx G d7„ d8«      ZydQd9„Zz ed:d;d<«      Z{ ed=d>d<«      Z| ed?d@d<«      Z} edAdBd<«      Z~ edCdDd<«      Z edCdEd<«      Z€ edCdFd<«      Z�dRdG„Z‚dSdH„ZƒdTdI„Z„	 	 	 	 	 	 	 	 dUdJ„Z…dTdK„Z†dVdL„Z‡	 	 	 dW	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dXdM„ZˆdYdN„Z‰y)Zz^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é   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    úR/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/pydantic/mypy.pyÚpluginrW   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 )rT   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     €rV   ra   zPydanticPlugin.__init__‡   s4   ø€ Ü1°'Ó:ˆÔØ ×.Ñ.×6Ñ6Ó8ˆÔÜ‰Ñ˜Õ!rX   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)rb   ÚfullnameÚsyms      rV   Úget_base_class_hookz"PydanticPlugin.get_base_class_hookŒ   sD   € à×)Ñ)¨(Ó3ˆÙ”:˜cŸh™h¬Ô1à�x‰x× Ñ Ô!3Ô4Ø×@Ñ@Ð@ØrX   c                ó8   — |t         t        fv r| j                  S y)z,Update Pydantic `ModelMetaclass` definition.N)ÚMODEL_METACLASS_FULLNAMEÚROOT_MODEL_METACLASS_FULLNAMEÚ)_pydantic_model_metaclass_marker_callback©rb   rl   s     rV   Úget_metaclass_hookz!PydanticPlugin.get_metaclass_hook•   s    € àÔ0Ô2OÐPÑPØ×AÑAÐAØrX   c                ó2   — |j                  d«      rt        S y)z-Adjust return type of `from_orm` method call.z	.from_ormN)ÚendswithÚfrom_attributes_callbackrs   s     rV   Úget_method_hookzPydanticPlugin.get_method_hook›   s   € à×Ñ˜[Ô)Ü+Ð+ØrX   c                ó.   — |t         k(  r| j                  S y)zARecognize `create_model()` calls as dynamic BaseModel subclasses.N)ÚCREATE_MODEL_FULLNAMEÚ_pydantic_create_model_callbackrs   s     rV   Úget_dynamic_class_hookz%PydanticPlugin.get_dynamic_class_hook¡   s   € àÔ,Ò,Ø×7Ñ7Ð7ØrX   c                ó   — | j                   S )zjReturn all plugin config data.

        Used by mypy to determine if cache needs to be discarded.
        )r_   )rb   Úctxs     rV   Úreport_config_dataz!PydanticPlugin.report_config_data§   s   € ð
 × Ñ Ð rX   c                ó�   — t        |j                  |j                  |j                  | j                  «      }|j                  «        y r[   )ÚPydanticModelTransformerÚclsÚreasonÚapir]   Ú	transform)rb   r~   Útransformers      rV   rk   z3PydanticPlugin._pydantic_model_class_maker_callback®   s0   € Ü.¨s¯w©w¸¿
¹
ÀCÇGÁGÈT×M_ÑM_Ó`ˆØ×ÑÕrX   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ˆ   )rb   r~   Úinfo_metaclasss      rV   rr   z8PydanticPlugin._pydantic_model_metaclass_marker_callback²   s^   € ð ×Ñ×7Ò7ØØŸ™Ÿ™×8Ñ8ˆÙÐNÐNÓNˆ~Ü�>×&Ñ&Ð(BÀDÔIØ;?ˆN×ÑÕ8ð JrX   c                óâ  — t         }t        |j                  j                  |j                  j                  d¬«      D �]  \  }}|dk(  sŒt        |t        «      sŒ|j                  €Œ+t        |j                  t        «      r|j                  j                  }Œ\t        |j                  t        «      sŒwt        |j                  j                  «      }t        |t        «      r|j                  j                  }Œ½t        |t        «      sŒÎt        |j                  «      }t        |t         «      r yt        |t        «      s�Œ|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"                  j1                  |j*                  t3        t4        |
«      «       d|
j                  v ri|
j                  j7                  dd¬«      \  }}t3        t8        |
«      |j"                  j:                  |j"                  j<                     j>                  |<   yy)	zFMake variables assigned from `create_model()` usable as types by mypy.T©ÚstrictÚ__base__Nú@ú.é   )Úmaxsplit) rj   ÚzipÚcallÚ	arg_namesÚargsrg   r$   rh   r*   rl   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)rb   r~   Úbase_fullnameÚarg_nameÚarg_exprÚarg_typeÚ	item_typeÚbase_symÚ	base_infoÚbase_instancerŠ   Ú_rž   s                rV   r{   z.PydanticPlugin._pydantic_create_model_callback¿   s  € ô +ˆÜ"% c§h¡h×&8Ñ&8¸#¿(¹(¿-¹-ÐPTÔ"Uó 	DÑˆH�hØ˜:Ó%¬*°X¼wÕ*GÈHÏMÉMÑLeÜ˜hŸm™m¬XÔ6Ø$,§M¡M×$:Ñ$:‘MÜ §¡¬sÕ3Ü.¨x¯}©}×/AÑ/AÓB�HÜ! (¬HÔ5Ø(0¯©×(>Ñ(>™Ü# H¬hÕ7Ü$3°H·M±MÓ$B˜	Ü% i´Ô=ñ #Ü% i´Ö:Ø,5¯N©N×,CÑ,CšMð!	Dð$ —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ÔLð �$—-‘-ÑØ—m‘m×*Ñ*¨3¸Ð*Ó;‰GˆAˆtÜ>MÌdÐTXÓ>YˆC�G‰G�O‰O˜CŸG™G×.Ñ.Ñ/×5Ñ5°dÒ;ð  rX   ©rc   r,   ÚreturnÚNone)rl   Ústrr°   z(Callable[[ClassDefContext], None] | None)rl   r²   r°   z&Callable[[MethodContext], Type] | None)rl   r²   r°   z/Callable[[DynamicClassDefContext], None] | None)r~   r2   r°   údict[str, Any])r~   r.   r°   r±   )r~   r/   r°   r±   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ra   rn   rt   rx   r|   r   rk   rr   r{   Ú__classcell__©rd   s   @rV   rT   rT   „   s5   ø„ Ù#õ"ó
óóóó!ó ó@÷*ZrX   rT   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
)r\   aÛ  A Pydantic mypy plugin config holder.

    Attributes:
        init_forbid_extra: Whether to add a `**kwargs` at the end of the generated `__init__` signature.
        init_typed: Whether to annotate fields in the generated `__init__`.
        warn_required_dynamic_aliases: Whether to raise required dynamic aliases error.
        debug_dataclass_transform: Whether to not reset `dataclass_transform_spec` attribute
            of `ModelMetaclass` for testing purposes.
    )Úinit_forbid_extraÚ
init_typedÚwarn_required_dynamic_aliasesr‰   Úboolr»   r¼   r½   r‰   c           
     ó¶  — |j                   €y t        |j                   «      }|�Ë|j                  di «      j                  di «      }| j                  D ]?  }|j                  |d«      }t	        |t
        «      st        d|› �«      ‚t        | ||«       ŒA |j                  «       t        | j                  «      z
  }t        |«      D ]&  }t        d|› d||   › �t        j                  ¬«       Œ( y t        «       }|j                  |j                   «       | j                  D ]'  }|j!                  t"        |d¬«      }t        | ||«       Œ) |j%                  t"        «      rzt        |j'                  t"        «      «      t        | j                  «      z
  }t        |«      D ]7  }t        d|› d|j                  t"        |«      › �t        j                  ¬«       Œ9 y y )	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__rg   r¾   Ú
ValueErrorÚsetattrÚkeysÚsetÚsortedÚprintÚsysÚstderrr   ÚreadÚ
getbooleanÚCONFIGFILE_KEYÚhas_sectionrc   )rb   rc   Útoml_configÚconfigÚkeyÚsettingÚunknown_keysr]   s           rV   ra   zPydanticPluginConfig.__init__  s¸  € Ø×ÑÐ&Øä  ×!4Ñ!4Ó5ˆØÐ"Ø —_‘_ V¨RÓ0×4Ñ4°_ÀbÓIˆFØ—~‘~ò ,�Ø Ÿ*™* S¨%Ó0�Ü! '¬4Ô0Ü$Ð'VÐWZÐV[Ð%\Ó]Ð]Ü˜˜c 7Õ+ð	,ð
 "Ÿ;™;›=¬3¨t¯~©~Ó+>Ñ>ˆLÜ˜lÓ+ò g�ÜÐ>¸s¸eÀ3ÀvÈcÁ{ÀmÐTÔ[^×[eÑ[eÖfñgô )›NˆMØ×Ñ˜w×2Ñ2Ô3Ø—~‘~ò ,�Ø'×2Ñ2´>À3ÐQVÐ2ÓW�Ü˜˜c 7Õ+ð,ð ×(Ñ(¬Ô8Ü" =×#8Ñ#8¼Ó#HÓIÌCÐPT×P^ÑP^ÓL_Ñ_�Ü! ,Ó/ò �CÜØ@ÀÀÀSÈ×IZÑIZÔ[iÐknÓIoÐHpÐqÜ ŸZ™Zöñð 9rX   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Œ   )rb   rÕ   s     rV   r^   zPydanticPluginConfig.to_data  s&   € à37·>±>ÖB¨C�”W˜T 3Ó'Ñ'ÒBÐBùÒBs   �&Nr¯   ©r°   r³   )r´   rµ   r¶   r·   rÆ   Ú__annotations__ra   r^   © rX   rV   r\   r\   ì   s3   … ñð€Ið ÓØÓØ#'Ó'Ø#Ó#óô:CrX   r\   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�   rg   rA   r›   r<   Úret_typer=   rd   r´   Úerror_unexpected_behaviorr„   ÚcontextÚdefault_return_typeÚmetadatarÅ   ÚMETADATA_KEYri   rj   Úerror_from_attributesrž   )r~   Úctx_typeÚ
model_typeÚdetailÚpydantic_metadatarÞ   s         rV   rw   rw   $  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Ø×"Ñ"Ð"rX   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 r[   )
rž   ÚaliasÚ	is_frozenÚhas_dynamic_aliasÚhas_defaultr‘   rŸ   Úcolumnr�   rŠ   )rb   rž   rí   rî   rï   rð   r‘   rŸ   rñ   r�   rŠ   s              rV   ra   zPydanticModelField.__init__A  sL   € ð ˆŒ	ØˆŒ
Ø"ˆŒØ!2ˆÔØ&ˆÔØˆŒØˆŒ	ØˆŒØˆŒ	Øˆ�	rX   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	   r;   r@   Úspecial_formr   r   rð   r   r   )rb   Úcurrent_infoÚtypedÚmodel_strictÚforce_optionalÚ	use_aliasr„   Úforce_typevars_invariantÚis_root_model_rootrô   r‘   rõ   s               rV   Úto_argumentzPydanticModelField.to_argumentY  s¢   € ð —;‘;˜|¨S°)Ð=UÓVˆà!%§¡Ð!4‘¸$¿+¹+ˆÙ‘FØ"×.Ñ.¨|¸SÐTXÐ.ÓY‰Oä%¤i×&<Ñ&<Ó=ˆOäØØ+Øá!ô ô	
ð 	
ñ $2°T×5EÒ5E”-ô
ð 	
ô LUô
ð 	
rX   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)rg   r�   rB   Úcopy_modifiedr   ÚvariancerŠ   Ú	self_typer8   Ústrict_optional_setrc   Ústrict_optionalrE   r=   rš   r	   ÚidÚis_root_modelr
   rC   )rb   rú   r„   rÿ   ró   Úmodified_typeÚfilled_with_typevarsÚargÚexpanded_typeÚ	root_typeÚexpanded_root_types              rV   r	   zPydanticModelField.expand_typev  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	   )rb   rú   r„   rþ   rÿ   rž   s         rV   rø   zPydanticModelField.to_var£  s?   € ñ ˜Ÿ™Ð/Ø—:‘:‰Dà—9‘9ˆDä�4˜×)Ñ)¨,¸Ð=UÓVÓWÐWrX   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©rb   s    rV   r  zPydanticModelField.serialize²  sd   € à�yŠyÐˆyà—I‘IØ—Z‘ZØŸ™Ø!%×!7Ñ!7Ø×+Ñ+Ø—k‘kØ—I‘IØ—k‘kØ—I‘I×'Ñ'Ó)ñ

ð 
	
rX   c                ón   — |j                  «       }t        |j                  d«      |«      } | d||dœ|¤ŽS )úABased on mypy.plugins.dataclasses.DataclassAttribute.deserialize.r�   )r�   rŠ   rÛ   )Úcopyr4   Úpop)r‚   rŠ   Údatar„   Útyps        rV   ÚdeserializezPydanticModelField.deserializeÁ  s9   € ð �y‰y‹{ˆÜ(¨¯©°&Ó)9¸3Ó?ˆÙÐ/˜ $Ñ/¨$Ñ/Ð/rX   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�   r8   r  rc   r  r:   rŠ   )rb   Úsub_typer„   s      rV   Ú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„   r3   rÿ   r¾   r   r¾   r°   r   )FF)
rú   r*   r„   r3   rÿ   r¾   ró   r¾   r°   r"  ©F)
rú   r*   r„   r3   rþ   r¾   rÿ   r¾   r°   r+   ©r°   r   )rŠ   r*   r  r   r„   r3   r°   rë   )r  r*   r„   r3   r°   r±   )r´   rµ   r¶   r·   ra   r  r	   rø   r  Úclassmethodr  r  rÛ   rX   rV   rë   rë   >  sg  „ Ù?ðàðð ðð ð	ð
  ðð ðð ðð ðð ðð ðð óð0
àð
ð ð
ð ð	
ð
 ð
ð ð
ð -ð
ð #'ð
ð !ð
ð 
ó
ðB */Ø"'ð+àð+ð -ð+ð #'ð	+ð
  ð+ð 
ó+ðd */ðXàðXð -ðXð ð	Xð
 #'ðXð 
óXó
ð ò0ó ð0ôTrX   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 r[   ©rž   )rb   rž   s     rV   ra   zPydanticModelClassVar.__init__Ú  s	   € Øˆ�	rX   c                ó2   — |j                  «       } | di |¤ŽS )r  rÛ   )r  )r‚   r  s     rV   r  z!PydanticModelClassVar.deserializeÝ  s   € ð �y‰y‹{ˆÙ‰{�T‰{ÐrX   c                ó   — d| j                   iS )r  rž   r)  r  s    rV   r  zPydanticModelClassVar.serializeã  s   € ð �D—I‘Ið
ð 	
rX   N)r  r   r°   r'  r$  )r´   rµ   r¶   r·   ra   r%  r  r  rÛ   rX   rV   r'  r'  Ñ  s%   „ ñòð òó ðô

rX   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 r[   )Ú_clsÚ_reasonÚ_apir]   )rb   r‚   rƒ   r„   r]   s        rV   ra   z!PydanticModelTransformer.__init__ü  s!   € ð ˆŒ	ØˆŒØˆŒ	à*ˆÕrX   c                óˆ  — | j                   j                  }|j                  j                  t        i «       t        |«      }| j                  «       }| j                  ||«      \  }}|�|€1| j                  j                  s| j                  j                  «        y|D ]U  }|j                  �t        |j                  «      sŒ%| j                  j                  s| j                  j                  «         y |j                  j                  D ]@  }t        |«      sŒ| j                  j                  rŒ&| j                  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}	|j1                  «       dœ|j                  t2        <   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Ô   )r5  rŠ   rã   Ú
setdefaultÚMETADATA_TAG_KEYr
  Úcollect_configÚcollect_fields_and_class_varsr7  Úfinal_iterationÚdeferr�   r6   ÚdefnÚ	type_varsri   ÚBASESETTINGS_FULLNAMEÚadd_initializerÚadd_model_construct_methodÚ
set_frozenr.  Úadjust_decorator_signaturesrž   r  Úget_values_dicträ   )
rb   rŠ   Úis_a_root_modelrÔ   r9  r:  ÚfieldÚtvÚis_settingsÚ	class_vars
             rV   r…   z"PydanticModelTransformer.transform	  sÓ  € ð �y‰y�~‰~ˆð 	�‰× Ñ Ô!1°2Ô6Ü'¨Ó-ˆØ×$Ñ$Ó&ˆØ!×?Ñ?ÀÈÓXÑˆ�
Øˆ>˜ZÐ/à—9‘9×,Ò,Ø—	‘	—‘Ô!ØØò 	ˆEØ�z‰zÐ!¤_°U·Z±ZÕ%@ð —y‘y×0Ò0Ø—I‘I—O‘OÔ%Ùð	ð —)‘)×%Ñ%ò 	ˆBÜ˜rÕ"¨4¯9©9×+DÓ+DØ—	‘	—‘Ô!Ùð	ð
 —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   Ç
"H:Ç2"H?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™   rg   r&   Úvalue)Ú.0Úir  Ú	first_decs      €rV   ú	<genexpr>zGPydanticModelTransformer.adjust_decorator_signatures.<locals>.<genexpr>N  sO   øè ø€ ò  á &  3ð &×/Ñ/°Ñ2°fÑ<ÒrÄÈCÔQXÓAYÒrÐ^a×^gÑ^gÐkrÑ^rÓrñ ùs   ƒAATN)r5  rŠ   r¥   Úvaluesrg   rh   r   Úoriginal_decoratorsr   Úcalleer!   rl   Ú(IMPLICIT_CLASSMETHOD_DECORATOR_FULLNAMESÚMODEL_VALIDATOR_FULLNAMEÚanyÚ	enumeraterš   ÚfuncÚis_class)rb   rm   rU  s     @rV   rG  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Õ*ñ#	2rX   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        «      rft!        |j                  j"                  |j                  j$                  d¬«      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�Œq|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_configr�   )Ú	lax_extraÚConfigzYSpecifying config in two places is ambiguous, use either Config attribute or class kwargsr•   rÔ   )&r5  ÚModelConfigDataÚkeywordsÚitemsÚget_config_updateÚupdateÚdefsÚbodyrg   r   r   Úlvaluesr!   rž   Úrvaluer   r—   r™   rš   r   r&   rR  r7  ÚfailÚhas_alias_generatorr1  r0  r]   r½   Úerror_required_dynamic_aliasesrŠ   Úmrorä   rã   Úadd_plugin_dependencyr7   rl   r;  )rb   r‚   rÔ   Úhas_config_kwargsÚhas_config_from_namespacerž   ÚexprÚconfig_dataÚstmtÚlhsr§   r  Úkey_exprÚ
value_exprÚsubstmtrŠ   rR  s                    rV   r=  z'PydanticModelTransformer.collect_configW  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Ð]aÔ)bò ]™˜ #Ø#Ð+Ø$ØŸ™ 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Ø×!Ñ! $¨Õ.ñ/ð	/ð ˆrX   c                ó0  — | j                   }i }i }t        |j                  j                  dd «      D �]¦  }t        |j
                  vr+t        |j
                  v r| j                  j                  s yŒA| 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                  |«      ||<   Œ �Œ© t1        «       }t1        «       }| j3                  |j4                  «      D ]×  }| j7                  |||«      }|€Œ|j8                  d   }t'        |t:        «      sJ ‚t'        |t        «      rS|r&|j<                  dk7  rt?        | j                  |«       Œr|jA                  |j<                  «       |||j<                  <   Œ�t'        |t.        «      sŒ®|jA                  |j<                  «       |||j<                  <   ŒÙ tC        |jE                  «       «      tC        |jE                  «       «      fS )	zACollects the fields for the model, accounting for parent classes.r•   éÿÿÿÿ)NNr9  z7BaseModel field may only be overridden by another fieldr:  r   r  )#r5  ÚreversedrŠ   rp  rä   rã   r<  r7  r?  rq  r7   rl   rf  rë   r  r  r¥   rÅ   rh   rg   r+   r#   rm  r'  rÊ   Ú%_get_assignment_statements_from_blockri  Ú$collect_field_or_class_var_from_stmtrk  r!   rž   Ú error_extra_fields_on_root_modelÚaddÚlistrW  )rb   ra  r
  r‚   Úfound_fieldsÚfound_class_varsrŠ   rž   r  rJ  Úsym_nodeÚcurrent_field_namesÚcurrent_class_vars_namesrv  Úmaybe_fieldrw  s                   rV   r>  z6PydanticModelTransformer.collect_fields_and_class_vars£  s‹  € ð �i‰iˆð 79ˆØ=?ÐÜ˜SŸX™XŸ\™\¨!¨BÐ/Ó0ó 	QˆDÜ 4§=¡=Ñ0Ü# t§}¡}Ñ4¸T¿Y¹Y×=VÒ=Vñ
 &Øð �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ð;	QôB ),«ÐÜ-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ÐKrX   c              #  ó  K  — |j                   D ](  }|j                  rŒ| j                  |«      E d {  –—†  Œ* |j                  �;|j                  j                  s$| j                  |j                  «      E d {  –—†  y y y 7 ŒN7 Œ	­wr[   )rj  Úis_unreachabler~  Ú	else_body)rb   rv  rj  s      rV   Ú,_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r[   )rj  rg   r   r   rŒ  )rb   Úblockrv  s      rV   r~  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   ra  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Š   )/r5  rk  rg   r!   rH   Úis_valid_field_namerž   Ú
new_syntaxrl  r   rY  rl   ÚDECORATOR_FULLNAMESÚerror_untyped_fieldsr7  rŠ   r¥   rÅ   rh   r#   r)   rm  r+   Úis_classvarr'  rD   r�   r=   Úget_has_defaultÚ
get_strictr�  Úis_inferredÚanalyze_simple_literal_typer;   r@   Ú
from_errorÚget_alias_infor1  r0  r]   r½   ro  Úis_field_frozenÚ_infer_dataclass_attr_init_typerë   rŸ   rñ   )rb   rv  ra  r:  r‚   rw  rm   rh   Ú	node_typerð   r‘   r  rí   rï   rî   Ú	init_types                   rV   r  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ˆ	Ü!Ø—‘Ø/Ø#ØØØØ—‘Ø—;‘;ØØ—‘ô
ð 	
rX   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__rR   z(Unsupported signature for "__set__" in "ú"zUnsupported "__set__" in ")r�   ÚimplicitrD   rg   r=   rÅ   rh   r   Úget_containing_type_infor:   r;   r@   Úunannotatedr<   Ú	arg_kindsr   r
   Ú	arg_typesr7  rm  rž   )	rb   rm   rž   rá   ÚdefaultÚtÚsetterÚ
super_infoÚsetter_types	            rV   r�  z8PydanticModelTransformer._infer_dataclass_attr_init_type�  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àˆrX   c           
     óØ  — d| j                   j                  j                  v rK| j                   j                  j                  d   j                  s| j                   j                  t
        k7  r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 ‚t1        |j2                  «      D ]­  \  }}|�"|j5                  d«      s|j5                  d«      sŒ+| j                  j7                  |j8                  |   «      }|�,|dv r(|j;                  t=        t>        j@                  «      «      }tC        ||«      }|	jE                  tG        ||dtH        «      «       Œ¯ | jK                  ||«      sCtC        d	«      }|	jE                  tG        |tM        t>        jN                  «      dtP        «      «       tS        | j                  | j                   d|	tU        «       ¬
«       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.
        ra   NFT)rû   rü   Úrequires_dynamic_aliasesrþ   rL  r
  rÿ   Ú__r®   )Ú_cli_settings_sourceÚ_build_sourcesÚkwargs)rš   Úreturn_type)+r5  rŠ   r¥   Úplugin_generatedrl   ÚROOT_MODEL_FULLNAMEr]   r¼   r¾   r‘   r1  r0  r2  rn  Úget_field_argumentsr7  rf   rC  rh   rg   r*   r   r�   r<   r]  r™   Ú
startswithÚ	anal_typer§  ÚacceptÚChangeExplicitTypeOfAnyr@   Úfrom_omitted_genericsr+   Úappendr   r   Úshould_init_forbid_extrar;   rù   r   Ú
add_methodr>   )rb   r9  rÔ   rL  r
  rû   rü   rþ   r®  rš   Úbase_settings_nodeÚbase_settings_init_nodeÚ	func_typeÚarg_idxr§   Úanalyzed_variable_typerô   Úvars                     rV   rD  z(PydanticModelTransformer.add_initializer§  s–  € ð ˜$Ÿ)™)Ÿ.™.×.Ñ.Ñ.Ø—I‘I—N‘N×(Ñ(¨Ñ4×EÒEð —	‘	×"Ñ"Ô&9Ò9àà×"Ñ"×-Ñ-ˆÜ˜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×.DÑ.DÓ&EÀtÌYÓWÔXä�4—9‘9˜dŸi™i¨¸$ÌHËJÖWrX   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þ   rL  r
  r²  Úmodel_construct)rš   r³  Úis_classmethod)r7  Ú
named_typeÚBUILTINS_NAMErC   r>   r   r+   r   r8   r  rc   r  r¶  r¾   r‘   r½  r¼  r;   r@   rù   r   r¾  r5  rE   rŠ   )
rb   r9  rÔ   rL  r
  Úset_strÚoptional_set_strÚfields_set_argumentrš   rÄ  s
             rV   rE  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×.DÑ.DÓ&EÀtÌYÓWÔXá/<ˆ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”   )r5  rŠ   r¥   rÅ   rž   rh   rg   r+   rî   Úis_propertyr#   r7  r?  r@  rø   rl   Ú	_fullnamer'   r   )rb   r9  r„   r.  rŠ   rJ  r…  rÄ  s           rV   rF  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rX   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)rn  )úbuiltins.Trueúbuiltins.FalserÕ  rÛ   )r3  rg   r&   rR  r    rž   Úerror_invalid_config_valuer7  rd  r!   rl   )rb   rž   r  rb  rÓ  rn  s         rV   rg  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ØrX   c                óÊ  — | j                   }t        |t        «      ryt        |t        «      r¦t        |j                  t
        «      rŒ|j                  j                  t        k(  rot        |j                  |j                  d¬«      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.FTr�   r¨  Údefault_factoryrÔ  )rl  rg   r(   r   rY  r$   rl   ÚFIELD_FULLNAMEr—   rš   r™   rd   r   r!   ©rv  rt  r  rž   s       rV   r–  z(PydanticModelTransformer.get_has_defaultJ  sÂ   € ð �{‰{ˆÜ�dœHÔ%àÜ�dœHÔ%¬*°T·[±[Ä'Ô*JÈtÏ{É{×OcÑOcÔguÒOuô
 ! §¡¨D¯N©NÀ4ÔHò _‘	��Tà�< 4¨9Ò#4ØŸ=™=´Ð<Ò<ØÐ,Ó,Ü *¨3´Ó 9Ò ]¸c¿l¹lÈoÑ>]Ð^Ò^ð_ð ä˜d¤LÓ1Ð1Ð1rX   c                óp  — | j                   }t        |t        «      ršt        |j                  t        «      r€|j                  j
                  t        k(  rct        |j                  |j                  d¬«      D ]>  \  }}|dk7  rŒt        |t        «      r"|j
                  dk(  r y|j
                  dk(  r y y y)zCReturns the `strict` value of a field if defined, otherwise `None`.Tr�   r‘   rÕ  rÖ  FN)rl  rg   r   rY  r$   rl   rÚ  r—   rš   r™   r!   rÛ  s       rV   r—  z#PydanticModelTransformer.get_strict`  s–   € ð �{‰{ˆÜ�dœHÔ%¬*°T·[±[Ä'Ô*JÈtÏ{É{×OcÑOcÔguÒOuÜ  §¡¨D¯N©NÀ4ÔHò ‘	��TØ˜8Ò#ØÜ˜c¤8Ô,Ø—|‘| Ò6Ù#ØŸ™Ð)9Ò9Ù$Ùðð rX   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)rl  rg   r(   r   rY  r$   rl   rÚ  r™   rš   Úindexr&   rR  )rv  rt  r  s      rV   r›  z'PydanticModelTransformer.get_alias_infop  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Ð#Ð#àrX   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Õ  )rl  rg   r(   r   rY  r$   rl   rÚ  r]  r™   rš   r!   )rv  rt  rT  r§   r  s        rV   rœ  z(PydanticModelTransformer.is_field_frozenŽ  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ð rX   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   )r5  rŠ   rï   r  r7  rž   )rb   r9  rû   rü   rþ   r®  rL  r
  rÿ   rŠ   rJ  Ú	argumentss               rV   r¶  z,PydanticModelTransformer.get_field_arguments§  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)r1  r0  Úis_dynamic_alias_presentr¾   rn  rÓ  r]   r»   )rb   r9  rÔ   s      rV   r½  z1PydanticModelTransformer.should_init_forbid_extraÇ  sQ   € ð ×'Ò'¨6×+BÒ+BØ×,Ñ,¨V´T¸&×:TÑ:TÓ5UÔVØØ×ÒØØ×!Ñ!×3Ñ3Ð3rX   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í   )r9  rn  rJ  s      rV   rä  z1PydanticModelTransformer.is_dynamic_alias_presentÔ  sE   € ð
 ò 	ˆEØ×&Ó&Ùð	ñ Øò  �Ø—;‘;Ñ&Ùð ð rX   N)
r‚   r   rƒ   zExpression | Statementr„   r3   r]   r\   r°   r±   )r°   r¾   )r°   r±   )r°   rd  )ra  rd  r
  r¾   r°   zJtuple[list[PydanticModelField] | None, list[PydanticModelClassVar] | None])rv  r   r°   úIterator[AssignmentStmt])rŽ  r   r°   ræ  )rv  r   ra  rd  r:  z dict[str, PydanticModelClassVar]r°   z1PydanticModelField | PydanticModelClassVar | None)rm   r'   rž   r²   rá   r   r°   r"  )
r9  úlist[PydanticModelField]rÔ   rd  rL  r¾   r
  r¾   r°   r±   )r9  rç  r„   r3   r.  r¾   r°   r±   r#  )rž   r²   r  r   rb  r¾   r°   úModelConfigData | None)rv  r   r°   r¾   )rv  r   r°   r   )rv  r   r°   ztuple[str | None, bool])r9  rç  rû   r¾   rü   r¾   rþ   r¾   r®  r¾   rL  r¾   r
  r¾   rÿ   r¾   r°   úlist[Argument])r9  rç  rÔ   rd  r°   r¾   )r9  rç  rn  r¾   r°   r¾   )r´   rµ   r¶   r·   r3  rÚ   ra   r…   rG  r=  r>  rŒ  r~  r  r�  rD  rE  rF  rg  Ústaticmethodr–  r—  r›  rœ  r¶  r½  rä  rÛ   rX   rV   r�   r�   ê  s  … ñò	'Ð˜8ó 	ð+àð+ð 'ð+ð -ð	+ð
 ,ð+ð 
ó+ó1óf2ó6JðXELØ+ðELØ<@ðELà	SóELóNRóSðG
Ø"ðG
Ø2AðG
ØOoðG
à	:óG
óR$ðL=XØ.ð=XØ8Gð=XØVZð=XØkoð=Xà	ó=Xð~&
à(ð&
ð  ð&
ð ð	&
ð
 ð&
ð 
ó&
óPBô2!ðF ò2ó ð2ð* òó ðð òó ðð: òó ððB */ðà(ðð ðð ð	ð
 ðð #'ðð ðð ðð #'ðð 
óó@4ð òó ñrX   r�   c                  ó,   ‡ — e Zd ZdZdˆ fd„Zdd„Zˆ xZS )rº  z<A type translator used to change type of Any's, if explicit.c                ó0   •— || _         t        ‰| �	  «        y r[   )Ú_type_of_anyr`   ra   )rb   Útype_of_anyrd   s     €rV   ra   z ChangeExplicitTypeOfAny.__init__æ  s   ø€ Ø'ˆÔÜ‰ÑÕrX   c                óx   — |j                   t        j                  k(  r|j                  | j                  ¬«      S |S )N)rî  )rî  r@   Úexplicitr  rí  )rb   r©  s     rV   Ú	visit_anyz!ChangeExplicitTypeOfAny.visit_anyê  s0   € Ø�=‰=œI×.Ñ.Ò.Ø—?‘?¨t×/@Ñ/@�?ÓAÐAàˆHrX   )rî  r!  r°   r±   )r©  r;   r°   r?   )r´   rµ   r¶   r·   ra   rñ  r¸   r¹   s   @rV   rº  rº  ã  s   ø„ ÙFõ÷rX   rº  c                  ó`   — e Zd ZdZ	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zd	d„Zd
d„Zdd„Zy)rd  z(Pydantic mypy plugin model config class.Nc	                ót   — || _         || _        || _        || _        || _        || _        || _        || _        y r[   )rÓ  r.  rÞ   r0  r2  r1  rn  r‘   )	rb   rÓ  r.  rÞ   r0  r2  r1  rn  r‘   s	            rV   ra   zModelConfigData.__init__ô  sB   € ð )ˆÔØˆŒØ.ˆÔØ 0ˆÔØ!2ˆÔØ 0ˆÔØ#6ˆÔ Øˆ�rX   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__rf  )rb   ÚkÚvs      rV   rH  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)rH  rf  rÈ   )rb   rÔ   rö  r÷  s       rV   rh  zModelConfigData.update  s;   € àˆ>ØØ×*Ñ*Ó,×2Ñ2Ó4ò 	 ‰DˆAˆqÜ�D˜!˜QÕñ	 rX   c                ó8   — t        | |«      €t        | ||«       yy)zFSet default value for Pydantic model config if config value is `None`.N)rŒ   rÈ   )rb   rÕ   rR  s      rV   r;  zModelConfigData.setdefault  s    € ä�4˜ÓÐ%Ü�D˜#˜uÕ%ð &rX   )NNNNNNNN)rÓ  r   r.  r   rÞ   r   r0  r   r2  r   r1  r   rn  r   r‘   r   rÙ   )rÔ   rè  r°   r±   )rÕ   r²   rR  r   r°   r±   )r´   rµ   r¶   r·   ra   rH  rh  r;  rÛ   rX   rV   rd  rd  ñ  s‚   „ Ù2ð %)Ø"Ø'+Ø(,Ø)-Ø(,Ø+/Ø"ðà!ðð ðð %ð	ð
 &ðð 'ðð &ðð )ðð óó(Ió ô&rX   rd  c                ó,   — | j                  t        «      S )zXReturn whether the type info is a root model subclass (or the `RootModel` class itself).)ri   rµ  )rŠ   s    rV   r
  r
    s   € à�=‰=Ô,Ó-Ð-rX   zpydantic-ormzInvalid from_attributes callÚPydanticzpydantic-configzInvalid config valuezpydantic-aliaszDynamic alias disallowedzpydantic-unexpectedzUnexpected behaviorzpydantic-fieldzUntyped field disallowedzInvalid Field defaultsz!Extra field on RootModel 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)rm  Ú	ERROR_ORM)Ú
model_namer„   rá   s      rV   rå   rå   *  s   € à‡H�Hˆq��Ð@ÐAÀ7ÔQZ€HÕ[rX   c                ó<   — |j                  d| › d�|t        ¬«       y)z0Emits an error when the config value is invalid.zInvalid value for "Config.r¢  rý  N)rm  ÚERROR_CONFIG)rž   r„   rá   s      rV   r×  r×  /  s   € à‡H�HÐ)¨$¨¨qÐ1°7Ä€HÕNrX   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)rm  ÚERROR_ALIAS©r„   rá   s     rV   ro  ro  4  s   € ð
 ‡H�HÐ2°GÄ+€HÕNrX   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)rm  ÚERROR_UNEXPECTED)rè   r„   rá   ÚlinkÚfull_messages        rV   rà   rà   <  sA   € ð
 D€DØLÈVÈHÐTVÐW€LØÐ<¸T¸FÐB[Ð\Ñ\€LØ‡H�Hˆ\˜7Ô)9€HÕ:rX   c                ó4   — | j                  d|t        ¬«       y)z;Emits an error when there is an untyped field in the model.zUntyped fields disallowedrý  N)rm  ÚERROR_UNTYPEDr  s     rV   r”  r”  G  s   € à‡H�HÐ(¨'¼€HÕFrX   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)rm  ÚERROR_EXTRA_FIELD_ROOT_MODELr  s     rV   r€  r€  L  s   € à‡H�HÐAÀ7ÔQm€HÕnrX   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.functionr5  NTÚ__pydantic_self__z"All arguments must be fully typed.)Ú	variablesr”   r%  )'rŠ   r¥   r´  rg   rh   r   ri  rj  Úremover3   rÉ  Únamed_generic_typerA   rE   r   r+   r   rõ   r¼  rô   rž   r÷   r<   r   r"   r5   r�   r_  rl   rÐ  rŸ   rF   Úis_decoratedrÈ  r   r!   r'   r   rA  )r„   r‚   rž   rš   r³  r  Útvar_defrÈ  rŠ   rm   Úfunction_typeÚfirstr§  r™   r¦  r  Ú	signaturer^  Úr_namer÷  Údecs                        rV   r¾  r¾  Q  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Õ$rX   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`.rR   )Ú
stacklevelÚrb)
rv   rÍ   Úversion_infoÚtomllibÚtomliÚImportErrorÚwarningsÚwarnÚopenÚload)rÃ   Útoml_r$  Úrfs       rV   rÄ   rÄ   ©  sŠ   € ð
 ×Ñ Ô(Øä
×Ñ˜7Ò"Üð	Û!ô 
ˆk˜4Ó	 ð  BØ�z‰z˜"‹~÷ñ øô ò 	Ûà�M‰MÐfÐstˆMÔuÙð		ú÷ð ús   ¬A ¼A=Á A:Á9A:Á=B)rU   r²   r°   ztype[Plugin])r~   r0   r°   r?   )rŠ   r*   r°   r¾   )r   r²   r„   r-   rá   r   r°   r±   )rž   r²   r„   r3   rá   r   r°   r±   )r„   r3   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   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ä   r<  rj   rz   rC  rµ  rp   rq   rÚ  ÚDATACLASS_FULLNAMEr[  r“  rZ  ÚMYPY_VERSION_TUPLErÊ  rW   rT   r\   rw   rë   r'  r�   rº  rd  r
  rÿ  r  r  r  r  ÚERROR_FIELD_DEFAULTSr  rå   r×  ro  rà   r”  r€  r¾  rÄ   rÛ   rX   rV   ú<module>rE     s¬  ðÙ då "ã 
ß .Ý %Ý ó Ý %ß @÷"÷ "÷ "÷ "÷ "÷ "÷ "÷ "õ "õF !÷÷ ñ õõ +Ý /Ý 5Ý Ý ,Ý 0÷÷ ÷ õ (Ý 2Ý 4å &Ý /à €Ø'€Ø/Ð Ø.Ð Ø4Ð Ø=Ð Ø5Ð ØRÐ Ø IÐ Ø(€Ø5Ð ØKÐ òÐ ð ,?ÐBtÐAuÑ+uÐ (ñ (¨Ó5Ð Ø€ð €óôeZ�Vô eZ÷P5Cñ 5Cóp#÷4PTñ PT÷f
ñ 
÷2vñ vôr˜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rX   