§
    9ˆtj+î  ã                  óø  — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZ dd	lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 dd
l1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ ddlRmSZS ddlTmUZU ddlVmWZX ddlYmZZZ ddl[m\Z\ dZ]dZ^dZ_dZ`dZadZbdZcdZdd Zed!Zfh d"£Zgegd#hz
  Zh e\eX¦  «        Zid$Zjd%ZWdnd*„Zk G d+„ d,e8¦  «        Zl G d-„ d.¦  «        Zmdod2„Zn G d3„ d4¦  «        Zo G d5„ d6¦  «        Zp G d7„ d8¦  «        Zq G d9„ d:eD¦  «        Zr G d;„ d<¦  «        Zsdpd@„Zt edAdBdC¦  «        Zu edDdEdC¦  «        Zv edFdGdC¦  «        Zw edHdIdC¦  «        Zx edJdKdC¦  «        Zy edJdLdC¦  «        Zz edJdMdC¦  «        Z{dqdT„Z|drdW„Z}dsdX„Z~dtd[„Zdsd\„Z€dud]„Z�	 	 	 dvdwdj„Z‚dxdm„ZƒdS )yz^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é   ÚversionÚstrÚreturnútype[Plugin]c                ó   — t           S )a!  `version` is the mypy version string.

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

    Args:
        version: The mypy version string.

    Return:
        The Pydantic mypy plugin type.
    )ÚPydanticPlugin)rQ   s    úK/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pydantic/mypy.pyÚpluginrX   o   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 ) rV   zThe Pydantic mypy plugin.Úoptionsr+   rS   ÚNonec                ó®   •— t          |¦  «        | _        | j                             ¦   «         | _        t	          ¦   «                              |¦  «         d S ©N)ÚPydanticPluginConfigÚplugin_configÚto_dataÚ_plugin_dataÚsuperÚ__init__)Úselfr[   Ú	__class__s     €rW   rd   zPydanticPlugin.__init__�   sH   ø€ Ý1°'Ñ:Ô:ˆÔØ Ô.×6Ò6Ñ8Ô8ˆÔÝ‰Œ×Ò˜Ñ!Ô!Ð!Ð!Ð!rY   ÚfullnamerR   ú(Callable[[ClassDefContext], None] | Nonec                ó´   — |                       |¦  «        }|r@t          |j        t          ¦  «        r&|j                             t
          ¦  «        r| j        S dS )zUpdate Pydantic model class.N)Úlookup_fully_qualifiedÚ
isinstanceÚnoder)   Úhas_baseÚBASEMODEL_FULLNAMEÚ$_pydantic_model_class_maker_callback)re   rg   Úsyms      rW   Úget_base_class_hookz"PydanticPlugin.get_base_class_hook†   sZ   € à×)Ò)¨(Ñ3Ô3ˆØð 	A•:˜cœh­Ñ1Ô1ð 	AàŒx× Ò Õ!3Ñ4Ô4ð AØÔ@Ð@ØˆtrY   c                ó*   — |t           k    r| j        S dS )z,Update Pydantic `ModelMetaclass` definition.N)ÚMODEL_METACLASS_FULLNAMEÚ)_pydantic_model_metaclass_marker_callback©re   rg   s     rW   Úget_metaclass_hookz!PydanticPlugin.get_metaclass_hook�   s   € àÕ/Ò/Ð/ØÔAÐAØˆtrY   ú&Callable[[MethodContext], Type] | Nonec                ó>   — |                      d¦  «        rt          S dS )z-Adjust return type of `from_orm` method call.z	.from_ormN)ÚendswithÚfrom_attributes_callbackru   s     rW   Úget_method_hookzPydanticPlugin.get_method_hook•   s#   € à×Ò˜[Ñ)Ô)ð 	,Ý+Ð+ØˆtrY   ú/Callable[[DynamicClassDefContext], None] | Nonec                ó*   — |t           k    r| j        S dS )zARecognize `create_model()` calls as dynamic BaseModel subclasses.N)ÚCREATE_MODEL_FULLNAMEÚ_pydantic_create_model_callbackru   s     rW   Úget_dynamic_class_hookz%PydanticPlugin.get_dynamic_class_hook›   s   € àÕ,Ò,Ð,ØÔ7Ð7ØˆtrY   Úctxr1   údict[str, Any]c                ó   — | j         S )zjReturn all plugin config data.

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

        Let the plugin handle it. This behavior can be disabled
        if 'debug_dataclass_transform' is set to True', for testing purposes.
        Nz-callback not passed from 'get_metaclass_hook'Údataclass_transform_spec)r`   Údebug_dataclass_transformr‡   ÚinfoÚdeclared_metaclassÚgetattrÚtyper�   )re   r�   Úinfo_metaclasss      rW   rt   z8PydanticPlugin._pydantic_model_metaclass_marker_callback¬   sm   € ð ÔÔ7ð 	ØˆFØœœÔ8ˆØÐNÐNÐNÑNÔNˆ~Ý�>Ô&Ð(BÀDÑIÔIð 	@Ø;?ˆNÔÔ8Ð8Ð8ð	@ð 	@rY   r.   c                ó¬  — t           }t          |j        j        |j        j        ¦  «        D ]�\  }}|dk    r’t          |t          ¦  «        r}|j        �vt          |j        t          ¦  «        r|j        j	        }ŒNt          |j        t          ¦  «        r5t          |j        j        t          ¦  «        r|j        j        j        j	        }Œž|j                             |¦  «        }|�t          |j        t          ¦  «        s=|j                             t           ¦  «        }|�t          |j        t          ¦  «        sdS |j        }t          |¦  «        }t          |t          ¦  «        sJ ‚|j                             |j        ||j        j        ¦  «        }|j        |_        |j                             |j        t+          t,          |¦  «        ¦  «         dS )zFMake variables assigned from `create_model()` usable as types by mypy.Ú__base__N)rn   ÚzipÚcallÚ	arg_namesÚargsrk   r#   rl   r)   rg   r*   r’   r;   r‰   Úlookup_fully_qualified_or_nonerC   Úbasic_new_typeinfoÚnameÚlineÚmetaclass_typeÚadd_symbol_table_noder&   r   )	re   r�   Úbase_fullnameÚarg_nameÚarg_exprÚbase_symÚ	base_infoÚbase_instancer�   s	            rW   r   z.PydanticPlugin._pydantic_create_model_callback¹   sŽ  € õ +ˆÝ"% c¤hÔ&8¸#¼(¼-Ñ"HÔ"Hð 	Eð 	EÑˆH�hØ˜:Ò%Ð%­*°X½wÑ*GÔ*GÐ%ÈHÌMÐLeÝ˜hœm­XÑ6Ô6ð EØ$,¤MÔ$:�M�MÝ ¤­sÑ3Ô3ð E½
À8Ä=ÔCUÕW_Ñ8`Ô8`ð EØ$,¤MÔ$6Ô$;Ô$D�Møà”7×9Ò9¸-ÑHÔHˆØÐ¥:¨h¬m½XÑ#FÔ#FÐà”w×=Ò=Õ>PÑQÔQˆHØÐ¥z°(´-ÅÑ'JÔ'JÐØ�à”Mˆ	Ý% iÑ0Ô0ˆÝ˜-­Ñ2Ô2Ð2Ð2Ð2àŒw×)Ò)¨#¬(°MÀ3Ä8Ä=ÑQÔQˆØ'Ô6ˆÔàŒ×%Ò% c¤hµÅÀdÑ0KÔ0KÑLÔLÐLÐLÐLrY   ©r[   r+   rS   r\   )rg   rR   rS   rh   )rg   rR   rS   rw   )rg   rR   rS   r|   )r�   r1   rS   r‚   )r�   r-   rS   r\   )r�   r.   rS   r\   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rd   rq   rv   r{   r€   r„   ro   rt   r   Ú__classcell__©rf   s   @rW   rV   rV   ~   sï   ø€ € € € € Ø#Ð#ð"ð "ð "ð "ð "ð "ð
ð ð ð ðð ð ð ðð ð ð ðð ð ð ð!ð !ð !ð !ð ð  ð  ð  ð@ð @ð @ð @ðMð Mð Mð Mð Mð Mð Mð MrY   rV   c                  óP   — e Zd ZU dZdZded<   ded<   ded<   ded<   dd„Zdd„ZdS )r_   aÛ  A Pydantic mypy plugin config holder.

    Attributes:
        init_forbid_extra: Whether to add a `**kwargs` at the end of the generated `__init__` signature.
        init_typed: Whether to annotate fields in the generated `__init__`.
        warn_required_dynamic_aliases: Whether to raise required dynamic aliases error.
        debug_dataclass_transform: Whether to not reset `dataclass_transform_spec` attribute
            of `ModelMetaclass` for testing purposes.
    )Úinit_forbid_extraÚ
init_typedÚwarn_required_dynamic_aliasesrŽ   Úboolr®   r¯   r°   rŽ   r[   r+   rS   r\   c                ó  — |j         €d S t          |j         ¦  «        }|�„|                     di ¦  «                             di ¦  «        }| j        D ]P}|                     |d¦  «        }t	          |t
          ¦  «        st          d|› �¦  «        ‚t          | ||¦  «         ŒQd S t          ¦   «         }| 	                    |j         ¦  «         | j        D ]0}| 
                    t          |d¬¦  «        }t          | ||¦  «         Œ1d S )NÚtoolrH   Fz/Configuration value must be a boolean for key: )Úfallback)Úconfig_fileÚ
