Files
cms-website/.deps_siteforge_v812/pydantic/__pycache__/mypy.cpython-312.pyc
T

343 lines
63 KiB
Plaintext
Raw Normal View History

Ë
ðÅÙj’îãóÖ—dZddlmZddlZddlmZddlmZddlm Z m
Z
ddl Z ddl
mZddlmZmZdd lmZmZmZmZmZmZmZmZmZmZmZmZmZm 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/m0Z0m1Z1m2Z2dd
l3m4Z4dd l5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<dd l=m>Z>dd
l?m@Z@ddlAmBZBddlCmDZDddlEmFZFddlGmHZHddl mIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRddlSmTZTddlUmVZVddlWmXZYddlZm[Z[ddl\m]Z]dZ^dZ_dZ`dZadZbdZcdZddZed Zfd!Zghd"£Zhehd#hz
Zie]eY«Zjd$Zkd%ZXdLd&„ZlGd'„d(e:«ZmGd)„d*«ZndMd+„ZoGd,„d-«ZpGd.„d/«ZqGd0„d1«ZrGd2„d3eF«ZsGd4„d5«ZtdNd6„Zued7d8d9«Zved:d;d9«Zwed<d=d9«Zxed>d?d9«Zyed@dAd9«Zzed@dBd9«Z{ed@dCd9«Z|dOdD„Z}dPdE„Z~dQdF„Z dRdG„Z€dQdH„Z�dSdI„Z‚ dT dUdJ„ZƒdVdK„Z„y)Wz^This module includes classes and functions designed specifically for use with the mypy plugin.é)Ú annotationsN)ÚIterator)Ú ConfigParser)ÚAnyÚCallable)Ú ErrorCode)Ú expand_typeÚexpand_type_by_instance) Ú ARG_NAMEDÚ
ARG_NAMED_OPTÚARG_OPTÚARG_POSÚ ARG_STAR2Ú INVARIANTÚMDEFÚArgumentÚAssignmentStmtÚBlockÚCallExprÚClassDefÚContextÚ DecoratorÚDictExprÚ EllipsisExprÚ
ExpressionÚFuncDefÚIfStmtÚJsonDictÚ
MemberExprÚNameExprÚPassStmtÚPlaceholderNodeÚRefExprÚ StatementÚStrExprÚSymbolTableNodeÚTempNodeÚ TypeAliasÚTypeInfoÚVar)ÚOptions)ÚCheckerPluginInterfaceÚClassDefContextÚDynamicClassDefContextÚ
MethodContextÚPluginÚReportConfigContextÚSemanticAnalyzerPluginInterface)Údeserialize_and_fixup_type)Úset_callable_name)Úmake_wildcard_trigger)Ústate)ÚTypeTranslator)Úmap_type_from_supertype)
ÚAnyTypeÚ CallableTypeÚInstanceÚNoneTypeÚTypeÚ TypeOfAnyÚTypeTypeÚ TypeVarTypeÚ UnionTypeÚget_proper_type)Ú
fill_typevars)Úget_unique_redefinition_name)Ú __version__)Ú_fields)Úparse_mypy_versionú
pydantic-mypyzpydantic-mypy-metadatazpydantic.main.BaseModelzpydantic.main.create_modelz#pydantic_settings.main.BaseSettingszpydantic.root_model.RootModelz5pydantic._internal._model_construction.ModelMetaclasszpydantic.fields.Fieldzpydantic.dataclasses.dataclassú.pydantic.functional_validators.model_validator>ú*pydantic.functional_serializers.serializerú.pydantic.deprecated.class_validators.validatorú.pydantic.functional_validators.field_validatorú3pydantic.deprecated.class_validators.root_validatorrIú0pydantic.functional_serializers.model_serializerrNÚbuiltinsécó—tS)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 úQC:\Users\30997\AppData\Local\Temp\pip-target-6g32zz5s\lib\python\pydantic/mypy.pyÚpluginrUqs
€ô Ðócód‡—eZdZdZd ˆfd„ Zd d„Zd d„Zd
d„Zdd„Zdd„Z dd„Z
dd „Z dd
„Z ˆxZ
S)rRzThe Pydantic mypy plugin.có‚•—t|«|_|jj«|_t‰|�|«y©N)ÚPydanticPluginConfigÚ
plugin_configÚto_dataÚ _plugin_dataÚsuperÚ__init__)ÚselfÚoptionsÚ __class__s €rTr_zPydanticPlugin.__init__ƒs4ø€Ü1°'Ó:ˆÔØ ×.Ñ.×6Ñ6Ó8ˆÔÜ
‰Ñ˜Õ!rVcó´—|j|«}|rEt|jt«r+|jj t
«r |j Sy)zUpdate Pydantic model class.N)Úlookup_fully_qualifiedÚ
isinstanceÚnoder)Úhas_baseÚBASEMODEL_FULLNAMEÚ$_pydantic_model_class_maker_callback)r`ÚfullnameÚsyms rTÚget_base_class_hookz"PydanticPlugin.get_base_class_hookˆsD€à×)Ñ)¨(Ó3ˆÙ ”:˜cŸh™h¬Ô1à�x‰x× Ñ Ô!3Ô4Ø×@Ñ@Ð@ØrVcó.—|tk(r |jSy)z,Update Pydantic `ModelMetaclass` definition.N)ÚMODEL_METACLASS_FULLNAMEÚ)_pydantic_model_metaclass_marker_callback©r`rjs rTÚget_metaclass_hookz!PydanticPlugin.get_metaclass_hook‘s€à Ô/Ò /Ø×AÑAÐ AØrVcó2—|jd«rtSy)z-Adjust return type of `from_orm` method call.z .from_ormN)ÚendswithÚfrom_attributes_callbackrps rTÚget_method_hookzPydanticPlugin.get_method_hook—s€à × Ñ ˜[Ô )Ü+Ð +ØrVcó.—|tk(r |jSy)zARecognize `create_model()` calls as dynamic BaseModel subclasses.N)ÚCREATE_MODEL_FULLNAMEÚ_pydantic_create_model_callbackrps rTÚget_dynamic_class_hookz%PydanticPlugin.get_dynamic_class_hook�s€à Ô,Ò ,Ø×7Ñ7Ð 7ØrVcó—|jS)zjReturn all plugin config data.
Used by mypy to determine if cache needs to be discarded.
)r])r`Úctxs rTÚreport_config_dataz!PydanticPlugin.report_config_data£s€ð
× Ñ Ð rVcó�—t|j|j|j|j«}|j «yrY)ÚPydanticModelTransformerÚclsÚreasonÚapir[Ú transform)r`r{Ú transformers rTriz3PydanticPlugin._pydantic_model_class_maker_callbackªs0€Ü.¨s¯w©w¸¿
¹
ÀCÇGÁGÈT×M_ÑM_Ó`ˆ Ø×ÑÕrVcóÖ—|jjry|jjj}|sJd«‚t |j dd«rd|j _yy)zÓReset dataclass_transform_spec attribute of ModelMetaclass.
Let the plugin handle it. This behavior can be disabled
if 'debug_dataclass_transform' is set to True', for testing purposes.
Nz-callback not passed from 'get_metaclass_hook'Údataclass_transform_spec)r[Údebug_dataclass_transformrÚinfoÚdeclared_metaclassÚgetattrÚtyper…)r`r{Úinfo_metaclasss rTroz8PydanticPlugin._pydantic_model_metaclass_marker_callback®s^€ð × Ñ × 7Ò 7Ø ØŸ™Ÿ™×8Ñ8ˆÙÐNÐNÓNˆ~Ü �>×&Ñ&Ð(BÀDÔ IØ;?ˆN× Ñ Õ 8ð JrVcó>—t}t|jj|jj«D]Ä\}}|dk(sŒ t |t «sŒ|j€Œ*t |jt«r|jj}Œ[t |jt«sŒvt |jjt«sŒ›|jjjj}ŒÆ|jj|«}|�t |jt«s<|jjt«}|�t |jt«sy|j}t|«}t |t«sJ‚|jj!|j"||jj$«}|j&|_|jj)|j"t+t,|««y)zFMake variables assigned from `create_model()` usable as types by mypy.Ú__base__N)rhÚzipÚcallÚ arg_namesÚargsrer#rfr)rjr*rŠr;r�Úlookup_fully_qualified_or_nonerCÚbasic_new_typeinfoÚnameÚlineÚmetaclass_typeÚadd_symbol_table_noder&r) r`r{Ú
base_fullnameÚarg_nameÚarg_exprÚbase_symÚ base_infoÚ
base_instancer‡s rTrxz.PydanticPlugin._pydantic_create_model_callback»sn€ô+ˆ
Ü"% c§h¡h×&8Ñ&8¸#¿(¹(¿-¹-Ö"HÑ ˆH�hؘ:Ó%¬*°X¼wÕ*GÈHÏMÉMÑLeܘhŸm™m¬XÔ6Ø$,§M¡M×$:Ñ$:‘MÜ §
¡
¬sÕ3¼
À8Ç=Á=×CUÑCUÔW_Õ8`Ø$,§M¡M×$6Ñ$6×$;Ñ$;×$DÑ$D‘Mð #Ið—7‘7×9Ñ9¸-ÓHˆØ Ð ¤:¨h¯m©m¼XÔ#Fà—w‘w×=Ñ=Ô>PÓQˆHØÐ¤z°(·-±-ÄÔ'JØà—M‘Mˆ Ü% iÓ0ˆ
ܘ-¬Ô2Ð2Ð2à�w‰w×)Ñ)¨#¯(©(°MÀ3Ç8Á8Ç=Á=ÓQˆØ'×6Ñ6ˆÔà �‰×%Ñ% c§h¡h´ÄÀdÓ0KÕLrV©rar+ÚreturnÚNone)rjÚstrrŸz(Callable[[ClassDefContext], None] | None)rjr¡rŸz&Callable[[MethodContext], Type] | None)rjr¡rŸz/Callable[[DynamicClassDefContext], None] | None)r{r1rŸúdict[str, Any])r{r-rŸr )r{r.rŸr )Ú__name__Ú
__module__Ú __qualname__Ú__doc__r_rlrqruryr|rirorxÚ
__classcell__©rbs@rTrRrR€s5ø„Ù#õ"ó
óó ó ó !ó ó @÷MrVrRcóN—eZdZUdZdZded<ded<ded<ded<d d„Zd d „Zy
)
rZaÛ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€yt|j«}|�q|jdi«jdi«}|jD]?}|j|d«}t |t
«st
d|›�«‚t|||«ŒAyt«}|j|j«|jD]'}|jt|d¬«}t|||«Œ)y)NÚtoolrHFz/Configuration value must be a boolean for key: )Úfallback) Ú config_fileÚ
parse_tomlÚgetÚ __slots__rer­Ú
ValueErrorÚsetattrrÚreadÚ
getbooleanÚCONFIGFILE_KEY)r`raÚ toml_configÚconfigÚkeyÚsettingr[s rTr_zPydanticPluginConfig.__init__ísÜ€Ø × Ñ Ð &Ø ä  ×!4Ñ!4Ó5ˆ Ø Ð "Ø —_‘_ V¨RÓ0×4Ñ4°_ÀbÓIˆFØ—~”~�Ø Ÿ*™* S¨%Ó0�Ü! '¬4Ô0Ü$Ð'VÐWZÐV[Ð%\Ó]Ð]ܘ˜c 7Õ+ñ &ô )›NˆMØ × Ñ ˜w×2Ñ2Ô 3Ø—~”~�Ø'×2Ñ2´>À3ÐQVÐ2ÓW�ܘ˜c 7Õ+ñ&rVcóV—|jD�cic]}|t||«“Œc}Scc}w)z/Returns a dict of config names to their values.)r´r‰)r`r¼s rTr\zPydanticPluginConfig.to_datas*€à37·>²>ÓB±>¨C�”W˜T 3Ó'Ñ'°>ÑBÐBùÒBs�&Nrž©rŸr¢)r£r¤r¥r¦r´Ú__annotations__r_r\©rVrTrZrZ×s3…ñð€Ið ÓØÓØ#'Ó'Ø#Ó#ó,ô&CrVrZcó
—|j}t|t«r |j}t|t«r't|j
t «r
|j
}n]t|t «r|}nJd|›d|jj›d�}t||j|j«|jS|jjjt«}|€ |jS|jj!t"«s |jS|jdi«jd«}|dur5t%|jj&|j|j«|jS)z1Raise an error if from_attributes is not enabled.z
ctx.type: z
(of type Ú)r»Úfrom_attributesT)rŠrer?Úitemr:Úret_typer;rbr£Úerror_unexpected_behaviorr�ÚcontextÚdefault_return_typeÚmetadatar³Ú METADATA_KEYrgrhÚerror_from_attributesr”)r{Úctx_typeÚ
model_typeÚdetailÚpydantic_metadatarÄs rTrtrts0€ð�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Ø × "Ñ "Ð"rVcóÌ—eZdZdZ d
d„Z d d„Z d d
d„Z d dd„Zdd„Ze dd„«Z
dd„Z y )ÚPydanticModelFieldz5Based on mypy.plugins.dataclasses.DataclassAttribute.c ó�—||_||_||_||_||_||_||_||_| |_|
|_ yrY)
r”ÚaliasÚ is_frozenÚhas_dynamic_aliasÚ has_defaultÚstrictr•ÚcolumnrŠr‡) r`r”rÔrÕrÖr×rØr•rÙrŠr‡s rTr_zPydanticModelField.__init__"sL€ðˆŒ ؈Œ
Ø"ˆŒØ!2ˆÔØ&ˆÔ؈Œ ؈Œ ؈Œ ؈Œ ؈� rVc ó4—|j||||«} |j€|n |j}
|s|
r|j||d¬«} nttj
«} t
| | d|r t¬«S|s |jr t¬«St¬«S)zABased on mypy.plugins.dataclasses.DataclassAttribute.to_argument.NT)Úinclude_root_type)ÚvariableÚtype_annotationÚ initializerÚkind) Úto_varrØr r9r>Úexplicitrr
r×r r ) r`Ú current_infoÚtypedÚ model_strictÚforce_optionalÚ use_aliasr�Úforce_typevars_invariantÚis_root_model_rootrÜrØrÝs rTÚ to_argumentzPydanticModelField.to_argument:s¢€ð—;‘;˜|¨S°)Ð=UÓVˆà!%§¡Ð!4‘¸$¿+¹+ˆÙ ‘FØ"×.Ñ.¨|¸SÐTXÐ.ÓY‰Oä%¤i×&8Ñ&8Ó9ˆO䨨+Øá!ôô 
ð
ñ $2°T×5EÒ5E”-ô