parse_tomlÚgetÚ	__slots__rk   r±   Ú
ValueErrorÚsetattrr   ÚreadÚ
getbooleanÚCONFIGFILE_KEY)re   r[   Útoml_configÚconfigÚkeyÚsettingr`   s          rW   rd   zPydanticPluginConfig.__init__ë   s$  € ØÔÐ&ØˆFå  Ô!4Ñ5Ô5ˆØÐ"Ø —_’_ V¨RÑ0Ô0×4Ò4°_ÀbÑIÔIˆFØ”~ð ,ð ,�Ø Ÿ*š* S¨%Ñ0Ô0�Ý! '­4Ñ0Ô0ð ^Ý$Ð%\ÐWZÐ%\Ð%\Ñ]Ô]Ð]Ý˜˜c 7Ñ+Ô+Ð+Ð+ð	,ð ,õ )™NœNˆMØ×Ò˜wÔ2Ñ3Ô3Ð3Ø”~ð ,ð ,�Ø'×2Ò2µ>À3ÐQVÐ2ÑWÔW�Ý˜˜c 7Ñ+Ô+Ð+Ð+ð,ð ,rY   r‚   c                ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )z/Returns a dict of config names to their values.c                ó2   •— i | ]}|t          ‰|¦  «        “ŒS © )r‘   )Ú.0rÀ   re   s     €rW   ú
<dictcomp>z0PydanticPluginConfig.to_data.<locals>.<dictcomp>   s%   ø€ ÐBÐBÐB¨C�•W˜T 3Ñ'Ô'ÐBÐBÐBrY   )r¸   ©re   s   `rW   ra   zPydanticPluginConfig.to_dataþ   s   ø€ àBÐBÐBÐB°4´>ÐBÑBÔBÐBrY   Nr¦   ©rS   r‚   )r§   r¨   r©   rª   r¸   Ú__annotations__rd   ra   rÄ   rY   rW   r_   r_   Õ   s‡   € € € € € € ðð ð€Ið ÐÐÑØÐÐÑØ'Ð'Ð'Ñ'Ø#Ð#Ð#Ñ#ð,ð ,ð ,ð ,ð&Cð Cð Cð Cð Cð CrY   r_   r�   r/   r=   c                ó¨  — | j         }t          |t          ¦  «        r|j        }t          |t          ¦  «        r"t          |j        t          ¦  «        r|j        }nMt          |t          ¦  «        r|}n5d|› d|j        j        › d�}t          || j
        | j        ¦  «         | j        S |j         j                             t          ¦  «        }|€| j        S |j                              t"          ¦  «        s| j        S |                     di ¦  «                             d¦  «        }|dur%t%          |j         j        | j
        | j        ¦  «         | j        S )z1Raise an error if from_attributes is not enabled.z
ctx.type: z
 (of type ú)Nr¿   Úfrom_attributesT)r’   rk   r?   Úitemr:   Úret_typer;   rf   r§   Úerror_unexpected_behaviorr‰   ÚcontextÚdefault_return_typeÚmetadatar·   ÚMETADATA_KEYrm   rn   Úerror_from_attributesrœ   )r�   Úctx_typeÚ
model_typeÚdetailÚpydantic_metadatarÌ   s         rW   rz   rz     sG  € ð Œx€HÝ�(�HÑ%Ô%ð !Ø”=ˆÝ�(�LÑ)Ô)ð '­j¸Ô9JÍHÑ.UÔ.Uð 'ØÔ&ˆ
ˆ
Ý	�H�hÑ	'Ô	'ð 'Øˆ
ˆ
àP˜hÐPÐP°(Ô2DÔ2MÐPÐPÐPˆÝ! &¨#¬'°3´;Ñ?Ô?Ð?ØÔ&Ð&Ø"œÔ0×4Ò4µ\ÑBÔBÐØÐ ØÔ&Ð&ØŒ?×#Ò#Õ$6Ñ7Ô7ð 'àÔ&Ð&Ø'×+Ò+¨H°bÑ9Ô9×=Ò=Ð>OÑPÔP€OØ˜dÐ"Ð"Ý˜jœoÔ2°C´G¸S¼[ÑIÔIÐIØÔ"Ð"rY   c                  ód   — e Zd ZdZd-d„Zd.d„Z	 	 d/d0d"„Z	 d1d2d$„Zd3d&„Ze	d4d(„¦   «         Z
d5d+„Zd,S )6ÚPydanticModelFieldz5Based on mypy.plugins.dataclasses.DataclassAttribute.rœ   rR   Úaliasú
str | NoneÚ	is_frozenr±   Úhas_dynamic_aliasÚhas_defaultÚstrictúbool | Noner�   ÚintÚcolumnr’   úType | Noner�   r)   c                ó’   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        d S r^   )
rœ   rÛ   rÝ   rÞ   rß   rà   r�   rã   r’   r�   )re   rœ   rÛ   rÝ   rÞ   rß   rà   r�   rã   r’   r�   s              rW   rd   zPydanticModelField.__init__   sP   € ð ˆŒ	ØˆŒ
Ø"ˆŒØ!2ˆÔØ&ˆÔØˆŒØˆŒ	ØˆŒØˆŒ	ØˆŒ	ˆ	ˆ	rY   Úcurrent_infoÚtypedÚmodel_strictÚforce_optionalÚ	use_aliasr‰   r2   Úforce_typevars_invariantÚis_root_model_rootrS   r   c	                ó   — |                       ||||¦  «        }	| j        €|n| j        }
|s|
r|                      ||d¬¦  «        }nt          t          j        ¦  «        }t          |	|d|rt          n|s| j        rt          nt          ¬¦  «        S )zABased on mypy.plugins.dataclasses.DataclassAttribute.to_argument.NT)Úinclude_root_type)ÚvariableÚtype_annotationÚinitializerÚkind)Úto_varrà   r	   r9   r>   Úexplicitr   r   rß   r   r   )re   ræ   rç   rè   ré   rê   r‰   rë   rì   rï   rà   rð   s               rW   Úto_argumentzPydanticModelField.to_argument8  s«   € ð —;’;˜|¨S°)Ð=UÑVÔVˆà!%¤Ð!4��¸$¼+ˆØð 	:�Fð 	:Ø"×.Ò.¨|¸SÐTXÐ.ÑYÔYˆOˆOå%¥iÔ&8Ñ9Ô9ˆOåØØ+Øà!ðV•�à#1ÐT°TÔ5EÐT•-�-Í9ð
ñ 
ô 
ð 	
rY   Frî   c                ó  — |rFt          | j        t          ¦  «        r,| j                             ¦   «         }t          |_        || _        | j        ��,| j        j        ��t          j	        |j
        j        ¦  «        5  t          |¦  «        }t          |t          ¦  «        sJ ‚|r+|j        D ]#}t          |t          ¦  «        rt          |_        Œ$t          | j        | j        j        j        |i¦  «        }|rlt          |t          ¦  «        rWt#          |j        ¦  «        rC|j        d         j        }	|	€|cddd¦  «         S t%          |	|¦  «        }
t'          ||
g¦  «        }|cddd¦  «         S # 1 swxY w Y   | j        S )zABased on mypy.plugins.dataclasses.DataclassAttribute.expand_type.NÚroot)rk   r’   r@   Úcopy_modifiedr   Úvariancer�   Ú	self_typer6   Ústrict_optional_setr[   Ústrict_optionalrC   r;   r™   r	   ÚidÚis_root_modelr
   rA   )re   ræ   r‰   rë   rî   Úmodified_typeÚfilled_with_typevarsÚargÚexpanded_typeÚ	root_typeÚexpanded_root_types              rW   r	   zPydanticModelField.expand_typeU  sæ  € ð $ð 	*õ
 ˜$œ)¥[Ñ1Ô1ð *Ø $¤	× 7Ò 7Ñ 9Ô 9�Ý)2�Ô&Ø)�”	àŒ9Ñ  T¤YÔ%8Ñ%Dõ
 Ô*¨3¬;Ô+FÑGÔGð %ð %Ý'4°\Ñ'BÔ'BÐ$å!Ð"6½ÑAÔAÐAÐAÐAØ+ð 5Ø3Ô8ð 5ð 5˜Ý% c­;Ñ7Ô7ð 5Ý+4˜CœLøå +¨D¬I¸¼	Ô8KÔ8NÐPdÐ7eÑ fÔ f�Ø$ð S­°MÅ8Ñ)LÔ)Lð SÕQ^Ð_lÔ_qÑQrÔQrð Sð !.Ô 2°6Ô :Ô ?�IØ Ð(à,ð!%ð %ð %ð %ñ %ô %ð %ð %õ" *AÀÈMÑ)ZÔ)ZÐ&Ý$-¨}Ð>PÐ.QÑ$RÔ$R�MØ$ð'%ð %ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð( ŒyÐs   Á<B:E2Å"E2Å2E6Å9E6r*   c                ó|   — |r| j         �| j         }n| j        }t          ||                      |||¦  «        ¦  «        S )z<Based on mypy.plugins.dataclasses.DataclassAttribute.to_var.)rÛ   rœ   r*   r	   )re   ræ   r‰   rê   rë   rœ   s         rW   ró   zPydanticModelField.to_var‚  sF   € ð ð 	˜œÐ/Ø”:ˆDˆDà”9ˆDå�4˜×)Ò)¨,¸Ð=UÑVÔVÑWÔWÐWrY   r   c           
     óª   — | j         sJ ‚| j        | j        | j        | j        | j        | j        | j        | j        | j          	                    ¦   «         dœ	S )ú?Based on mypy.plugins.dataclasses.DataclassAttribute.serialize.)	rœ   rÛ   rÝ   rÞ   rß   rà   r�   rã   r’   )
r’   rœ   rÛ   rÝ   rÞ   rß   rà   r�   rã   Ú	serializerÇ   s    rW   r  zPydanticModelField.serialize‘  sY   € àŒyÐÐˆyà”IØ”ZØœØ!%Ô!7ØÔ+Ø”kØ”IØ”kØ”I×'Ò'Ñ)Ô)ð

ð 

ð 
	
rY   Údatac                ó†   — |                      ¦   «         }t          |                     d¦  «        |¦  «        } | d||dœ|¤ŽS )úABased on mypy.plugins.dataclasses.DataclassAttribute.deserialize.r’   )r’   r�   rÄ   )Úcopyr3   Úpop)r‡   r�   r	  r‰   Útyps        rW   ÚdeserializezPydanticModelField.deserialize   sI   € ð �yŠy‰{Œ{ˆÝ(¨¯ª°&Ñ)9Ô)9¸3Ñ?Ô?ˆØˆsÐ/˜ $Ð/Ð/¨$Ð/Ð/Ð/rY   Úsub_typer\   c                óÆ   — | j         �Yt          j        |j        j        ¦  «        5  t          | j         || j        ¦  «        | _         ddd¦  «         dS # 1 swxY w Y   dS dS )zxExpands type vars in the context of a subtype when an attribute is inherited
        from a generic super type.
        N)r’   r6   rû   r[   rü   r8   r�   )re   r  r‰   s      rW   Úexpand_typevar_from_subtypez.PydanticModelField.expand_typevar_from_subtype§  s¹   € ð Œ9Ð ÝÔ*¨3¬;Ô+FÑGÔGð Tð TÝ3°D´I¸xÈÌÑSÔS�”	ðTð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tð Tð Tð !Ð s   ¦!AÁAÁAN)rœ   rR   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‰   r2   rë   r±   rì   r±   rS   r   )FF)
ræ   r)   r‰   r2   rë   r±   rî   r±   rS   rä   ©F)
ræ   r)   r‰   r2   rê   r±   rë   r±   rS   r*   ©rS   r   )r�   r)   r	  r   r‰   r2   rS   rÚ   )r  r)   r‰   r2   rS   r\   )r§   r¨   r©   rª   rd   rõ   r	   ró   r  Úclassmethodr  r  rÄ   rY   rW   rÚ   rÚ     sÖ   € € € € € Ø?Ð?ðð ð ð ð0
ð 
ð 
ð 
ðB */Ø"'ð+ð +ð +ð +ð +ðd */ðXð Xð Xð Xð Xð
ð 
ð 
ð 
ð ð0ð 0ð 0ñ „[ð0ðTð Tð Tð Tð Tð TrY   rÚ   c                  ó8   — e Zd ZdZd„ Zed	d„¦   «         Zd
d„ZdS )ÚPydanticModelClassVarz•Based on mypy.plugins.dataclasses.DataclassAttribute.

    ClassVars are ignored by subclasses.

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

    Attributes:
        tracked_config_fields: A set of field configs that the plugin has to track their value.
    >   ÚextraÚfrozenrà   Úalias_generatorrÌ   Úpopulate_by_nameÚvalidate_by_nameÚvalidate_by_aliaszset[str]Útracked_config_fieldsr‡   r   rˆ   úExpression | Statementr‰   r2   r`   r_   rS   r\   c                ó>   — || _         || _        || _        || _        d S r^   )Ú_clsÚ_reasonÚ_apir`   )re   r‡   rˆ   r‰   r`   s        rW   rd   z!PydanticModelTransformer.__init__Û  s'   € ð ˆŒ	ØˆŒØˆŒ	à*ˆÔÐÐrY   r±   c                ó6  — | j         j        }t          |¦  «        }|                      ¦   «         }|                      ||¦  «        \  }}|�|€dS |D ]}|j        € dS Œ|                     t          ¦  «        }|                      ||||¦  «         |  	                    ||||¦  «         |  
                    || j        |j        du ¬¦  «         |                      ¦   «          d„ |D ¦   «         d„ |D ¦   «         |                     ¦   «         dœ|j        t           <   dS )a†  Configures the BaseModel subclass according to the plugin settings.

        In particular:

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

        Teach mypy this by marking any function whose outermost decorator is a `validator()`,
        `field_validator()` or `serializer()` call as a `classmethod`.
        r   c              3  ó€   •K  — | ]8\  }}‰j         |         d k    ot          |t          ¦  «        o
|j        dk    V — Œ9dS )ÚmodeÚafterN)r˜   rk   r%   Úvalue)rÅ   Úir  Ú	first_decs      €rW   ú	<genexpr>zGPydanticModelTransformer.adjust_decorator_signatures.<locals>.<genexpr>  sg   øè è € ð  ð  á &  3ð &Ô/°Ô2°fÒ<ÐrÅÈCÕQXÑAYÔAYÐrÐ^aÔ^gÐkrÒ^rð ð  ð  ð  ð  ð  rY   TN)r&  r�   ÚnamesÚvaluesrk   rl   r   Úoriginal_decoratorsr   Úcalleer    rg   Ú(IMPLICIT_CLASSMETHOD_DECORATOR_FULLNAMESÚMODEL_VALIDATOR_FULLNAMEÚanyÚ	enumerater™   ÚfuncÚis_class)re   rp   rA  s     @rW   r7  z4PydanticModelTransformer.adjust_decorator_signatures  sõ   ø€ ð ”9”>Ô'×.Ò.Ñ0Ô0ð 	2ð 	2ˆCÝ˜#œ(¥IÑ.Ô.ð 2ØœHÔ8¸Ô;�	å˜y­(Ñ3Ô3ð2å" 9Ô#3µXÑ>Ô>ð2ð "Ô(Ô1Õ5]Ð]Ð]ð "Ô(Ô1Õ5MÒMÐMÝð  ð  ð  ð  å*3°I´NÑ*CÔ*Cð ñ  ô  ñ ô ð Nð .2�C”H”MÔ*øð#	2ð 	2rY   ÚModelConfigDatac           	     óª  — | j         }t          ¦   «         }d}d}|j                             ¦   «         D ]4\  }}|                      ||¦  «        }|rd}|                     |¦  «         Œ5d}|j        j        D �]}t          |t          t          f¦  «        sŒ t          |t          ¦  «        �r|j        d         }	t          |	t          ¦  «        r|	j        dk    rŒdt          |j        t          ¦  «        rZt!          |j        j        |j        j        ¦  «        D ]3\  }
}|
€Œ|                     |                      |
|d¬¦  «        ¦  «         Œ4�nt          |j        t&          ¦  «        rV|j        j        D ]I\  }}t          |t(          ¦  «        sŒ|                     |                      |j        |¦  «        ¦  «         ŒJn�t          |t          ¦  «        rˆ|j        dk    r�Œk|j        j        D ]n}t          |t          ¦  «        sŒ|j        d         }	t          |	t          ¦  «        sŒ;|                     |                      |	j        |j        ¦  «        ¦  «         Œo|r| j                             d|¦  «          nd}�Œ	|s|r8|r6|j        r/|j        s(|j        s!| j        j        rt;          | j        |¦  «         |j        j        d	d…         D ]ƒ}t@          |j!        vrŒ| j         "                    tG          |j$        ¦  «        ¦  «         |j!        t@                   d
                              ¦   «         D ]\  }}| %                    ||¦  «         ŒŒ„|S )zhCollects the values of the config attributes that are used by the plugin, accounting for parent classes.FTNr   Úmodel_config)Ú	lax_extraÚConfigzYSpecifying config in two places is ambiguous, use either Config attribute or class kwargsé   r¿   )&r&  rM  ÚkeywordsÚitemsÚget_config_updateÚupdateÚdefsÚbodyrk   r   r   Úlvaluesr    rœ   Úrvaluer   r–   r˜   r™   r   r%   r?  r(  ÚfailÚhas_alias_generatorr!  r   r`   r°   Úerror_required_dynamic_aliasesr�   ÚmrorÓ   rÒ   Úadd_plugin_dependencyr5   rg   Ú