ð
ô LUô

ð
rVcóZ—|rFt|jt«r,|jj«}t|_||_|j��4|j j��tj|jj«5t|«}t|t«sJ‚|r-|jD]}t|t«sŒt|_Œ t|j|j jj |i«}|rdt|t«rTt#|j«r?|jdj} | € |cddd«St%| |«}
t'||
g«}|cddd«S|jS#1swY|jSxYw)zABased on mypy.plugins.dataclasses.DataclassAttribute.expand_type.NÚroot)rerŠr@Ú
copy_modifiedrÚvariancer‡Ú self_typer6Ústrict_optional_setraÚstrict_optionalrCr;r‘r ÚidÚ
is_root_modelr
rA) r`râr�rçrÛÚ
modified_typeÚfilled_with_typevarsÚargÚ
expanded_typeÚ root_typeÚexpanded_root_types rTr zPydanticModelField.expand_typeWsc€ñ $ô
˜$Ÿ)™)¤[Ô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˜Ü% c¬;Õ7Ü+4˜C�Lð 9ô!,¨D¯I©I¸¿ ¹ ×8KÑ8K×8NÑ8NÐPdÐ7eÓ f�
Ù$¬°MÄ8Ô)LÔQ^Ð_l×_qÑ_qÔQrð!.× 2Ñ 2°6Ñ :× ?Ñ ?�IØ Ð(à,÷!HÑGô"*AÀÈMÓ)ZÐ&Ü$-¨}Ð>PÐ.QÓ$R�MØ$÷'HÑGð(�y‰yÐ÷)Hð(�y‰yÐúsÂ?FÃBFÅ&FÆF*cóŠ—|r|j�
|j}n |j}t||j|||««S)z<Based on mypy.plugins.dataclasses.DataclassAttribute.to_var.)rÔr”r*r )r`râr�rærçr”s rTràzPydanticModelField.to_var„s?€ñ ˜Ÿ™Ð/Ø—:‘:‰Dà—9‘9ˆDä�4˜×)Ñ)¨,¸Ð=UÓVÓWÐWrVc
ó—|jsJ‚|j|j|j|j|j
|j |j|j|jj«dœ S)ú?Based on mypy.plugins.dataclasses.DataclassAttribute.serialize.) r”rÔrÕrÖr×rØr•rÙrŠ)
rŠr”rÔrÕrÖr×rØr•rÙÚ serialize©r`s rTrüzPydanticModelField.serialize“sd€à�yŠyЈyà—I‘IØ—Z‘ZØŸ™Ø!%×!7Ñ!7Ø×+Ñ+Ø—k‘kØ—I‘IØ—k‘kØ—I‘I×'Ñ'Ó)ñ

ð
rVcón—|j«}t|jd«|«}|d||dœ|¤ŽS)úABased on mypy.plugins.dataclasses.DataclassAttribute.deserialize.rŠ)rŠr‡rÁ)Úcopyr3Úpop)rr‡Údatar�Útyps rTÚ deserializezPydanticModelField.deserialize¢s9€ð�y‰y‹{ˆÜ(¨¯©°&Ó)9¸3Ó?ˆÙÐ/˜ $Ñ/¨$Ñ/Ð/rVcóæ—|j�Ytj|jj«5t |j||j «|_ddd«yy#1swYyxYw)zxExpands type vars in the context of a subtype when an attribute is inherited
from a generic super type.
N)rŠr6rïrarðr8r‡)r`Úsub_typer�s rTÚexpand_typevar_from_subtypez.PydanticModelField.expand_typevar_from_subtype©sS€ð �9‰9Ð Ü×*Ñ*¨3¯;©;×+FÑ+FÕGÜ3°D·I±I¸xÈÏÉÓS�” ÷HÐGð !ßGÐGús ¶'A'Á'A0N)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�r2rçr­rèr­rŸr)FF)
râr)r�r2rçr­rÛr­rŸr
©F)
râr)r�r2rær­rçr­rŸr*©rŸr)r‡r)rrr�r2rŸrÒ)rr)r�r2rŸr ) r£r¤r¥r¦r_rér ràrüÚ classmethodrrrÁrVrTrÒrÒsg„Ù?ðàððððð ð
 ð ð ð