setdefault)re   r‡   r¿   Úhas_config_kwargsÚhas_config_from_namespacerœ   ÚexprÚconfig_dataÚstmtÚlhsr¡   r  Úkey_exprÚ
value_exprÚsubstmtr�   r?  s                    rW   r1  z'PydanticModelTransformer.collect_config'  s¥  € àŒiˆÝ Ñ"Ô"ˆà!ÐØ$)Ð!ð œ,×,Ò,Ñ.Ô.ð 	+ð 	+‰JˆD�$Ø×0Ò0°°tÑ<Ô<ˆKØð +Ø$(Ð!Ø—’˜kÑ*Ô*Ð*øð "&ˆØ”H”Mð &	-ñ &	-ˆDÝ˜d¥^µXÐ$>Ñ?Ô?ð Øå˜$¥Ñ/Ô/ñ TØ”l 1”o�Ý! #¥xÑ0Ô0ð °C´HÀÒ4NÐ4NØå˜dœk­8Ñ4Ô4ð 	ZÝ),¨T¬[Ô-BÀDÄKÔDTÑ)UÔ)Uð ]ð ]™˜ #Ø#Ð+Ø$ØŸš d×&<Ò&<¸XÀsÐVZÐ&<Ñ&[Ô&[Ñ\Ô\Ð\Ð\ñ]õ   ¤­XÑ6Ô6ð ZØ04´Ô0Að Zð ZÑ,˜ *Ý)¨(µGÑ<Ô<ð %Ø$ØŸš d×&<Ò&<¸X¼^ÈZÑ&XÔ&XÑYÔYÐYÐYøå˜D¥(Ñ+Ô+ð 	TØ”9 Ò(Ð(ÙØ#œyœ~ð Tð T�GÝ% g­~Ñ>Ô>ð !Ø Ø!œ/¨!Ô,�CÝ% c­8Ñ4Ô4ð !Ø Ø—M’M $×"8Ò"8¸¼À7Ä>Ñ"RÔ"RÑSÔSÐSÐSà ð Ø”	—’ØoØñô ð ð �à(,Ð%Ñ%àð 	@Ð 9ð 	@àð@àÔ.ð@ð  Ô0ð@ð 5;Ô4Kð@ð Ô&ÔDð	@õ /¨t¬y¸$Ñ?Ô?Ð?à”H”L   Ô$ð 	/ð 	/ˆDÝ 4¤=Ð0Ð0Øð ŒI×+Ò+Õ,AÀ$Ä-Ñ,PÔ,PÑQÔQÐQØ#œ}­\Ô:¸8ÔD×JÒJÑLÔLð /ð /‘��eØ×!Ò! $¨Ñ.Ô.Ð.Ð.ð/àˆrY   rO  rþ   úJtuple[list[PydanticModelField] | None, list[PydanticModelClassVar] | None]c                óÐ  — | j         }i }i }t          |j        j        dd…         ¦  «        D �]j}t          |j        vrŒ| j                             t          |j	        ¦  «        ¦  «         |j        t                   d          
                    ¦   «         D ]´\  }}t                               ||| j        ¦  «        }	|	                     |j        | j        ¦  «         |	||<   |j        j                             |¦  «        }
|
rH|
j        rAt#          |
j        t$          t&          f¦  «        s | j                             d|
j        ¦  «         Œµ|j        t                   d          
                    ¦   «         D ]"\  }}t*                               |¦  «        ||<   Œ#�Œlt-          ¦   «         }t-          ¦   «         }|                      |j        ¦  «        D ]Ö}|                      |||¦  «        }|€Œ|j        d         }t#          |t6          ¦  «        sJ ‚t#          |t          ¦  «        rH|r!|j        dk    rt;          | j        |¦  «         Œx|                     |j        ¦  «         |||j        <   Œ�t#          |t*          ¦  «        r$|                     |j        ¦  «         |||j        <   Œ×t?          |                      ¦   «         ¦  «        t?          |                      ¦   «         ¦  «        fS )	zACollects the fields for the model, accounting for parent classes.rR  éÿÿÿÿr/  z7BaseModel field may only be overridden by another fieldr0  Nr   r÷   )!r&  Úreversedr�   r^  rÓ   rÒ   r(  r_  r5   rg   rT  rÚ   r  r  rC  r·   rl   rk   r*   r"   r[  r  ÚsetÚ%_get_assignment_statements_from_blockrW  Ú$collect_field_or_class_var_from_stmtrY  r    rœ   Ú error_extra_fields_on_root_modelÚaddÚlistrD  )re   rO  rþ   r‡   Úfound_fieldsÚfound_class_varsr�   rœ   r	  r,  Úsym_nodeÚcurrent_field_namesÚcurrent_class_vars_namesre  Úmaybe_fieldrf  s                   rW   r2  z6PydanticModelTransformer.collect_fields_and_class_varss  sÔ  € ð Œiˆð 79ˆØ=?ÐÝ˜SœXœ\¨!¨B¨$Ô/Ñ0Ô0ð 	Qñ 	QˆDõ  4¤=Ð0Ð0Øð ŒI×+Ò+Õ,AÀ$Ä-Ñ,PÔ,PÑQÔQÐQà"œm­LÔ9¸(ÔC×IÒIÑKÔKð ð ‘
��dÝ*×6Ò6°t¸TÀ4Ä9ÑMÔM�ð
 ×1Ò1°#´(¸D¼IÑFÔFÐFØ%*�˜TÑ"àœ8œ>×-Ò-¨dÑ3Ô3�Øð  ¤ð µjÀÄÕQTÕVeÐPfÑ6gÔ6gð Ø”I—N’NØQØ œñô ð øð
 #œm­LÔ9¸,ÔG×MÒMÑOÔOð Qð Q‘
��dÝ)>×)JÒ)JÈ4Ñ)PÔ)PÐ  Ñ&Ð&ñQõ ),©¬ÐÝ-0©U¬UÐ Ø×>Ò>¸s¼xÑHÔHð 	9ð 	9ˆDØ×CÒCÀDÈ,ÐXhÑiÔiˆKØÐ"Øà”,˜q”/ˆCÝ˜c¥8Ñ,Ô,Ð,Ð,Ð,Ý˜+Õ'9Ñ:Ô:ð 9Ø ð 9 S¤X°Ò%7Ð%7Ý4°T´YÀÑEÔEÐEÐEà'×+Ò+¨C¬HÑ5Ô5Ð5Ø-8�L ¤Ñ*Ð*Ý˜KÕ)>Ñ?Ô?ð 9Ø(×,Ò,¨S¬XÑ6Ô6Ð6Ø-8Ð  ¤Ñ*øå�L×'Ò'Ñ)Ô)Ñ*Ô*­DÐ1A×1HÒ1HÑ1JÔ1JÑ,KÔ,KÐKÐKrY   re  r   úIterator[AssignmentStmt]c              #  óÐ   K  — |j         D ]$}|j        s|                      |¦  «        E d {V —† Œ%|j        �.|j        j        s$|                      |j        ¦  «        E d {V —† d S d S d S r^   )rX  Úis_unreachablero  Ú	else_body)re   re  rX  s      rW   Ú,_get_assignment_statements_from_if_statementzEPydanticModelTransformer._get_assignment_statements_from_if_statement·  sš   è è € Ø”Ið 	Lð 	LˆDØÔ&ð LØ×EÒEÀdÑKÔKÐKÐKÐKÐKÐKÐKÐKøØŒ>Ð%¨d¬nÔ.KÐ%Ø×AÒAÀ$Ä.ÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQð &Ð%Ð%Ð%rY   Úblockr   c              #  ó²   K  — |j         D ]L}t          |t          ¦  «        r|V — Œt          |t          ¦  «        r|                      |¦  «        E d {V —† ŒMd S r^   )rX  rk   r   r   r~  )re   r  re  s      rW   ro  z>PydanticModelTransformer._get_assignment_statements_from_block¾  s}   è è € Ø”Jð 	Sð 	SˆDÝ˜$¥Ñ/Ô/ð SØ�
�
�
�
Ý˜D¥&Ñ)Ô)ð SØ×LÒLÈTÑRÔRÐRÐRÐRÐRÐRÐRÐRøð		Sð 	SrY   r   r0  ú dict[str, PydanticModelClassVar]ú1PydanticModelField | PydanticModelClassVar | Nonec                óH  — | j         }|j        d         }t          |t          ¦  «        r$t	          j        |j        ¦  «        r|j        dk    rdS |j        sžt          |j        t          ¦  «        rbt          |j        j
        t          ¦  «        rCt          |j        j
        j
        t          ¦  «        r|j        j
        j
        j        t          v rdS |j        |v rdS t          | j        |¦  «         dS |j        d         }t          |t          ¦  «        sdS t	          j        |j        ¦  «        r|j        dk    rdS |j        j                             |j        ¦  «        }|€dS |j        }t          |t&          ¦  «        rdS t          |t(          ¦  «        r| j                             d|¦  «         dS t          |t,          ¦  «        sdS |j        rt1          |j        ¦  «        S t3          |j        ¦  «        }t          |t6          ¦  «        r+|j        j        dk    r| j                             d|¦  «         |                      |¦  «        }	|                      |¦  «        }
|j        €r|j        rk|j        rd| j                              |j        d¬¦  «        }|r||_        n9| j                             d	|¦  «         tC          tD          j#        ¦  «        |_        |j        r|	rt1          |j        ¦  «        S |  $                    |¦  «        \  }}|r/|j%        s(|j&        s!| j'        j(        rtS          | j        |¦  «         |  *                    |¦  «        }|  +                    ||j        |¦  «        }tY          |j        ||	|
|||j-        |j.        ||j        ¬
¦
  «
        S )a^  Get pydantic model field from statement.

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

        Returns:
            A pydantic model field if it could find the field in statement. Otherwise, `None`.
        r   rO  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&  rY  rk   r    rF   Úis_valid_field_namerœ   Ú
new_syntaxrZ  r   rF  rg   ÚDECORATOR_FULLNAMESÚerror_untyped_fieldsr(  r�   rC  r·   rl   r"   r(   r[  r*   Úis_classvarr  rB   r’   r;   Úget_has_defaultÚ
get_strictr„  Úis_inferredÚanalyze_simple_literal_typer9   r>   Ú
from_errorÚget_alias_infor!  r   r`   r°   r]  Úis_field_frozenÚ_infer_dataclass_attr_init_typerÚ   r�   rã   )re   re  rO  r0  r‡   rf  rp   rl   Ú	node_typerß   rà   r  rÛ   rÞ   rÝ   Ú	init_types                   rW   rp  z=PydanticModelTransformer.collect_field_or_class_var_from_stmtÅ  sº  € ð ŒiˆàŒl˜1ŒoˆÝ˜#�xÑ(Ô(ð 	µÔ0KÈCÌHÑ0UÔ0Uð 	ÐY\ÔYaÐesÒYsÐYsØ�4àŒð 	å˜4œ;­Ñ1Ô1ð	å˜tœ{Ô1µ8Ñ<Ô<ð	õ ˜tœ{Ô1Ô8½(ÑCÔCð	ð ”KÔ&Ô-Ô6Õ:MÐMÐMð
 �tàŒx˜:Ð%Ð%à�tõ ! ¤¨DÑ1Ô1Ð1Ø�4àŒl˜1ŒoˆÝ˜#�xÑ(Ô(ð 	Ø�4åÔ*¨3¬8Ñ4Ô4ð 	¸¼ÀNÒ8RÐ8RØ�4àŒhŒn× Ò  ¤Ñ*Ô*ˆØˆ;ð �4àŒxˆÝ�d�OÑ,Ô,ð 	ð
 �4å�d�IÑ&Ô&ð 	ØŒI�NŠNØXØñô ð ð �4å˜$¥Ñ$Ô$ð 	ð
 �4ð Ôð 	3Ý(¨¬Ñ2Ô2Ð2õ $ D¤IÑ.Ô.ˆ	Ý�i¥Ñ*Ô*ð 	¨y¬~Ô/FÐJ_Ò/_Ð/_ØŒI�NŠNØ7Øñô ð ð
 ×*Ò*¨4Ñ0Ô0ˆØ—’ Ñ&Ô&ˆàŒ8Ð ¤Ð°$Ô2BÐð ”)×7Ò7¸¼ÈdÐ7ÑSÔSˆCØð :Ø�”	�	à”	—’Ø]Øñô ð õ $¥IÔ$8Ñ9Ô9�”	àŒ=ð 	3˜[ð 	3å(¨¬Ñ2Ô2Ð2à#'×#6Ò#6°tÑ#<Ô#<Ñ ˆÐ àð	<à!Ô2ð	<à6BÔ6Sð	<ð Ô"Ô@ð	<õ
 +¨4¬9°dÑ;Ô;Ð;Ø×(Ò(¨Ñ.Ô.ˆ	à×8Ò8¸¸c¼hÈÑMÔMˆ	Ý!Ø”Ø/Ø#ØØØØ”Ø”;ØØ”ð
ñ 
ô 
ð 	
rY   rp   r&   rœ   rR   rÐ   r   rä   c                óø  — |j         }|j        r|S t          |j         ¦  «        }t          |t          ¦  «        s|S |j                              d¦  «        }|�r!t          |j        t          ¦  «        rÞ|j                              d¦  «        }|sJ ‚|j         r)t          t          |j         |j         |¦  «        ¦  «        }nt          t          j        ¦  «        S t          |t          ¦  «        r8|j        t          t          t          gk    rt!          |j        d         |¦  «        S | j                             d|j         j        › d�|¦  «         n)| j                             d|j         j        › d�|¦  «         |S )zvInfer __init__ argument type for an attribute.

        In particular, possibly use the signature of __set__.
        Ú__set__rP   z(Unsupported signature for "__set__" in "ú"zUnsupported "__set__" in ")r’   ÚimplicitrB   rk   r;   r·   rl   r   Úget_containing_type_infor8   r9   r>   Úunannotatedr:   Ú	arg_kindsr   r
   Ú	arg_typesr(  r[  rœ   )	re   rp   rœ   rÐ   ÚdefaultÚtÚsetterÚ
super_infoÚsetter_types	            rW   r‘  z8PydanticModelTransformer._infer_dataclass_attr_init_typeN  sq  € ð
 ”(ˆØŒ<ð 	ØˆNÝ˜CœHÑ%Ô%ˆõ ˜!�XÑ&Ô&ð 	ØˆNØ”—’˜IÑ&Ô&ˆØñ 	UÝ˜&œ+¥wÑ/Ô/ð UØœV×<Ò<¸YÑGÔG�
Ø!Ð!Ð!�zØ”;ð :Ý"1Õ2IÈ&Ì+ÐWXÔW]Ð_iÑ2jÔ2jÑ"kÔ"k�K�Kå"¥9Ô#8Ñ9Ô9Ð9Ý˜k­<Ñ8Ô8ð g¸[Ô=RÝÝÝðWò >ð >õ
 3°;Ô3HÈÔ3KÈQÑOÔOÐOà”I—N’NÐ#\ÈaÌfÌkÐ#\Ð#\Ð#\Ð^eÑfÔfÐfÐfà”	—’ÐJ¸A¼F¼KÐJÐJÐJÈGÑTÔTÐTàˆrY   r/  úlist[PydanticModelField]r¿   r:  c           
     óJ  — d| j         j        j        v r| j         j        j        d         j        sdS | j        j        }t          |j        ¦  «        }|j        p|j	         o|j
        du}t          |j        o|j         ¦  «        }|                      |||||||d¬¦  «        }	|�rm| j                             t          ¦  «        j        }
t#          |
t$          ¦  «        sJ ‚d|
j        v �r(|
j        d         j        }t#          |t&          ¦  «        sJ ‚|�ý|j        �ö|j        }t#          |t*          ¦  «        sJ ‚t-          |j        ¦  «        D ]Ã\  }}|�*|                     d¦  «        s|                     d¦  «        sŒ2| j                             |j        |         ¦  «        }|�0|dv r,|                     t9          t:          j        ¦  «        ¦  «        }t?          ||¦  «        }|	                      tC          ||dtD          ¦  «        ¦  «         ŒÄ|  #                    ||¦  «        sPt?          d	¦  «        }|	                      tC          |tI          t:          j%        ¦  «        dtL          ¦  «        ¦  «         tO          | j        | j         d|	tQ          ¦   «         ¬
¦  «         dS )z§Adds a fields-aware `__init__` method to the class.

        The added `__init__` will be annotated with types vs. all `Any` depending on the plugin settings.
        rd   NFT)rç   rè   Úrequires_dynamic_aliasesrê   r:  rþ   rë   Ú__Ú_)Ú_cli_settings_sourceÚ_build_sourcesÚkwargs)r™   Úreturn_type))r&  r�   rC  Úplugin_generatedr`   r¯   r±   rà   r!  r   r"  r\  Úget_field_argumentsr(  rj   r3  rl   rk   r)   r   r’   r:   rJ  r˜   Ú
startswithÚ	anal_typer›  ÚacceptÚChangeExplicitTypeOfAnyr>   Úfrom_omitted_genericsr*   Úappendr   r   Úshould_init_forbid_extrar9   rô   r   Ú
add_methodr<   )re   r/  r¿   r:  rþ   rç   rè   rê   r£  r™   Úbase_settings_nodeÚbase_settings_init_nodeÚ	func_typeÚarg_idxr¡   Úanalyzed_variable_typerï   Úvars                     rW   r4  z(PydanticModelTransformer.add_initializert  s¸  € ð ˜œœÔ-Ð-Ð-°d´i´nÔ6JÈ:Ô6VÔ6gÐ-ØˆFàÔ"Ô-ˆÝ˜FœMÑ*Ô*ˆØÔ0ÐK°FÔ4KÐLÐvÐQWÔQiÐqvÐQvˆ	Ý#'¨Ô(BÐ(bÈ6ÔKbÐGbÑ#cÔ#cÐ Ø×'Ò'ØØØ%Ø%=ØØ#Ø'Ø%)ð (ñ 	
ô 	
ˆð ñ 	_Ø!%¤×!AÒ!AÕBWÑ!XÔ!XÔ!]ÐÝÐ0µ(Ñ;Ô;Ð;Ð;Ð;ØÐ/Ô5Ð5Ñ5Ø*<Ô*BÀ:Ô*NÔ*SÐ'Ý!Ð"9½7ÑCÔCÐCÐCÐCØ*Ð6Ð;RÔ;WÐ;cØ 7Ô <�IÝ% iµÑ>Ô>Ð>Ð>Ð>Ý-6°yÔ7JÑ-KÔ-Kð _ð _Ñ)˜ Ø#Ð+¨x×/BÒ/BÀ4Ñ/HÔ/HÐ+ÐPX×PcÒPcÐdgÑPhÔPhÐ+Ø$Ø15´×1DÒ1DÀYÔEXÐY`ÔEaÑ1bÔ1bÐ.Ø1Ð=À(ð Oð Cð Cð 6L×5RÒ5RÝ 7½	Ô8WÑ XÔ Xñ6ô 6Ð2õ $' xÐ1GÑ#HÔ#H˜ØŸš¥H¨XÐ7MÈtÕU\Ñ$]Ô$]Ñ^Ô^Ð^Ð^à×,Ò,¨V°VÑ<Ô<ð 	UÝ�h‘-”-ˆCØ�KŠK� ¥g­iÔ.@Ñ&AÔ&AÀ4ÍÑSÔSÑTÔTÐTå�4”9˜dœi¨¸$ÍHÉJÌJÐWÑWÔWÐWÐWÐWrY   c           
     ó8  — | j                              t          › d�| j                              t          › d�¦  «        g¦  «        }t          |t	          ¦   «         g¦  «        }t          t          d|¦  «        |dt          ¦  «        }t          j	        | j         j
        j        ¦  «        5  |                      |dt          |j        ¦  «        dd||¬¦  «        }ddd¦  «         n# 1 swxY w Y   |                      ||¦  «        sPt          d¦  «        }	|                     t          |	t#          t$          j        ¦  «        dt(          ¦  «        ¦  «         |r||gz   n|g|z   }t+          | j         | j        d	|t/          | j        j        ¦  «        d¬