ðððððððððóð0
àð
ðð
ðð 
ð
ð 
ð ð

ð-ð
ð#'ð
ð!ð
ð
ó
ðB*/Ø"'ð +àð+ð-ð+ð#'ð +ð
 ð +ð
ó
+ðd*/ð
Xàð
Xð-ð
Xðð
Xð
#'ð
Xð
ó
Xó

ðò0óð0ô TrVrÒcó0—eZdZdZd„Zedd„«Zdd„Zy)ÚPydanticModelClassVarz•Based on mypy.plugins.dataclasses.DataclassAttribute.
ClassVars are ignored by subclasses.
Attributes:
name: the ClassVar name
có—||_yrY©r”)r`r”s rTr_zPydanticModelClassVar.__init__»s €Øˆ� rVcó2—|j«}|di|¤ŽS)rÿrÁ)r)rrs rTrz!PydanticModelClassVar.deserialize¾s€ð�y‰y‹{ˆÙ‰{�T‰{ÐrVcó—d|jiS)rûr”rrýs rTrüzPydanticModelClassVar.serializeÄs€ð
�D—I‘Ið
ð
rVN)rrrŸrr )r£r¤r¥r¦r_r
rrürÁrVrTrr²s%„ñòðòóðô

rVrcóv—eZdZUdZhd£Zded< dd„Zdd„Zdd„Zdd„Z dd „Z
dd
„Z d d „Z d!d „Z
d"d
„Z d#d„Z d#d„Zd$d„Zd%d&d„Zed'd„«Zed(d„«Zed)d„«Zed'd„«Z d% d*d„Zd+d„Zed,d„«Zy)-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_aliaszset[str]Útracked_config_fieldscó<—||_||_||_||_yrY)Ú_clsÚ_reasonÚ_apir[)r`rr€r�r[s rTr_z!PydanticModelTransformer.__init__Ýs!€ðˆŒ ؈Œ ؈Œ à*ˆÕrVcó¬—|jj}t|«}|j«}|j ||«\}}|�|€y|D]}|j
�Œy|j
t«}|j||||«|j||||«|j||j|jdu¬«|j«|D�cic]}|j|j«“Œc}|D�cic]}|j|j«“Œc}|j!«dœ|j"t$<ycc}wcc}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»)rr‡ròÚcollect_configÚcollect_fields_and_class_varsrŠrgÚBASESETTINGS_FULLNAMEÚadd_initializerÚadd_model_construct_methodÚ
set_frozenrrÚadjust_decorator_signaturesr”rüÚget_values_dictrÊrË) r`r‡Úis_a_root_modelr»r!r"ÚfieldÚ is_settingsÚ class_vars rTr‚z"PydanticModelTransformer.transformês>€ð�y‰y�~‰~ˆÜ'¨Ó-ˆØ×$Ñ$Ó&ˆØ!×?Ñ?ÀÈÓXш�
Ø ˆ>˜ZÐ/àÛˆEØ�z‰zÑ!Ùðð—m‘mÔ$9Ó:ˆ Ø ×јV V¨[¸/ÔJØ ×'Ñ'¨°¸ À_ÔUØ �‰˜ § ¡ °&·-±-À4Ð2GˆÔHà ×(Ñ(Ô*ñCIÓIÁ&¸�u—z‘z 5§?¡?Ó#4Ñ4À&ÑIÙR\Ó]ÑR\ÀY˜9Ÿ>™>¨9×+>Ñ+>Ó+@Ñ@ÐR\Ñ]Ø×,Ñ,Ó.ñ'
ˆ�
‰
”lÑ#ð ùò JùÚ]s Ã"E Ä"Ecó&‡—|jjjj«D]ß}t |j
t «sŒ|j
jdŠt ‰t«sŒHt ‰jt«sŒc‰jjtvsŒ€‰jjtk(r(tˆfd„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`.
rc3óŽ•K—|]<\}}‰j|dk(xr!t|t«xr|jdk(–—Œ>y­w)ÚmodeÚafterN)r�rer%Úvalue)Ú.0ÚirõÚ first_decs €rTÚ <genexpr>zGPydanticModelTransformer.adjust_decorator_signatures.<locals>.<genexpr> sOøèø€ð á*C¡  3ð&×/Ñ/°Ñ2°fÑ<ÒrÄÈCÔQXÓAYÒrÐ^a×^gÑ^gÐkrÑ^rÓrÙ*CùsƒAATN)rr‡ÚnamesÚvaluesrerfrÚoriginal_decoratorsrÚcalleer rjÚ(IMPLICIT_CLASSMETHOD_DECORATOR_FULLNAMESÚMODEL_VALIDATOR_FULLNAMEÚanyÚ enumerater‘ÚfuncÚis_class)r`rkr6s @rTr)z4PydanticModelTransformer.adjust_decorator_signaturess¾ø€ð—9‘9—>‘>×'Ñ'×.Ñ.Ö0ˆ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Õ*ñ#1rVc ó—|j}t«}d}d}|jj«D]-\}}|j ||«}|sŒd}|j |«Œ/d}|j jD�]}t|ttf«sŒt|t«�r"|jd} t| t«r| jdk7rŒ[t|jt«rdt!|jj"|jj$«D]+\}
} |
€Œ |j |j |
| d¬««Œ-�nt|jt&«rý|jjD]A\} }
t| t(«sŒ|j |j | j*|
««ŒCn¢t|t«r’|jdk7r�Œo|j jD]h}t|t«sŒ|jd} t| t«sŒ4|j |j | j|j««Œj|r|j,j/d|«nd}�Œ|s|rR|rP|j0rD|j2s8|j4s,|j6j8rt;|j,|«|j<j>d dD]�}t@|jBvrŒ|j,jEtG|jH««|jBt@d
j«D]\}}|jK||«ŒŒƒ|S) zhCollects the values of the config attributes that are used by the plugin, accounting for parent classes.FTNrÚ model_config)Ú lax_extraÚConfigzYSpecifying config in two places is ambiguous, use either Config attribute or class kwargsér»)&rÚModelConfigDataÚkeywordsÚitemsÚget_config_updateÚupdateÚdefsÚbodyrerrÚlvaluesr r”ÚrvaluerrŽr�r‘rr%r3rÚfailÚhas_alias_generatorrrr[r¬Úerror_required_dynamic_aliasesr‡ÚmrorËrÊÚadd_plugin_dependencyr5rjÚ
setdefault)r`rr»Úhas_config_kwargsÚhas_config_from_namespacer”ÚexprÚ config_dataÚstmtÚlhsr™rõÚkey_exprÚ
value_exprÚsubstmtr‡r3s rTr#z'PydanticModelTransformer.collect_config)sÔ€à�i‰iˆÜ Ó"ˆà!ÐØ$)Ð!ðŸ,™,×,Ñ,Ö.‰JˆD�$Ø×0Ñ0°°tÓ<ˆKÚØ$(Ð!Ø—
‘
˜kÕ*ð /ð"&ˆØ—H‘H—M•MˆDܘd¤^´XÐ$>Ô?Øä˜$¤Õ/Ø—l‘l 1‘o�Ü! #¤xÔ0°C·H±HÀÒ4NØä˜dŸk™k¬8Ô4Ü),¨T¯[©[×-BÑ-BÀDÇKÁK×DTÑDTÖ)U™
˜ #Ø#Ð+Ø$ØŸ
™
 d×&<Ñ&<¸XÀsÐVZÐ&<Ó&[Õ\ò*Vô  § ¡ ¬XÔ6Ø04· ± ×0AÔ0AÑ,˜ *Ü)¨(´GÔ<Ø$ØŸ
™
 d×&<Ñ&<¸X¿^¹^ÈZÓ&XÕYñ1Bô
˜D¤(Ô+Ø—9‘9 Ò(ÙØ#Ÿy™yŸ~œ~�GÜ% g¬~Ô>Ø Ø!Ÿ/™/¨!Ñ,�CÜ% c¬8Ô4Ø Ø—M‘M $×"8Ñ"8¸¿¹À7Ç>Á>Ó"RÕSð
.ñ!Ø— ‘ —‘Ø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Ø×!Ñ! $¨Õ.ñ Mð
%ðˆ
rVcóÜ—|j}i}i}t|jjdd«D�]|}t|j
vrŒ|j jt|j««|j
tdj«D]Í\}}tj|||j «} | j|j|j «| ||<|jjj|«}
|
sŒz|
j sŒ‡t#|
j t$t&f«rŒ¨|j j)d|
j «ŒÏ|j
tdj«D]\}}t*j|«||<Œ�Œt-«} t-«} |j/|j0«D]×}
|j3|
||«}|€Œ|
j4d}t#|t6«sJ‚t#|t«rS|r&|j8dk7rt;|j |
«Œr| j=|j8«|||j8<Œ�t#|t*«sŒ®| j=|j8«|||j8<ŒÙt?|jA««t?|jA««fS)zACollects the fields for the model, accounting for parent classes.rFéÿÿÿÿr!z7BaseModel field may only be overridden by another fieldr"rrë)!rÚreversedr‡rSrËrÊrrTr5rjrIrÒrrr8r³rfrer*r"rPrÚsetÚ%_get_assignment_statements_from_blockrLÚ$collect_field_or_class_var_from_stmtrNr r”Ú error_extra_fields_on_root_modelÚaddÚlistr9)r`rCròrÚ found_fieldsÚfound_class_varsr‡r”rr,Úsym_nodeÚcurrent_field_namesÚcurrent_class_vars_namesrZÚ maybe_fieldr[s rTr$z6PydanticModelTransformer.collect_fields_and_class_varsusZ€ð�i‰iˆð79ˆ Ø=?ÐܘSŸX™XŸ\™\¨!¨BÐ/×0ˆDô 4§=¡=Ñ0Øð
�I‰I× +Ñ +Ô,AÀ$Ç-Á-Ó,PÔ Qà"Ÿm™m¬LÑ9¸(ÑC×IÑIÖK‘
��dÜ*×6Ñ6°t¸TÀ4Ç9Á9ÓM�ð
×1Ñ1°#·(±(¸D¿I¹IÔFØ%*� ˜TÑ"àŸ8™8Ÿ>™>×-Ñ-¨dÓ3�Ú §
£
´jÀÇÁÔQTÔVeÐPfÕ6gØ—I‘I—N‘NØQØ Ÿ
™
õðLð #Ÿm™m¬LÑ9¸,ÑG×MÑMÖO‘
��dÜ)>×)JÑ)JÈ4Ó)PÐ  Ò&òPð51ô<),«ÐÜ-0«UÐ Ø×>Ñ>¸s¿x¹xÖHˆ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Ð  §¡Ò*ðIô"�L×'Ñ'Ó)Ó*¬DÐ1A×1HÑ1HÓ1JÓ,KÐKÐKrVc#óK—|jD](}|jrŒ|j|«Ed{–—†Œ*|j�;|jjs$|j|j«Ed{–—†yyy7ŒN7Œ ­wrY)rMÚis_unreachablercÚ else_body)r`rZrMs rTÚ,_get_assignment_statements_from_if_statementzEPydanticModelTransformer._get_assignment_statements_from_if_statement¹stèø€Ø—I”IˆDØ×&Ó&Ø×EÑEÀdÓK×KÑKðð �>‰>Ð %¨d¯n©n×.KÒ.KØ×AÑAÀ$Ç.Á.ÓQ× QÑ Qð/LÐ %ðLøà Qús'‚BŸB³B´ABÁ:BÁ;BÂBc#ó°K—|jD]A}t|t«r|–—Œt|t«sŒ)|j |«Ed{–—†ŒCy7Œ­wrY)rMrerrrq)r`ÚblockrZs rTrcz>PydanticModelTransformer._get_assignment_statements_from_blockÀsGèø€Ø—J”JˆDܘ$¤Ô/Ø“
ܘD¤&Õ)Ø×LÑLÈTÓR×RÑRñ ðSús‚5A¸AÁ AÁ
Ac ó4—|j}|jd}t|t«r.t j
|j «r|j dk(ry|jsÃt|jt«rƒt|jjt«r_t|jjjt«r1|jjjjtvry|j |vryt|j|«y|jd}t|t«syt j
|j «r|j dk(ry|jj j#|j «}|€y|j$}t|t&«ryt|t(«r|jj+d|«yt|t,«sy|j.rt1|j «St3|j4«}t|t6«r5|j4jdk(r|jj+d|«|j9|«} |j;|«}
|j4€ƒ|j<rw|j>rk|jjA|jd¬«} | r| |_n:|jj+d |«tCtDjF«|_|j<r| rt1|j «S|jI|«\} }
|
rD|jJs8|jLs,|jNjPrtS|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`.
rrCNzFType aliases inside BaseModel definitions are not supported at runtimezdataclasses.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‡)/rrNrer rFÚis_valid_field_namer”Ú
new_syntaxrOrr;rjÚDECORATOR_FULLNAMESÚerror_untyped_fieldsrr‡r8r³rfr"r(rPr*Ú is_classvarrrBrŠr;Úget_has_defaultÚ
get_strictruÚ is_inferredÚanalyze_simple_literal_typer9r>Ú
from_errorÚget_alias_inforrr[r¬rRÚis_field_frozenÚ_infer_dataclass_attr_init_typerÒr•rÙ)r`rZrCr"rr[rkrfÚ node_typer×rØrrÔrÖrÕÚ init_types rTrdz=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ˆ Ü!Ø—‘Ø/Ø#ØØØØ—‘Ø—;‘;ØØ—‘ô 
ð
rVcó8—|j}|jr|St|j«}t|t«s|S|jj d«}|�r:t|j t«rì|jjd«}|sJ‚|jr+tt|j|j|««}nttj«St|t«r7|jtttgk(rt!|j"d|«S|j$j'd|jj(›d�|«|S|j$j'd|jj(›d�|«|S)zvInfer __init__ argument type for an attribute.
In particular, possibly use the signature of __set__.
Ú__set__rPz(Unsupported signature for "__set__" in "Ú"zUnsupported "__set__" in ")rŠÚimplicitrBrer;r³rfrÚget_containing_type_infor8r9r>Ú unannotatedr:Ú arg_kindsrr
Ú arg_typesrrPr”) r`rkr”rÈÚdefaultÚtÚsetterÚ
super_infoÚ setter_types rTr‚z8PydanticModelTransformer._infer_dataclass_attr_init_typePsG€ð
—(‘(ˆØ �<Š<؈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àˆrVc
óž—d|jjjvr.|jjjdjsy|jj
}t
|j«}|jxs |j xr|jdu}t
|jxr
|j «}|j|||||||d¬«} |�rf|jjt«j }
t#|
t$«sJ‚d|
jv�r|
jdj } t#| t&«sJ‚| �ï| j(�ã| j(} t#| t*«sJ‚t-| j.«D]­\}
}|�"|j1d«s|j1d«sŒ+|jj3| j4|
«}|�,|dvr(|j7t9t:j<««}t?||«}| jAtC||dtD««Œ¯|jG||«sCt?d «}| jAtC|tIt:jJ«dtL««tO|j|jd| tQ«¬
«y) z§Adds a fields-aware `__init__` method to the class.
The added `__init__` will be annotated with types vs. all `Any` depending on the plugin settings.
r_NFT)rãräÚrequires_dynamic_aliasesrær-ròrçÚ__Ú_)Ú_cli_settings_sourceÚ_build_sourcesÚkwargs)r‘Ú return_type))rr‡r8Úplugin_generatedr[r«r­rØrrrrQÚget_field_argumentsrrdr%rfrer)rrŠr:r?r�Ú
startswithÚ anal_typerŒÚacceptÚChangeExplicitTypeOfAnyr>Úfrom_omitted_genericsr*Úappendrr
Úshould_init_forbid_extrar9rárÚ
add_methodr<)r`r!r»r-ròrãrärær“r‘Úbase_settings_nodeÚbase_settings_init_nodeÚ func_typeÚarg_idxr™Úanalyzed_variable_typerÜÚvars rTr&z(PydanticModelTransformer.add_initializervsz€ð ˜Ÿ™Ÿ™×-Ñ-Ñ -°d·i±i·n±n×6JÑ6JÈ:Ñ6V×6gÒ6gØ à×"Ñ"×-Ñ-ˆÜ˜FŸM™MÓ*ˆ Ø×0Ñ0ÒK°F×4KÑ4KÐLÒvÐQW×QiÑQiÐqvÐQvˆ Ü#'¨×(BÑ(BÒ(bÈ6×KbÑKbÐGbÓ#cÐ Ø×'Ñ'Ø ØØ%Ø%=ØØ#Ø'Ø%)ð(ó 
ˆò Ø!%§¡×!AÑ!AÔBWÓ!X×!]Ñ!]Ð ÜÐ0´(Ô;Ð ;Ð;ØÐ/×5Ñ5Ò5Ø*<×*BÑ*BÀ:Ñ*N×*SÑ*SÐ'Ü!Ð"9¼7ÔCÐCÐCØ*Ð6Ð;R×;WÑ;WÐ;cØ 7× <Ñ <�IÜ% i´Ô>Ð>Ð>Ü-6°y×7JÑ7JÖ-KÑ)˜ Ø#Ð+¨x×/BÑ/BÀ4Ô/HÐPX×PcÑPcÐdgÔPhØ$Ø15·±×1DÑ1DÀY×EXÑEXÐY`ÑEaÓ1bÐ.Ø1Ð=À(ðOñCð6L×5RÑ5RÜ 7¼ ×8WÑ8WÓ Xó6Ð2ô$' xÐ1GÓ#H˜ØŸ ™ ¤H¨XÐ7MÈtÔU\Ó$]Õ^ð.Lð"×,Ñ,¨V°VÔ<Ü�h“-ˆCØ �K‰Kœ ¤g¬i×.@Ñ.@Ó&AÀ4ÌÓSÔ Tä�4—9‘9˜dŸi™i¨¸$ÌHËJÖWrVc
ó—|jjt›d�|jjt›d�«g«}t|t «g«}t t
d|«|dt«}tj|jjj«5|j|dt|j«dd||¬«}ddd«|j||«sCt
d«} j!t | t#t$j&«dt(««|r|gzn|gz}t+|j|j,d |t/|j,j0«d¬
«y#1swYŒ¯xYw) 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_NAMErAr<rr*r
r6rïrarðr›r­rØr¢r¡r9r>rárr£rrCr‡)
r`r!r»r-ròÚset_strÚoptional_set_strÚfields_set_argumentr‘r©s
rTr'z3PydanticModelTransformer.add_model_construct_method¯sT€ð—)‘)×&Ñ&¬-¨¸Ð'=ÀÇ Á ×@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÷Jð×,Ñ,¨V°VÔ<Ü�h“-ˆCØ �K‰Kœ ¤g¬i×.@Ñ.@Ó&AÀ4ÌÓSÔ Tá/<ˆtÐ*Ð+Ò+ÐCVÐBWÐZ^ÑB^ˆäØ �I‰IØ �I‰IØ ØÜ% d§i¡i§n¡nÓ5Øö

÷!JÐ
Iús Â),FÆF cóN—|jj}|D�] }|jj|j«}|�u|j
}t
|t«r|xs |j|_ Œ]t
|t«sŒn|jjrŒ…|jj«Œ |j||d¬«}||_||_ |jdz|jz|_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æÚ.)rr‡r8r³r”rfrer*rÕÚ is_propertyr"rÚfinal_iterationÚdeferràrjÚ _fullnamer&r)r`r!r�rr‡r,rjr©s rTr(z#PydanticModelTransformer.set_frozen×sÔ€ð
�y‰y�~‰~ˆÜˆ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Ó$ñ#rVcóþ—||jvry|dk(rft|t«r|jdk(}n:t|t«r|j
dk(}n|st
||j|«yt|¬«S|dk(r/d}t|t«r|jdk(rd}t|¬ «St|t«r(|jd
vrtd i||jd k(i¤ŽSt
||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_extrarTú
builtins.NoneF)rQ)ú