¦  «         dS )zäAdds a fully typed `model_construct` classmethod to the class.

        Similar to the fields-aware __init__ method, but always uses the field names (not aliases),
        and does not treat settings fields as optional.
        z.setz.strÚ_fields_setNTF)rç   rè   r£  rê   r:  rþ   r¨  Úmodel_construct)r™   r©  Úis_classmethod)r(  Ú
named_typeÚBUILTINS_NAMErA   r<   r   r*   r   r6   rû   r[   rü   r«  r±   rà   r²  r±  r9   r>   rô   r   r³  r&  rC   r�   )
re   r/  r¿   r:  rþ   Úset_strÚoptional_set_strÚfields_set_argumentr™   r¹  s
             rW   r5  z3PydanticModelTransformer.add_model_construct_method­  s×  € ð ”)×&Ò&­-Ð'=Ð'=Ð'=ÀÄ	×@TÒ@TÕXeÐUkÐUkÐUkÑ@lÔ@lÐ?mÑnÔnˆÝ$ g­x©z¬zÐ%:Ñ;Ô;ÐÝ&¥s¨=Ð:JÑ'KÔ'KÐM]Ð_cÕelÑmÔmÐÝÔ& t¤yÔ'8Ô'HÑIÔIð 		ð 		Ø×+Ò+ØØÝ! &¤-Ñ0Ô0Ø).ØØ'Ø+ð ,ñ ô ˆDð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð ×,Ò,¨V°VÑ<Ô<ð 	UÝ�h‘-”-ˆCØ�KŠK� ¥g­iÔ.@Ñ&AÔ&AÀ4ÍÑSÔSÑTÔTÐTà/<Ð^ˆtÐ*Ð+Ñ+Ð+ÐCVÐBWÐZ^ÑB^ˆåØŒIØŒIØØÝ% d¤i¤nÑ5Ô5Øð	
ñ 	
ô 	
ð 	
ð 	
ð 	
s   Â*/C%Ã%C)Ã,C)r  c                óô  — | j         j        }|D ]è}|j                             |j        ¦  «        }|�f|j        }t          |t          ¦  «        r|p|j        |_	        ŒNt          |t          ¦  «        r%| j        j        s| j                             ¦   «          Œ‰|                     ||d¬¦  «        }||_        ||_	        |j        dz   |j        z   |_        t#          t$          |¦  «        |j        |j        <   ŒédS )z§Marks all fields as properties so that attempts to set them trigger mypy errors.

        This is the same approach used by the attrs and dataclasses plugins.
        NF)rê   ú.)r&  r�   rC  r·   rœ   rl   rk   r*   rÝ   Úis_propertyr"   r(  Úfinal_iterationÚdeferró   rg   Ú	_fullnamer&   r   )re   r/  r‰   r  r�   r,  rv  r¹  s           rW   r6  z#PydanticModelTransformer.set_frozenÕ  sö   € ð
 ŒyŒ~ˆØð 	Bð 	BˆEØ”z—~’~ e¤jÑ1Ô1ˆHØÐ#Ø”m�Ý˜c¥3Ñ'Ô'ð &Ø&,Ð&?°´�C”O�OÝ ¥_Ñ5Ô5ð &¸d¼iÔ>Wð &à”I—O’OÑ%Ô%Ð%øð
 —l’l 4¨¸�lÑ>Ô>�Ø�”Ø"(�”Ø $¤°Ñ 3°c´hÑ >�”Ý'6µt¸SÑ'AÔ'A�”
˜3œ8Ñ$Ð$ð#	Bð 	BrY   Fr  r   rP  úModelConfigData | Nonec                ó
  — || j         vrdS |dk    rlt          |t          ¦  «        r|j        dk    }n;t          |t          ¦  «        r|j        dk    }n|st          || j        |¦  «         dS t          |¬¦  «        S |dk    r4d}t          |t          ¦  «        r|j
        dk    rd}t          |¬	¦  «        S t          |t          ¦  «        r |j
        d
v rt          di ||j
        dk    i¤ŽS t          || j        |¦  «         dS )zÐDetermines the config update due to a single kwarg in the ConfigDict definition.

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

        `has_dynamic_alias` is True if and only if an alias is provided, but not as a string literal.
        If `has_dynamic_alias` is True, `alias` will be None.
        )NFÚvalidation_aliasrÛ   F)NT)rZ  rk   r'   r   rF  r#   rg   rÓ  r˜   r™   Úindexr%   r?  )re  rc  r  s      rW   r�  z'PydanticModelTransformer.get_alias_info7  sã   € ð Œ{ˆÝ�d�HÑ%Ô%ð 	à�;õ �t�XÑ&Ô&ð	Ý+5°d´kÅ7Ñ+KÔ+Kð	ØPTÔP[ÔPdÕhvÒPvÐPvð �;à ¤Ð/Ð/Ø”)˜DœN×0Ò0Ð1CÑDÔDÔEˆCˆCØ˜œÐ&Ð&Ø”)˜DœN×0Ò0°Ñ9Ô9Ô:ˆCˆCà�;å�c�7Ñ#Ô#ð 	Ø”9˜eÐ#Ð#à�:rY   c                ól  — | j         }t          |t          ¦  «        rdS t          |t          ¦  «        r/t          |j        t
          ¦  «        r|j        j        t          k    sdS t          |j	        ¦  «        D ]:\  }}|dk    r/|j
        |         }t          |t          ¦  «        o
|j        dk    c S Œ;dS )al  Returns whether the field is frozen, extracted from the declaration of the field defined in `stmt`.

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

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

        We disallow arbitrary kwargs if the extra config setting is "forbid", or if the plugin config says to,
        *unless* a required dynamic alias is present (since then we can't determine a valid signature).
        FT)r!  r   Úis_dynamic_alias_presentr±   r\  rÌ  r`   r®   )re   r/  r¿   s      rW   r²  z1PydanticModelTransformer.should_init_forbid_extraŽ  s]   € ð Ô'ð 	¨6Ô+Bð 	Ø×,Ò,¨VµT¸&Ô:TÑ5UÔ5UÑVÔVð Ø�uØÔð 	Ø�4ØÔ!Ô3Ð3rY   r\  c                óF   — | D ]}|j         r dS Œ|r| D ]}|j        € dS ŒdS )z‘Returns whether any fields on the model have a "dynamic alias", i.e., an alias that cannot be
        determined during static analysis.
        TNF)rÞ   rÛ   )r/  r\  r,  s      rW   rá  z1PydanticModelTransformer.is_dynamic_alias_present›  sZ   € ð
 ð 	ð 	ˆEØÔ&ð Ø�t�tðàð 	 Øð  ð  �Ø”;Ð&Ø˜4˜4ð 'àˆurY   N)
r‡   r   rˆ   r$  r‰   r2   r`   r_   rS   r\   )rS   r±   )rS   r\   )rS   rM  )rO  rM  rþ   r±   rS   rj  )re  r   rS   rz  )r  r   rS   rz  )re  r   rO  rM  r0  r�  rS   r‚  )rp   r&   rœ   rR   rÐ   r   rS   rä   )
r/  r¡  r¿   rM  r:  r±   rþ   r±   rS   r\   )r/  r¡  r‰   r2   r  r±   rS   r\   r  )rœ   rR   r  r   rP  r±   rS   rÉ  )re  r   rS   r±   )re  r   rS   rá   )re  r   rS   rÖ  )r/  r¡  rç   r±   rè   r±   rê   r±   r£  r±   r:  r±   rþ   r±   rë   r±   rS   rÛ  )r/  r¡  r¿   rM  rS   r±   )r/  r¡  r\  r±   rS   r±   )r§   r¨   r©   rª   r#  rÉ   rd   rŠ   r7  r1  r2  r~  ro  rp  r‘  r4  r5  r6  rU  ÚstaticmethodrŠ  r‹  r�  r�  r«  r²  rá  rÄ   rY   rW   r†   r†   É  sK  € € € € € € ðð ð	'ð 	'ð 	'Ðð 	ð 	ð 	ñ 	ð+ð +ð +ð +ð"ð "ð "ð "ðH2ð 2ð 2ð 2ð6Jð Jð Jð JðXBLð BLð BLð BLðHRð Rð Rð RðSð Sð Sð SðG
ð G
ð G
ð G
ðR$ð $ð $ð $ðL7Xð 7Xð 7Xð 7Xðr&
ð &
ð &
ð &
ðPBð Bð Bð Bð2!ð !ð !ð !ð !ðF ð2ð 2ð 2ñ „\ð2ð* ðð ð ñ „\ðð ðð ð ñ „\ðð: ðð ð ñ „\ððB */ðð ð ð ð ð@4ð 4ð 4ð 4ð ðð ð ñ „\ðð ð rY   r†   c                  ó,   ‡ — e Zd ZdZdˆ fd„Zdd
„Zˆ xZS )r¯  z<A type translator used to change type of Any's, if explicit.Útype_of_anyrâ   rS   r\   c                óV   •— || _         t          ¦   «                              ¦   «          d S r^   )Ú_type_of_anyrc   rd   )re   rå  rf   s     €rW   rd   z ChangeExplicitTypeOfAny.__init__­  s'   ø€ Ø'ˆÔÝ‰Œ×ÒÑÔÐÐÐrY   r�  r9   r=   c                óf   — |j         t          j        k    r|                     | j        ¬¦  «        S |S )N)rå  )rå  r>   rô   rø   rç  )re   r�  s     rW   Ú	visit_anyz!ChangeExplicitTypeOfAny.visit_any±  s.   € ØŒ=�IÔ.Ò.Ð.Ø—?’?¨tÔ/@�?ÑAÔAÐAàˆHrY   )rå  râ   rS   r\   )r�  r9   rS   r=   )r§   r¨   r©   rª   rd   ré  r«   r¬   s   @rW   r¯  r¯  ª  sW   ø€ € € € € ØFÐFðð ð ð ð ð ðð ð ð ð ð ð ð rY   r¯  c                  óD   — e Zd ZdZ	 	 	 	 	 	 	 	 ddd„Zdd„Zdd„Zdd„ZdS )rM  z(Pydantic mypy plugin model config class.NrÌ  rá   r  rÌ   r   r"  r!  r\  rà   c	                óv   — || _         || _        || _        || _        || _        || _        || _        || _        d S r^   )rÌ  r  rÌ   r   r"  r!  r\  rà   )	re   rÌ  r  rÌ   r   r"  r!  r\  rà   s	            rW   rd   zModelConfigData.__init__»  sF   € ð )ˆÔØˆŒØ.ˆÔØ 0ˆÔØ!2ˆÔØ 0ˆÔØ#6ˆÔ ØˆŒˆˆrY   rS   r‚   c                óH   — d„ | j                              ¦   «         D ¦   «         S )z†Returns a dict of Pydantic model config names to their values.

        It includes the config if config value is not `None`.
        c                ó   — i | ]
\  }}|®||“ŒS r^   rÄ   )rÅ   ÚkÚvs      rW   rÆ   z3ModelConfigData.get_values_dict.<locals>.<dictcomp>Ô  s   € ÐHÐHÐH™˜˜A¸!¸-��1¸-¸-¸-rY   )Ú__dict__rT  rÇ   s    rW   r8  zModelConfigData.get_values_dictÏ  s'   € ð
 IÐH ¤×!4Ò!4Ñ!6Ô!6ÐHÑHÔHÐHrY   r¿   rÉ  r\   c                óˆ   — |€dS |                      ¦   «                              ¦   «         D ]\  }}t          | ||¦  «         ŒdS )z$Update Pydantic model config values.N)r8  rT  rº   )re   r¿   rî  rï  s       rW   rV  zModelConfigData.updateÖ  sV   € àˆ>ØˆFØ×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4ð 	 ð 	 ‰DˆAˆqÝ�D˜!˜QÑÔÐÐð	 ð 	 rY   rÀ   rR   r?  r   c                óL   — t          | |¦  «        €t          | ||¦  «         dS dS )zFSet default value for Pydantic model config if config value is `None`.N)r‘   rº   )re   rÀ   r?  s      rW   r`  zModelConfigData.setdefaultÝ  s2   € å�4˜ÑÔÐ%Ý�D˜#˜uÑ%Ô%Ð%Ð%Ð%ð &Ð%rY   )NNNNNNNN)rÌ  rá   r  rá   rÌ   rá   r   rá   r"  rá   r!  rá   r\  rá   rà   rá   rÈ   )r¿   rÉ  rS   r\   )rÀ   rR   r?  r   rS   r\   )r§   r¨   r©   rª   rd   r8  rV  r`  rÄ   rY   rW   rM  rM  ¸  s�   € € € € € Ø2Ð2ð %)Ø"Ø'+Ø(,Ø)-Ø(,Ø+/Ø"ðð ð ð ð ð(Ið Ið Ið Ið ð  ð  ð  ð&ð &ð &ð &ð &ð &rY   rM  r�   r)   r±   c                ó6   — |                       t          ¦  «        S )zXReturn whether the type info is a root model subclass (or the `RootModel` class itself).)rm   ÚROOT_MODEL_FULLNAME)r�   s    rW   rþ   rþ   ã  s   € à�=Š=Õ,Ñ-Ô-Ð-rY   zpydantic-ormzInvalid from_attributes callÚPydanticzpydantic-configzInvalid config valuezpydantic-aliaszDynamic alias disallowedzpydantic-unexpectedzUnexpected behaviorzpydantic-fieldzUntyped field disallowedzInvalid Field defaultsz!Extra field on RootModel subclassÚ
model_namer‰   r,   rÐ   r   r\   c                óH   — |                      d| › d�|t          ¬¦  «         dS )zCEmits an error when the model does not have `from_attributes=True`.r–  z$" does not have from_attributes=True©ÚcodeN)r[  Ú	ERROR_ORM)rö  r‰   rÐ   s      rW   rÔ   rÔ   ñ  s-   € à‡H‚HÐA�ÐAÐAÐAÀ7ÕQZ€HÑ[Ô[Ð[Ð[Ð[rY   rœ   r2   c                óH   — |                      d| › d�|t          ¬¦  «         dS )z0Emits an error when the config value is invalid.zInvalid value for "Config.r–  rø  N)r[  ÚERROR_CONFIG)rœ   r‰   rÐ   s      rW   rÐ  rÐ  ö  s,   € à‡H‚HÐ1¨$Ð1Ð1Ð1°7Å€HÑNÔNÐNÐNÐNrY   c                ó@   — |                       d|t          ¬¦  «         dS )znEmits required dynamic aliases error.

    This will be called when `warn_required_dynamic_aliases=True`.
    z#Required dynamic aliases disallowedrø  N)r[  ÚERROR_ALIAS©r‰   rÐ   s     rW   r]  r]  û  s#   € ð
 ‡H‚HÐ2°GÅ+€HÑNÔNÐNÐNÐNrY   r×   ú8CheckerPluginInterface | SemanticAnalyzerPluginInterfacec                ób   — d}d| › d�}|d|› d�z  }|                      ||t          ¬¦  «         dS )z Emits unexpected behavior error.z6https://github.com/pydantic/pydantic/issues/new/choosez7The pydantic mypy plugin ran into unexpected behavior: ú
z&Please consider reporting this bug at z so we can try to fix it!rø  N)r[  ÚERROR_UNEXPECTED)r×   r‰   rÐ   ÚlinkÚfull_messages        rW   rÏ   rÏ     sO   € ð
 D€DØWÈVÐWÐWÐW€LØÐ\¸TÐ\Ð\Ð\Ñ\€LØ‡H‚Hˆ\˜7Õ)9€HÑ:Ô:Ð:Ð:Ð:rY   c                ó@   — |                       d|t          ¬¦  «         dS )z;Emits an error when there is an untyped field in the model.zUntyped fields disallowedrø  N)r[  ÚERROR_UNTYPEDrÿ  s     rW   rˆ  rˆ    s!   € à‡H‚HÐ(¨'½€HÑFÔFÐFÐFÐFrY   c                ó@   — |                       d|t          ¬¦  «         dS )z]Emits an error when there is more than just a root field defined for a subclass of RootModel.z2Only `root` is allowed as a field of a `RootModel`rø  N)r[  ÚERROR_EXTRA_FIELD_ROOT_MODELrÿ  s     rW   rq  rq    s"   € à‡H‚HÐAÀ7ÕQm€HÑnÔnÐnÐnÐnrY   Fú8SemanticAnalyzerPluginInterface | CheckerPluginInterfacer‡   r   r™   rÛ  r©  rú   rä   Útvar_defúTypeVarType | Noner½  c                ó&  — |j         }||j        v rR|j        |         }	|	j        r>t          |	j        t
          ¦  «        r$|j        j                             |	j        ¦  «         t          | t          ¦  «        r|  
                    d¦  «        }
n|                      dg ¦  «        }
|rE|pt          t          |¦  «        ¦  «        }t          t          d¦  «        |dt           d¦  «        g}n6|pt          |¦  «        }t          t          d¦  «        |dt           ¦  «        g}||z   }g g g }}}|D ]f}|j        s
J d¦   «         ‚|                     |j        ¦  «         |                     |j        j        ¦  «         |                     |j        ¦  «         Œgt-          |||||
|r|gnd¬¦  «        }t          ||t/          t1          ¦   «         g¦  «        ¦  «        }||_         t3          ||¦  «        |_        ||_        |j        dz   |z   |_        |j        |_        ||j        v r*t?          ||j        ¦  «        }|j        |         |j        |<   |rwd|_         t          ||j        ¦  «        }||_         |j        |_        d|_!        tE          |tG          d	¦  «        g|¦  «        }|j        |_        tI          tJ          |¦  «        }	ntI          tJ          |¦  «        }	d|	_        |	|j        |<   |j&        j        j                             |¦  «         dS )
zhVery closely related to `mypy.plugins.common.add_method_to_class`, with a few pydantic-specific changes.zbuiltins.functionr&  NTÚ__pydantic_self__z"All arguments must be fully typed.)Ú	variablesrÄ  r  )'r�   rC  rª  rk   rl   r   rW  rX  Úremover2   r¾  Únamed_generic_typer?   rC   r   r*   r   rð   r±  rï   rœ   rò   r:   r   r!   r4   r’   rL  rg   rÈ  r�   rD   Úis_decoratedr½  r   r    r&   r   Údefn)r‰   r‡   rœ   r™   r©  rú   r  r½  r�   rp   Úfunction_typeÚfirstr›  r˜   rš  r  Ú	signaturerK  Úr_namerï  Údecs                        rW   r³  r³    s  € ð Œ8€Dð ˆtŒzÐÐØŒj˜ÔˆØÔð 	+¥J¨s¬x½Ñ$AÔ$Að 	+ØŒHŒM× Ò  ¤Ñ*Ô*Ð*å�#Õ6Ñ7Ô7ð HØŸšÐ':Ñ;Ô;ˆˆà×.Ò.Ð/BÀBÑGÔGˆàð OØÐ>¥­-¸Ñ*=Ô*=Ñ!>Ô!>ˆ	Ý�#˜f™+œ+ y°$½ÀÑFÔFÐGˆˆàÐ4¥¨tÑ!4Ô!4ˆ	õ �#Ð1Ñ2Ô2°I¸tÅWÑMÔMÐNˆØ�4‰<€Dà&(¨"¨b˜)ˆy€IØð #ð #ˆØÔ"ÐHÐHÐ$HÑHÔHÐ"Ø×Ò˜Ô,Ñ-Ô-Ð-Ø×Ò˜œÔ*Ñ+Ô+Ð+Ø×Ò˜œÑ"Ô"Ð"Ð"åØ�9˜i¨°mÐ]eÐOoÐPXÈzÈzÐkoðñ ô €Iõ �4˜�u¥h¡j¤j \Ñ2Ô2Ñ3Ô3€DØ€D„IÝ! )¨TÑ2Ô2€D„IØ"€D„MØ”] SÑ(¨4Ñ/€D„NØ”	€D„Ið ˆtŒzÐÐå-¨d°D´JÑ?Ô?ˆØ!œZ¨Ô-ˆŒ
�6Ñð
 ð 
*Ø ˆÔÝ��d”iÑ Ô ˆØˆŒØ”nˆŒØˆÔÝ˜�x¨Ñ6Ô6Ð7¸Ñ;Ô;ˆØ”9ˆŒÝ�d CÑ(Ô(ˆˆå�d DÑ)Ô)ˆØ€CÔØ€D„JˆtÑà„I„NÔ×Ò˜tÑ$Ô$Ð$Ð$Ð$rY   rµ   údict[str, Any] | Nonec                ó<  — |                       d¦  «        sdS t          j        dk    rddl}n2	 ddl}n,# t
          $ r ddl}|                     dd¬¦  «         Y dS w xY wt          | d¦  «        5 }| 	                    |¦  «        cddd¦  «         S # 1 swxY w Y   dS )	z…Returns a dict of config keys to values.

    It reads configs from toml file and returns `None` if the file is not a toml file.
    z.tomlN)é   é   r   zJNo TOML parser installed, cannot read configuration from `pyproject.toml`.rP   )Ú
stacklevelÚrb)
ry   ÚsysÚversion_infoÚtomllibÚtomliÚImportErrorÚwarningsÚwarnÚopenÚload)rµ   Útoml_r$  Úrfs       rW   r¶   r¶   p  s  € ð
 ×Ò Ñ(Ô(ð Øˆtå
Ô˜7Ò"Ð"ØÐÐÐÐð	Ø!Ð!Ð!Ð!Ð!øÝð 	ð 	ð 	ØˆOˆOˆOà�MŠMÐfÐstˆMÑuÔuÐuØ�4�4ð		øøøõ 
ˆk˜4Ñ	 Ô	 ð  BØ�zŠz˜"‰~Œ~ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s!   ®3 ³%AÁAÁ/BÂBÂB)rQ   rR   rS   rT   )r�   r/   rS   r=   )r�   r)   rS   r±   )rö  rR   r‰   r,   rÐ   r   rS   r\   )rœ   rR   r‰   r2   rÐ   r   rS   r\   )r‰   r2   rÐ   r   rS   r\   )r×   rR   r‰   r   rÐ   r   rS   r\   )r‰   r,   rÐ   r   rS   r\   )NNF)r‰   r
  r‡   r   rœ   rR   r™   rÛ  r©  r=   rú   rä   r  r  r½  r±   rS   r\   )rµ   rR   rS   r  )„rª   Ú
__future__r   r  Úcollections.abcr   Úconfigparserr   Útypingr   r   Úmypy.errorcodesr   Úmypy.expandtyper	   r
   Ú
mypy.nodesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Úmypy.optionsr+   Úmypy.pluginr,   r-   r.   r/   r0   r1   r2   Úmypy.plugins.commonr3   Úmypy.semanalr4   Úmypy.server.triggerr5   Ú
mypy.stater6   Úmypy.type_visitorr7   Úmypy.typeopsr8   Ú
mypy.typesr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   Úmypy.typevarsrC   Ú	mypy.utilrD   Úmypy.versionrE   Úmypy_versionÚpydantic._internalrF   Úpydantic.versionrG   r½   rÓ   rn   r~   r3  rô  rs   rÓ  ÚDATACLASS_FULLNAMErH  r‡  rG  ÚMYPY_VERSION_TUPLEr¿  rX   rV   r_   rz   rÚ   r  r†   r¯  rM  rþ   rú  rü  rþ  r  r  ÚERROR_FIELD_DEFAULTSr	  rÔ   rÐ  r]  rÏ   rˆ  rq  r³  r¶   rÄ   rY   rW   ú<module>rC     s  ðØ dÐ dà "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à %Ð %Ð %Ð %Ð %Ð %Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð!ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ðD !Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à &Ð &Ð &Ð &Ð &Ð &Ø /Ð /Ð /Ð /Ð /Ð /à €Ø'€Ø.Ð Ø4Ð Ø=Ð Ø5Ð ØRÐ Ø(€Ø5Ð ØKÐ ðð ð Ð ð ,?ÐBtÐAuÑ+uÐ (ð (Ð'¨Ñ5Ô5Ð Ø€ð €ðð ð ð ðTMð TMð TMð TMð TM�Vñ TMô TMð TMðn+Cð +Cð +Cð +Cð +Cñ +Cô +Cð +Cð\#ð #ð #ð #ð4PTð PTð PTð PTð PTñ PTô PTð PTðf
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð2^ð ^ð ^ð ^ð ^ñ ^ô ^ð ^ðBð ð ð ð ˜nñ ô ð ð(&ð (&ð (&ð (&ð (&ñ (&ô (&ð (&ðV.ð .ð .ð .ð
 ˆI�nÐ&DÀjÑQÔQ€	ØˆyÐ*Ð,BÀJÑOÔO€ØˆiÐ(Ð*DÀjÑQÔQ€Ø�9Ð2Ð4IÈ:ÑVÔVÐ Ø�	Ð*Ð,FÈ
ÑSÔS€Ø �yÐ!1Ð3KÈZÑXÔXÐ Ø(˜yÐ)9Ð;^Ð`jÑkÔkÐ ð\ð \ð \ð \ð
Oð Oð Oð Oð
Oð Oð Oð Oð;ð ;ð ;ð ;ðGð Gð Gð Gð
oð oð oð oð "Ø#'Ø ðU%ð U%ð U%ð U%ð U%ðpð ð ð ð ð rY   