Ë
    S>{iÌ—  ã                   ój  — d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZ d dl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- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 d dl8m9Z9 d d	l:m;Z; d d
l<m=Z= d dl>m?Z?m@Z@mAZAmBZBmCZCmDZDmZmEZEmFZFmGZGmHZHmIZImJZJ d dlKmLZL d dlMmNZN d dlOmPZQ d dlRmSZS 	 d dl>mTZT dZVdZWeXdd ZYeY› d�ZZeY› d�Z[eY› d�Z\eY› d�Z]eY› d�Z^de_de
e`df   fd„Za eaeQ«      Zbebdk\  rdnd Zcd!ZPde_dd"fd#„Zd G d$„ d%e5«      Ze G d&„ d'«      Zfd(e4defd)„Zg G d*„ d+«      Zh G d,„ d-«      Zi G d.„ d/«      Zj ed0d1d2«      Zk ed3d4d2«      Zl ed5d6d2«      Zm ed7d8d2«      Zn ed9d:d2«      Zo ed9d;d2«      Zpd<e_d=e1d>eddfd?„Zqd@e_d=e7d>eddfdA„Zrd=e7d>eddfdB„ZsdCe_d=ee1e7f   d>eddfdD„Ztd=e7d>eddfdE„Zud=e1d>eddfdF„Zv	 	 	 	 dSd(e2d@e_dGee   dHedIee   dJeeT   dKewdLewddfdM„ZxdNeee(f   de_fdO„ZydNeee(f   de_fdP„ZzdQe_deee_ef      fdR„Z{y# eU$ r
 d dl>mHZT Y �Œew xY w)Té    N)ÚConfigParser)	ÚAnyÚCallableÚDictÚListÚOptionalÚSetÚTupleÚTypeÚUnion)Ú	ErrorCode)Ú	ARG_NAMEDÚARG_NAMED_OPTÚARG_OPTÚARG_POSÚ	ARG_STAR2ÚMDEFÚArgumentÚAssignmentStmtÚBlockÚCallExprÚClassDefÚContextÚ	DecoratorÚEllipsisExprÚFuncBaseÚFuncDefÚJsonDictÚ
MemberExprÚNameExprÚPassStmtÚPlaceholderNodeÚRefExprÚStrExprÚ
SymbolNodeÚSymbolTableNodeÚTempNodeÚTypeInfoÚTypeVarExprÚVar)ÚOptions)ÚCheckerPluginInterfaceÚClassDefContextÚFunctionContextÚMethodContextÚPluginÚReportConfigContextÚSemanticAnalyzerPluginInterface)Údataclasses)Úset_callable_name)Úmake_wildcard_trigger)ÚAnyTypeÚCallableTypeÚInstanceÚNoneTypeÚ
OverloadedÚ
ProperTyper   Ú	TypeOfAnyÚTypeTypeÚ	TypeVarIdÚTypeVarTypeÚ	UnionTypeÚget_proper_type)Úfill_typevars)Úget_unique_redefinition_name)Ú__version__)Úis_valid_field)Ú
TypeVarDef)r?   úpydantic-mypyzpydantic-mypy-metadataéûÿÿÿz.main.BaseModelz.env_settings.BaseSettingsz.main.ModelMetaclassz.fields.Fieldz.dataclasses.dataclassÚversionÚreturn.c                 óv   — t        t        t        | j                  d«      d   j	                  d«      «      «      S )Nú+r   ú.)ÚtupleÚmapÚintÚ	partitionÚsplit©rI   s    úN/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pydantic/v1/mypy.pyÚparse_mypy_versionrU   W   s/   € Ü””S˜'×+Ñ+¨CÓ0°Ñ3×9Ñ9¸#Ó>Ó?Ó@Ð@ó    )r   i¢  ÚbuiltinsÚ__builtins__é   zTypingType[Plugin]c                 ó   — t         S )z¼
    `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).
    )ÚPydanticPluginrS   s    rT   Úpluginr\   b   s
   € ô ÐrV   c                   óø   ‡ — e Zd Zdeddfˆ fd„Zdeddfd„Zdedeee	gdf      fd„Z
dedd	fd
„Zdedeeegef      fd„Zdedeee	gdf      fd„Zdedeeef   fd„Zde	ddfd„Zde	ddfd„Zdeddfd„Zˆ xZS )r[   ÚoptionsrJ   Nc                 ó‚   •— t        |«      | _        | j                  j                  «       | _        t        ‰| �  |«       y ©N)ÚPydanticPluginConfigÚplugin_configÚto_dataÚ_plugin_dataÚsuperÚ__init__)Úselfr^   Ú	__class__s     €rT   rf   zPydanticPlugin.__init__m   s4   ø€ Ü1°'Ó:ˆÔØ ×.Ñ.×6Ñ6Ó8ˆÔÜ‰Ñ˜Õ!rV   Úfullnamez+Optional[Callable[[ClassDefContext], None]]c                 óÂ   — | j                  |«      }|rLt        |j                  t        «      r2t	        d„ |j                  j
                  D «       «      r| j                  S y )Nc              3   ó@   K  — | ]  }t        |«      t        k(  –— Œ y ­wr`   )Úget_fullnameÚBASEMODEL_FULLNAME©Ú.0Úbases     rT   ú	<genexpr>z5PydanticPlugin.get_base_class_hook.<locals>.<genexpr>v   s   è ø€ ÒUÀ”< Ó%Ô);Õ;ÑUùó   ‚)Úlookup_fully_qualifiedÚ
isinstanceÚnoder(   ÚanyÚmroÚ$_pydantic_model_class_maker_callback©rg   ri   Úsyms      rT   Úget_base_class_hookz"PydanticPlugin.get_base_class_hookr   sG   € Ø×)Ñ)¨(Ó3ˆÙ”:˜cŸh™h¬Ô1äÑUÈÏÉÏÉÔUÔUØ×@Ñ@Ð@ØrV   c                 ó.   — |t         k(  r| j                  S y r`   )ÚMODEL_METACLASS_FULLNAMEÚ)_pydantic_model_metaclass_marker_callback©rg   ri   s     rT   Úget_metaclass_hookz!PydanticPlugin.get_metaclass_hookz   s   € ØÔ/Ò/Ø×AÑAÐAØrV   z+Optional[Callable[[FunctionContext], Type]]c                 óh   — | j                  |«      }|r|j                  t        k(  r| j                  S y r`   )rs   ri   ÚFIELD_FULLNAMEÚ_pydantic_field_callbackry   s      rT   Úget_function_hookz PydanticPlugin.get_function_hook   s/   € Ø×)Ñ)¨(Ó3ˆÙ�3—<‘<¤>Ò1Ø×0Ñ0Ð0ØrV   c                 ó2   — |j                  d«      rt        S y )Nz	.from_orm)ÚendswithÚfrom_orm_callbackr   s     rT   Úget_method_hookzPydanticPlugin.get_method_hook…   s   € Ø×Ñ˜[Ô)Ü$Ð$ØrV   c                 óH   — |t         k(  rt        dk  rt        j                  S y)z€Mark pydantic.dataclasses as dataclass.

        Mypy version 1.1.1 added support for `@dataclass_transform` decorator.
        )é   rŠ   N)ÚDATACLASS_FULLNAMEÚMYPY_VERSION_TUPLEr3   Údataclass_class_maker_callbackr   s     rT   Úget_class_decorator_hookz'PydanticPlugin.get_class_decorator_hookŠ   s$   € ð
 Ô)Ò)Ô.@À6Ò.IÜ×=Ñ=Ð=ØrV   Úctxc                 ó   — | j                   S )zjReturn all plugin config data.

        Used by mypy to determine if cache needs to be discarded.
        )rd   )rg   r�   s     rT   Úreport_config_dataz!PydanticPlugin.report_config_data“   s   € ð
 × Ñ Ð rV   c                 óP   — t        || j                  «      }|j                  «        y r`   )ÚPydanticModelTransformerrb   Ú	transform)rg   r�   Útransformers      rT   rx   z3PydanticPlugin._pydantic_model_class_maker_callbackš   s    € Ü.¨s°D×4FÑ4FÓGˆØ×ÑÕrV   c                 óÖ   — | j                   j                  ry|j                  j                  j                  }|sJ d«       ‚t        |j                  dd«      rd|j                  _        yy)zÓReset dataclass_transform_spec attribute of ModelMetaclass.

        Let the plugin handle it. This behavior can be disabled
        if 'debug_dataclass_transform' is set to True', for testing purposes.
        Nz-callback not passed from 'get_metaclass_hook'Údataclass_transform_spec)rb   Údebug_dataclass_transformÚclsÚinfoÚdeclared_metaclassÚgetattrÚtyper—   )rg   r�   Úinfo_metaclasss      rT   r~   z8PydanticPlugin._pydantic_model_metaclass_marker_callbackž   s^   € ð ×Ñ×7Ò7ØØŸ™Ÿ™×8Ñ8ˆÙÐNÐNÓNˆ~Ü�>×&Ñ&Ð(BÀDÔIØ;?ˆN×ÑÕ8ð JrV   r   c                 ó  — |j                   }|j                  d   dk(  sJ d«       ‚|j                  d   dk(  sJ d«       ‚|j                  d   }|j                  d   }|r$|r"t        |j                  |j
                  «       |S |r+|j                  d   d   }|d   }t        |t        «      s|S |S |rÖ|j                  d   d   }t        |t        «      r,t        dkD  r|j                  d   }n|j                  «       d   }t        |t        «      rxt        |j                  «      }t        |t        «      rQ|j                  rEt!        d„ |j                  D «       «      r)|j#                  |gt%        |j                  «      z  ¬	«      }|S |S )
ax  
        Extract the type of the `default` argument from the Field function, and use it as the return type.

        In particular:
        * Check whether the default and default_factory argument is specified.
        * Output an error if both are specified.
        * Retrieve the type of the argument which is specified, and use it as return type for the function.
        r   Údefaultz0"default" is no longer first argument in Field()rŠ   Údefault_factoryz9"default_factory" is no longer second argument in Field())r   iŽ  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr`   )rt   r?   )ro   Úargs     rT   rq   z:PydanticPlugin._pydantic_field_callback.<locals>.<genexpr>Ø   s   è ø€ ÒR¸SœJ s¬K×8ÑRùs   ‚)Úargs)Údefault_return_typeÚcallee_arg_namesr¤   Ú+error_default_and_default_factory_specifiedÚapiÚcontextÚ	arg_typesrt   r   r:   rŒ   Úitemsr7   rA   Úret_typer8   ÚallÚcopy_modifiedÚlen)	rg   r�   Údefault_any_typeÚdefault_argsÚdefault_factory_argsÚdefault_typeÚdefault_argÚdefault_factory_typer¬   s	            rT   rƒ   z'PydanticPlugin._pydantic_field_callback«   sŒ  € ð ×2Ñ2Ðà×#Ñ# AÑ&¨)Ò3ÐgÐ5gÓgÐ3Ø×#Ñ# AÑ&Ð*;Ò;ÐxÐ=xÓxÐ;Ø—x‘x ‘{ˆØ"Ÿx™x¨™{ÐáÑ0Ü7¸¿¹ÀÇÁÔMØ#Ð#áØŸ=™=¨Ñ+¨AÑ.ˆLØ& q™/ˆKô ˜k¬<Ô8Ø#Ð#ð2  Ðñ/ "Ø#&§=¡=°Ñ#3°AÑ#6Ð ô Ð.´
Ô;Ü%¨Ò0Ø+?×+EÑ+EÀaÑ+HÑ(ð ,@×+EÑ+EÓ+GÈÑ+JÐ(äÐ.´Ô=Ü*Ð+?×+HÑ+HÓI�ä˜x¬Ô2Ø ŸšÜÑRÀHÇMÁMÔRÔRð  (×5Ñ5Ð<LÐ;MÔPSÐT\×TaÑTaÓPbÑ;bÐ5Óc�HØ�àÐrV   )Ú__name__Ú
__module__Ú__qualname__r+   rf   Ústrr{   r   r   r-   r€   r„   r/   r   rˆ   rŽ   r1   r   r   r‘   rx   r~   r.   rƒ   Ú__classcell__)rh   s   @rT   r[   r[   l   s  ø„ ð" ð "¨Dõ "ð
¨Cð Ð4aó ð¨3ð °8¸HÀoÐEVÐX\ÐE\Ñ<]Ñ3^ó ð
¨#ð Ð2_ó ð¨ð °¸À=À/ÐSWÐBWÑ9XÑ0Yó ð
°ð ¸À(ÈOÐK\Ð^bÐKbÑBcÑ9dó ð!Ð&9ð !¸dÀ3ÈÀ8¹nó !ð ¸ð  ÈDó  ð@¸_ð @ÐQUó @ð3 ¨Oð 3 À÷ 3 rV   r[   c                   ój   — e Zd ZU dZeed<   eed<   eed<   eed<   eed<   dedd	fd
„Zdee	e
f   fd„Zy	)ra   )Úinit_forbid_extraÚ
init_typedÚwarn_required_dynamic_aliasesÚwarn_untyped_fieldsr˜   r¼   r½   r¾   r¿   r˜   r^   rJ   Nc                 óä  — |j                   €y t        |j                   «      }|�q|j                  di «      j                  di «      }| j                  D ]?  }|j                  |d«      }t	        |t
        «      st        d|› �«      ‚t        | ||«       ŒA y t        «       }|j                  |j                   «       | j                  D ]'  }|j                  t        |d¬«      }t        | ||«       Œ) y )NÚtoolrG   Fz/Configuration value must be a boolean for key: )Úfallback)Úconfig_fileÚ
parse_tomlÚgetÚ	__slots__rt   ÚboolÚ
ValueErrorÚsetattrr   ÚreadÚ
getbooleanÚCONFIGFILE_KEY)rg   r^   Útoml_configÚconfigÚkeyÚsettingrb   s          rT   rf   zPydanticPluginConfig.__init__ï   sæ   € Ø×ÑÐ&Øä  ×!4Ñ!4Ó5ˆØÐ"Ø —_‘_ V¨RÓ0×4Ñ4°_ÀbÓIˆFØ—~‘~ò ,�Ø Ÿ*™* S¨%Ó0�Ü! '¬4Ô0Ü$Ð'VÐWZÐV[Ð%\Ó]Ð]Ü˜˜c 7Õ+ñ	,ô )›NˆMØ×Ñ˜w×2Ñ2Ô3Ø—~‘~ò ,�Ø'×2Ñ2´>À3ÐQVÐ2ÓW�Ü˜˜c 7Õ+ñ,rV   c                 óV   — | j                   D �ci c]  }|t        | |«      “Œ c}S c c}w r`   )rÆ   rœ   )rg   rÏ   s     rT   rc   zPydanticPluginConfig.to_data  s&   € Ø37·>±>ÖB¨C�”W˜T 3Ó'Ñ'ÒBÐBùÒBs   �&)r¶   r·   r¸   rÆ   rÇ   Ú__annotations__r+   rf   r   r¹   r   rc   © rV   rT   ra   ra   á   sR   … ð€Ið ÓØÓØ#'Ó'ØÓØ#Ó#ð, ð ,¨Dó ,ð&C˜˜c 3˜h™ô CrV   ra   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                  di «      j                  d«      }|dur4t!        t#        |j                   «      | j                  | j                  «       | j                  S )z3
    Raise an error if orm_mode is not enabled
    z
ctx.type: ú
 (of type ú)rÎ   Úorm_modeT)r�   rt   r=   Úitemr7   r¬   r8   rh   r¶   Úerror_unexpected_behaviorr¨   r©   r¥   ÚmetadatarÅ   ÚMETADATA_KEYÚerror_from_ormÚget_name)r�   Úctx_typeÚ
model_typeÚdetailÚpydantic_metadatar×   s         rT   r‡   r‡     s  € ð
 �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ÐØÐ Ø×&Ñ&Ð&Ø ×$Ñ$ X¨rÓ2×6Ñ6°zÓB€HØ�tÑÜ”x 
§¡Ó0°#·'±'¸3¿;¹;ÔGØ×"Ñ"Ð"rV   c                   óž  — e Zd ZU h d£Zee   ed<   dededdfd„Z	d&d„Z
d&d	„Zd'd„Zdd
ded   fd„Zded   dd
deddfd„Zded   ddfd„Zded   deddfd„Zdeded
   fd„Zededededefd„«       Zedee   defd„«       Zededeee   ef   fd„«       Zded   ded ed!edee   f
d"„Zded   dd
defd#„Z eded   d$edefd%„«       Z!y)(r“   >   ÚextraÚfrozenr×   Úallow_mutationÚalias_generatorÚallow_population_by_field_nameÚtracked_config_fieldsr�   rb   rJ   Nc                 ó    — || _         || _        y r`   )Ú_ctxrb   )rg   r�   rb   s      rT   rf   z!PydanticModelTransformer.__init__)  s   € ØˆŒ	Ø*ˆÕrV   c                 ó.  — | j                   }|j                  j                  }| j                  «        | j	                  «       }| j                  |«      }t        d„ |j                  dd D «       «      }| j                  |||«       | j                  |«       | j                  ||j                  du xs |j                  du ¬«       |D �ci c]  }|j                  |j                  «       “Œ c}|j                  «       dœ|j                   t"        <   y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 allow_mutation = False or frozen = True
        * stores the fields, config, and if the class is settings in the mypy metadata for access by subclasses
        c              3   ó@   K  — | ]  }t        |«      t        k(  –— Œ y ­wr`   )rl   ÚBASESETTINGS_FULLNAMErn   s     rT   rq   z5PydanticModelTransformer.transform.<locals>.<genexpr>=  s   è ø€ Ò`È$œ, tÓ,Ô0EÕEÑ`ùrr   NéÿÿÿÿFT)rä   )ÚfieldsrÎ   )rê   r™   rš   Úadjust_validator_signaturesÚcollect_configÚcollect_fieldsrv   rw   Úadd_initializerÚadd_construct_methodÚ
set_frozenrå   rä   ÚnameÚ	serializeÚset_values_dictrÚ   rÛ   )rg   r�   rš   rÎ   rï   Úis_settingsÚfields          rT   r”   z"PydanticModelTransformer.transform-  së   € ð �i‰iˆØ�w‰w�|‰|ˆà×(Ñ(Ô*Ø×$Ñ$Ó&ˆØ×$Ñ$ VÓ,ˆÜÑ`ÐRV×RZÑRZÐ[^Ð\^ÐR_Ô`Ó`ˆØ×Ñ˜V V¨[Ô9Ø×!Ñ! &Ô)Ø�‰˜ v×'<Ñ'<ÀÐ'EÒ'^ÈÏÉÐZ^ÐI^ˆÔ_àBHÖI¸�u—z‘z 5§?¡?Ó#4Ñ4ÒIØ×,Ñ,Ó.ñ'
ˆ�‰”lÒ#ùÚIs   Ã
"Dc                 ó¼  — | j                   j                  j                  j                  j	                  «       D ]¡  \  }}t        |j                  t        «      sŒ!|j                  j                  d   }t        |t        «      sŒKt        |j                  t        «      sŒf|j                  j                  t        › d�k(  sŒ‡d|j                  j                  _        Œ£ y)a[  When we decorate a function `f` with `pydantic.validator(...), 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()` call as a classmethod.
        r   z.class_validators.validatorTN)rê   r™   rš   Únamesr«   rt   ru   r   Úoriginal_decoratorsr   Úcalleer    ri   Ú
_NAMESPACEÚfuncÚis_class)rg   rö   rz   Ú	first_decs       rT   rð   z4PydanticModelTransformer.adjust_validator_signaturesF  sœ   € ð Ÿ™Ÿ™×+Ñ+×1Ñ1×7Ñ7Ó9ò 	2‰IˆD�#Ü˜#Ÿ(™(¤IÕ.ØŸH™H×8Ñ8¸Ñ;�	ä˜y¬(Õ3Ü" 9×#3Ñ#3´XÕ>Ø!×(Ñ(×1Ñ1¼
°|ÐC^Ð5_Ó_à-1�C—H‘H—M‘MÕ*ñ	2rV   ÚModelConfigDatac                 ó   — | j                   }|j                  }t        «       }|j                  j                  D ]¶  }t        |t        «      sŒ|j                  dk(  sŒ$|j                  j                  D ]3  }t        |t        «      sŒ|j                  | j                  |«      «       Œ5 |j                  sŒ}|j                  rŒŠ| j                  j                  sŒ¡t        |j                   |«       Œ¸ |j"                  j$                  dd D ]€  }t&        |j(                  vrŒ|j                   j+                  t-        t/        |«      «      «       |j(                  t&           d   j1                  «       D ]  \  }}|j3                  ||«       Œ Œ‚ |S )zz
        Collects the values of the config attributes that are used by the plugin, accounting for parent classes.
        ÚConfigrŠ   NrÎ   )rê   r™   r  ÚdefsÚbodyrt   r   rö   r   ÚupdateÚget_config_updateÚhas_alias_generatorrç   rb   r¾   Úerror_required_dynamic_aliasesr¨   rš   rw   rÛ   rÚ   Úadd_plugin_dependencyr5   rl   r«   Ú
setdefault)	rg   r�   r™   rÎ   ÚstmtÚsubstmtrš   rö   Úvalues	            rT   rñ   z'PydanticModelTransformer.collect_configX  sM  € ð �i‰iˆØ�g‰gˆÜ Ó"ˆØ—H‘H—M‘Mò 	BˆDÜ˜d¤HÔ-ØØ�y‰y˜HÓ$Ø#Ÿy™yŸ~™~ò C�GÜ% g¬~Ô>Ø Ø—M‘M $×"8Ñ"8¸Ó"AÕBðCð
 ×.Ó.Ø"×AÓAØ×*Ñ*×HÓHä2°3·7±7¸DÕAð	Bð —H‘H—L‘L  Ð$ò 	/ˆDÜ 4§=¡=Ñ0Øð �G‰G×)Ñ)Ô*?ÄÈTÓ@RÓ*SÔTØ#Ÿ}™}¬\Ñ:¸8ÑD×JÑJÓLò /‘��eØ×!Ñ! $¨Õ.ñ/ð	/ð ˆrV   Úmodel_configÚPydanticModelFieldc                 ó  ‡— | j                   }| j                   j                  }g }t        «       }|j                  j                  D �]¨  }t        |t        «      sŒ|j                  d   }t        |t        «      rt        |j                  «      sŒJ|j                  s,| j                  j                  rt        |j                  |«       |j                   j"                  j%                  |j                  «      }|€Œ´|j&                  }	t        |	t(        «      rŒÑt        |	t*        «      sŒâ|	j,                  rŒï| j/                  |||«      }
| j1                  |«      \  }}|r8|j2                  s,| j                  j4                  rt7        |j                  |«       |j9                  t;        |j                  |
|||j<                  |j>                  ¬«      «       |jA                  |j                  «       �Œ« |jC                  «       }|j                   jD                  dd D ]á  }tF        |jH                  vrŒg }|j                  jK                  tM        tO        |«      «      «       |jH                  tF           d   jQ                  «       D ]q  \  Š}‰|vr9t:        jS                  ||«      }|jA                  ‰«       |j9                  |«       ŒCˆfd„|D «       \  }|jU                  |«       |j9                  |«       Œs ||z   }Œã |S )zR
        Collects the fields for the model, accounting for parent classes
        r   N©rö   Úis_requiredÚaliasÚhas_dynamic_aliasÚlineÚcolumnrŠ   rï   c              3   óB   •K  — | ]  }|j                   ‰k(  sŒ|–— Œ y ­wr`   )rö   )ro   Úarö   s     €rT   rq   z:PydanticModelTransformer.collect_fields.<locals>.<genexpr>Å  s   øè ø€ ÒH a¸¿¹À4»¤ÑHùs   ƒ˜)+rê   r™   Úsetr  r  rt   r   Úlvaluesr    rE   rö   Ú
new_syntaxrb   r¿   Úerror_untyped_fieldsr¨   rš   rü   rÅ   ru   r"   r*   Úis_classvarÚget_is_requiredÚget_alias_inforç   r¾   r  Úappendr  r  r  ÚaddÚcopyrw   rÛ   rÚ   r  r5   rl   r«   ÚdeserializeÚremove)rg   r  r�   r™   rï   Úknown_fieldsr  Úlhsrz   ru   r  r  r  Ú
all_fieldsrš   Úsuperclass_fieldsÚdatarú   rö   s                     @rT   rò   z'PydanticModelTransformer.collect_fieldsw  s„  ø€ ð
 �i‰iˆØ�i‰i�m‰mˆØˆÜ“uˆØ—H‘H—M‘Mó 5	'ˆDÜ˜d¤NÔ3Øà—,‘,˜q‘/ˆCÜ˜c¤8Ô,´NÀ3Ç8Á8Ô4LØà—?’? t×'9Ñ'9×'MÒ'MÜ$ S§W¡W¨dÔ3ð
 —(‘(—.‘.×$Ñ$ S§X¡XÓ.ˆCØˆ{ð à—8‘8ˆDÜ˜$¤Ô0ð Ü˜d¤CÔ(ð ð ×ÒØà×.Ñ.¨s°D¸#Ó>ˆKØ'+×':Ñ':¸4Ó'@Ñ$ˆEÐ$á!Ø$×CÒCØ×&Ñ&×DÒDä.¨s¯w©w¸Ô=Ø�M‰MÜ"ØŸ™Ø +ØØ&7ØŸ™ØŸ;™;ôô	ð ×Ñ˜SŸX™XÖ&ðk5	'ðl —[‘[“]ˆ
Ø—H‘H—L‘L  Ð$ò 	8ˆDÜ 4§=¡=Ñ0Øà "Ðà�G‰G×)Ñ)Ô*?ÄÈTÓ@RÓ*SÔTà"Ÿm™m¬LÑ9¸(ÑC×IÑIÓKò 4‘
��dØ˜|Ñ+Ü.×:Ñ:¸4ÀÓF�EØ ×$Ñ$ TÔ*Ø%×,Ñ,¨UÕ3ãH¨:ÔH‘H�UØ×%Ñ% eÔ,Ø%×,Ñ,¨UÕ3ð4ð +¨ZÑ7‰Jð#	8ð$ ÐrV   rï   rÎ   rù   c                 óú  — | j                   }| j                  j                  }|j                  du}|xs$ t	        |j
                  xr |j                   «      }| j                  ||||¬«      }| j                  ||«      sCt        d«      }	|j                  t        |	t        t        j                  «      dt        «      «       d|j                  j                   j"                  vrt%        |d|t'        «       «       y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.
        T©ÚtypedÚforce_all_optionalÚ	use_aliasÚkwargsNrf   )rê   rb   r½   rç   rÇ   r
  Úget_field_argumentsÚshould_init_forbid_extrar*   r#  r   r6   r<   Úexplicitr   r™   rš   rü   Ú
add_methodr9   )
rg   rï   rÎ   rù   r�   r/  r1  r0  Úinit_argumentsÚvars
             rT   ró   z(PydanticModelTransformer.add_initializerË  sä   € ð �i‰iˆØ×"Ñ"×-Ñ-ˆØ×9Ñ9ÀÐEˆ	Ø(ò 
¬DØ×&Ñ&ÒT¨v×/TÑ/TÐ+Tó-
Ðð ×1Ñ1Ø˜%Ð4FÐR[ð 2ó 
ˆð ×,Ñ,¨V°VÔ<Ü�h“-ˆCØ×!Ñ!¤(¨3´¼	×8JÑ8JÓ0KÈTÔS\Ó"]Ô^à˜SŸW™WŸ\™\×/Ñ/Ñ/Ü�s˜J¨¼»
ÕCð 0rV   c           
      óÒ  — | j                   }|j                  j                  t        › d�|j                  j                  t        › d�«      g«      }t	        |t        «       g«      }t        t        d|«      |dt        «      }| j                  |ddd¬«      }|g|z   }|j                  j                  t        › d�«      }d	}|j                  j                  d
z   |z   }	t        dk\  r„t        ||	t        dk\  r$t        d|j                  j                  dz   ¬«      n
t        d«      g |t        t         j"                  «      «      }
t%        ||	g |t        t         j"                  «      «      }nt'        ||	dg |«      }
t%        ||	g |«      }t)        t*        |«      |j                  j,                  j.                  |<   t1        |
t        «      r|
}nt        |
«      }t3        |d||||
d¬«       y)zç
        Adds a fully typed `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_setNTFr.  z.objectÚ_PydanticBaseModelrM   )rŠ   é   )rŠ   é   rî   z
.construct)Ú	namespaceÚ	construct)Úreturn_typeÚ	self_typeÚtvar_defÚis_classmethod)rê   r¨   Ú
named_typeÚBUILTINS_NAMEr@   r9   r   r*   r   r3  r™   ri   rŒ   r?   r>   r6   r<   Úfrom_omitted_genericsr)   rF   r&   r   rš   rü   rt   r6  )rg   rï   r�   Úset_strÚoptional_set_strÚfields_set_argumentÚconstruct_argumentsÚobj_typeÚself_tvar_nameÚtvar_fullnameÚtvdÚself_tvar_exprrA  s                rT   rô   z-PydanticModelTransformer.add_construct_methodá  sÑ  € ð �i‰iˆØ—'‘'×$Ñ$¬ °dÐ%;¸c¿g¹g×>PÑ>PÔTaÐSbÐbfÐQgÓ>hÐ=iÓjˆÜ$ g¬x«zÐ%:Ó;ÐÜ&¤s¨=Ð:JÓ'KÐM]Ð_cÔelÓmÐØ"×6Ñ6°vÀTÐ^cÐotÐ6ÓuÐØ2Ð3Ð6IÑIÐà—7‘7×%Ñ%¬¨°wÐ&?Ó@ˆØ-ˆØŸ™×(Ñ(¨3Ñ.°Ñ?ˆÜ Ò'ÜØØô *¨WÒ4ô ˜b¨C¯G©G×,<Ñ,<¸|Ñ,KÕLä" 2›àØÜœ	×7Ñ7Ó8óˆCô )ØØØØÜœ	×7Ñ7Ó8ó‰Nô ˜^¨]¸BÀÀHÓMˆCÜ(¨¸ÈÈHÓUˆNÜ-<¼TÀ>Ó-Rˆ�‰�‰×Ñ˜>Ñ*ô �cœ;Ô'Ø‰Iä# CÓ(ˆIäØØØØ!ØØØö	
rV   rä   c                 óô  — | j                   }|j                  j                  }|D �]6  }|j                  j	                  |j
                  «      }|�¦|j                  }t        |t        «      r||_	        ŒOt        |t        «      r1|j                  j                  s|j                  j                  «        Œ�	 t        |«      }d|› d|j"                  › d�}	t%        |	|j                  |j                  «       ŒÑ|j'                  |d¬«      }||_        ||_	        t)        |«      dz   t+        |«      z   |_        t/        t0        |«      |j                  t+        |«      <   �Œ9 y# t        $ r t!        |«      }Y Œµw xY w)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.
        Nzsym_node.node: rÕ   rÖ   F)r1  rM   )rê   r™   rš   rü   rÅ   rö   ru   rt   r*   Úis_propertyr"   r¨   Úfinal_iterationÚdeferr¹   Ú	TypeErrorÚreprrh   rÙ   Úto_varrl   rÝ   Ú	_fullnamer&   r   )
rg   rï   rä   r�   rš   rú   Úsym_noder8  Úvar_strrà   s
             rT   rõ   z#PydanticModelTransformer.set_frozen  s.  € ð �i‰iˆØ�w‰w�|‰|ˆØó 	GˆEØ—z‘z—~‘~ e§j¡jÓ1ˆHØÐ#Ø—m‘m�Ü˜c¤3Ô'Ø&,�C•OÜ ¤_Ô5¸c¿g¹g×>UÒ>Uà—G‘G—M‘M•Oð,Ü"% c£(˜ð  /¨w¨i°zÀ#Ç-Á-ÀÐPQÐR�FÜ-¨f°c·g±g¸s¿w¹wÕGà—l‘l 4°5�lÓ9�Ø�”Ø"(�”Ü ,¨TÓ 2°SÑ 8¼8ÀC»=Ñ H�”Ü,;¼DÀ#Ó,F�—
‘
œ8 C›=Ó)ñ/	Gøô %ò ,ä"& s£)šð,ús   Â6E Å E7Å6E7r  c                 óŒ  — |j                   d   }t        |t        «      r|j                  | j                  v sy|j                  dk(  r t        |j
                  t        «      r|j
                  j                  dk(  }n`t        |j
                  t        «      r|j
                  j                  dk(  }n,t        |j                  | j                  j                  |«       yt        |¬«      S |j                  dk(  rCd}t        |j
                  t        «      r|j
                  j                  dk(  rd	}t        |¬
«      S t        |j
                  t        «      rF|j
                  j                  dv r.t        di |j                  |j
                  j                  dk(  i¤ŽS t        |j                  | j                  j                  |«       y)zß
        Determines the config update due to a single statement in the Config class definition.

        Warns if a tracked config attribute is set to a value the plugin doesn't know how to interpret (e.g., an int)
        r   Nrã   Úforbid)Úforbid_extraræ   Tzbuiltins.NoneF)r
  )úbuiltins.Truezbuiltins.Falser]  rÓ   )r  rt   r    rö   rè   Úrvaluer$   r  r   Úerror_invalid_config_valuerê   r¨   r  ri   )rg   r  r)  r\  r
  s        rT   r	  z*PydanticModelTransformer.get_config_update<  sL  € ð �o‰o˜aÑ ˆÜ˜3¤Ô)¨c¯h©h¸$×:TÑ:TÑ.TØØ�8‰8�wÒÜ˜'Ÿ.™.¬'Ô2Ø&Ÿ~™~×3Ñ3°xÑ?‘Ü˜GŸN™N¬JÔ7Ø&Ÿ~™~×2Ñ2°hÑ>‘ä*¨3¯8©8°T·Y±Y·]±]ÀGÔLØÜ"°Ô=Ð=Ø�8‰8Ð(Ò(Ø"&ÐÜ˜'Ÿ.™.¬(Ô3¸¿¹×8OÑ8OÐSbÒ8bØ&+Ð#Ü"Ð7JÔKÐKÜ�g—n‘n¤hÔ/°G·N±N×4KÑ4KÐOrÑ4rÜ"Ñ\ c§h¡h°·±×0GÑ0GÈ?Ñ0ZÐ%[Ñ\Ð\Ü" 3§8¡8¨T¯Y©Y¯]©]¸GÔDØrV   r™   r  r)  c                 ó„  — |j                   }t        |t        «      rBt        | j                  |j
                     j                  «      }t        j                  |«       S t        |t        «      rÃt        |j                  t        «      r©|j                  j                  t        k(  rŒt        |j                  |j                   «      D ]'  \  }}|�|dk(  r|j"                  t$        u c S |dk(  sŒ' y t        | j                  |j
                     j                  «      }t        j                  |«       S t        |t$        «      S )zg
        Returns a boolean indicating whether the field defined in `stmt` is a required field.
        r    r¡   F)r^  rt   r'   rA   rš   rö   r�   r“   Útype_has_implicit_defaultr   rþ   r#   ri   r‚   Úzipr¤   Ú	arg_namesrh   r   )r™   r  r)  ÚexprÚ
value_typer£   rö   s          rT   r!  z(PydanticModelTransformer.get_is_requiredX  sü   € ð
 �{‰{ˆÜ�dœHÔ%ä(¨¯©°#·(±(Ñ);×)@Ñ)@ÓAˆJÜ/×IÑIÈ*ÓUÐUÐUÜ�dœHÔ%¬*°T·[±[Ä'Ô*JÈtÏ{É{×OcÑOcÔguÒOuô ! §¡¨D¯N©NÓ;ò !‘	��Tà�< 4¨9Ò#4ØŸ=™=¬LÐ8Ò8ØÐ,Ó,Ù ð!ô )¨¯©°#·(±(Ñ);×)@Ñ)@ÓAˆJÜ/×IÑIÈ*ÓUÐUÐUä˜$¤Ó-Ð-rV   Útype_c                 ó€   — t        | t        «      ryt        | t        «      rt        d„ | j                  D «       «      ryy)zº
        Returns True if the passed type will be given an implicit default value.

        In pydantic v1, this is the case for Optional types and Any (with default value None).
        Tc              3   ó`   K  — | ]&  }t        |t        «      xs t        |t        «      –— Œ( y ­wr`   )rt   r9   r6   )ro   rØ   s     rT   rq   zEPydanticModelTransformer.type_has_implicit_default.<locals>.<genexpr>|  s+   è ø€ ò 0
ØHLŒJ�tœXÓ&ÒC¬*°T¼7Ó*CÓCñ0
ùs   ‚,.F)rt   r6   r@   rv   r«   )rf  s    rT   ra  z2PydanticModelTransformer.type_has_implicit_defaultr  s=   € ô �eœWÔ%àÜ�eœYÔ'¬Cñ 0
ØPU×P[ÑP[ô0
ô -
ð ØrV   c                 ót  — | j                   }t        |t        «      ryt        |t        «      r7t        |j                  t
        «      r|j                  j                  t        k(  syt        |j                  «      D ];  \  }}|dk7  rŒ|j                  |   }t        |t        «      r|j                  dfc S  y 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.
        )NFr  F)NT)r^  rt   r'   r   rþ   r#   ri   r‚   Ú	enumeraterc  r¤   r$   r  )r  rd  ÚiÚarg_namer£   s        rT   r"  z'PydanticModelTransformer.get_alias_infoƒ  s¢   € ð �{‰{ˆÜ�dœHÔ%àô �tœXÔ&¬:°d·k±kÄ7Ô+KÐPT×P[ÑP[×PdÑPdÔhvÒPvð ä$ T§^¡^Ó4ò 	"‰KˆAˆxØ˜7Ò"ØØ—)‘)˜A‘,ˆCÜ˜#œwÔ'Ø—y‘y %Ð'Ò'á!ð	"ð rV   r/  r0  r1  c           	      ó°   — | j                   j                  j                  }|D �cg c]%  }|r|j                  s|j	                  ||||¬«      ‘Œ' }}|S c c}w )zË
        Helper function used during the construction of the `__init__` and `construct` method signatures.

        Returns a list of mypy Argument instances for use in the generated signatures.
        )r/  Úforce_optionalr1  )rê   r™   rš   r  Úto_argument)rg   rï   r/  r0  r1  rš   rú   Ú	argumentss           rT   r3  z,PydanticModelTransformer.get_field_arguments   sd   € ð �y‰y�}‰}×!Ñ!ˆð  ö
àÙ %×"9Ò"9ð ×Ñ˜d¨%Ð@RÐ^gÐÕhð
ˆ	ð 
ð
 Ðùò
s   ¥*Ac                 ó¬   — |j                   s&| j                  |t        |j                  «      «      ry|j                  ry| j
                  j                  S )aH  
        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ç   Úis_dynamic_alias_presentrÇ   r
  r\  rb   r¼   )rg   rï   rÎ   s      rT   r4  z1PydanticModelTransformer.should_init_forbid_extra°  sI   € ð ×4Ò4Ø×,Ñ,¨V´T¸&×:TÑ:TÓ5UÔVØØ×ÒØØ×!Ñ!×3Ñ3Ð3rV   r
  c                 ó\   — | D ]  }|j                   sŒ y |r| D ]  }|j                  �Œ y y)zš
        Returns whether any fields on the model have a "dynamic alias", i.e., an alias that cannot be
        determined during static analysis.
        TF)r  r  )rï   r
  rú   s      rT   rr  z1PydanticModelTransformer.is_dynamic_alias_present¾  sE   € ð ò 	ˆEØ×&Ó&Ùð	ñ Øò  �Ø—;‘;Ñ&Ùð ð rV   )rJ   N)rJ   r  )"r¶   r·   r¸   rè   r	   r¹   rÒ   r-   ra   rf   r”   rð   rñ   r   rò   rÇ   ró   rô   rõ   r   r   r	  Ústaticmethodr   r    r!  r;   ra  r
   r"  r   r3  r4  rr  rÓ   rV   rT   r“   r“     sö  … ò'Ð˜3˜s™8ó ð+˜Oð +Ð<Pð +ÐUYó +ó
ó22ó$ð>RÐ+<ð RÀÐFZÑA[ó RðhD dÐ+?Ñ&@ð DÐJ[ð DÐjnð DÐswó Dð,8
¨4Ð0DÑ+Eð 8
È$ó 8
ðtG Ð&:Ñ!;ð GÀTð GÈdó GðB¨ð ¸HÐEVÑ<Wó ð8 ð.˜Xð .¨^ð .À(ð .Ètò .ó ð.ð2 ð¨°*Ñ)=ð À$ò ó ðð  ð˜^ð °°h¸s±mÀTÐ6IÑ0Jò ó ðð8ØÐ/Ñ0ðØ9=ðØSWðØdhðà	ˆh‰óð 4¨tÐ4HÑ/Ið 4ÐSdð 4Ðimó 4ð ð¨Ð.BÑ)Cð ÐZ^ð Ðcgò ó ñrV   r“   c                   óŒ   — e Zd Zdededee   dededefd„Zded	ed
e	fd„Z
dededed	ed
ef
d„Zd
efd„Zededed
d fd„«       Zy)r  rö   r  r  r  r  r  c                 óX   — || _         || _        || _        || _        || _        || _        y r`   r  )rg   rö   r  r  r  r  r  s          rT   rf   zPydanticModelField.__init__Ï  s0   € ð ˆŒ	Ø&ˆÔØˆŒ
Ø!2ˆÔØˆŒ	Øˆ�rV   rš   r1  rJ   c                 ó”   — | j                   }|r| j                  �| j                  }t        ||| j                      j                  «      S r`   )rö   r  r*   r�   )rg   rš   r1  rö   s       rT   rV  zPydanticModelField.to_varÙ  s;   € Ø�y‰yˆÙ˜Ÿ™Ð/Ø—:‘:ˆDÜ�4˜˜dŸi™i™×-Ñ-Ó.Ð.rV   r/  rn  c                 ó  — |r3|| j                      j                  �|| j                      j                  }nt        t        j                  «      }t        | j                  ||«      |d |s| j                  st        ¬«      S t        ¬«      S )N)ÚvariableÚtype_annotationÚinitializerÚkind)
rö   r�   r6   r<   r5  r   rV  r  r   r   )rg   rš   r/  rn  r1  rz  s         rT   ro  zPydanticModelField.to_argumentß  sz   € Ù�T˜$Ÿ)™)‘_×)Ñ)Ð5Ø" 4§9¡9™o×2Ñ2‰Oä%¤i×&8Ñ&8Ó9ˆOÜØ—[‘[  yÓ1Ø+ØÙ"0¸×8HÒ8H”ô	
ð 	
ô OXô	
ð 	
rV   c                 ó   — | j                   S r`   )Ú__dict__)rg   s    rT   r÷   zPydanticModelField.serializeë  s   € Ø�}‰}ÐrV   r,  c                 ó   —  | di |¤ŽS )NrÓ   rÓ   )r™   rš   r,  s      rT   r&  zPydanticModelField.deserializeî  s   € á‰{�T‰{ÐrV   N)r¶   r·   r¸   r¹   rÇ   r   rP   rf   r(   r*   rV  r   ro  r   r÷   Úclassmethodr&  rÓ   rV   rT   r  r  Î  sµ   „ ðØðØ&*ðØ3;¸C±=ðØUYðØadðØnqóð/˜8ð /°ð /¸ó /ð

 ð 

°ð 

Àtð 

ÐX\ð 

Ðaió 

ð˜8ó ð ð˜xð ¨xð Ð<Pò ó ñrV   r  c                   óž   — e Zd Z	 	 	 	 	 	 ddee   dee   dee   dee   dee   dee   fd„Zd	eeef   fd
„Z	ded    d	dfd„Z
deded	dfd„Zy)r  Nr\  rå   rä   r×   rç   r
  c                 óX   — || _         || _        || _        || _        || _        || _        y r`   )r\  rå   rä   r×   rç   r
  )rg   r\  rå   rä   r×   rç   r
  s          rT   rf   zModelConfigData.__init__ô  s2   € ð )ˆÔØ,ˆÔØˆŒØ ˆŒØ.LˆÔ+Ø#6ˆÕ rV   rJ   c                 óp   — | j                   j                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}S c c}}w r`   )r~  r«   )rg   ÚkÚvs      rT   rø   zModelConfigData.set_values_dict  s/   € Ø!%§¡×!4Ñ!4Ó!6×H™˜˜A¸!¹-��1‘ÓHÐHùÓHs   ž
2©2rÎ   c                 óp   — |€y |j                  «       j                  «       D ]  \  }}t        | ||«       Œ y r`   )rø   r«   rÉ   )rg   rÎ   r„  r…  s       rT   r  zModelConfigData.update  s;   € Øˆ>ØØ×*Ñ*Ó,×2Ñ2Ó4ò 	 ‰DˆAˆqÜ�D˜!˜QÕñ	 rV   rÏ   r  c                 ó8   — t        | |«      €t        | ||«       y y r`   )rœ   rÉ   )rg   rÏ   r  s      rT   r  zModelConfigData.setdefault  s    € Ü�4˜ÓÐ%Ü�D˜#˜uÕ%ð &rV   )NNNNNN)r¶   r·   r¸   r   rÇ   rf   r   r¹   r   rø   r  r  rÓ   rV   rT   r  r  ó  s¶   „ ð (,Ø)-Ø!%Ø#'Ø9=Ø.2ñ7à˜t‘nð7ð ! ™ð7ð ˜‘ð	7ð
 ˜4‘.ð7ð )1°©ð7ð & d™^ó7ð I  c¨3 h¡ó Ið ˜XÐ&7Ñ8ð  ¸Tó  ð&˜cð &¨#ð &°$ô &rV   r  zpydantic-ormzInvalid from_orm callÚPydanticzpydantic-configzInvalid config valuezpydantic-aliaszDynamic alias disallowedzpydantic-unexpectedzUnexpected behaviorzpydantic-fieldzUntyped field disallowedzInvalid Field defaultsÚ
model_namer¨   r©   c                 ó<   — |j                  d| › d�|t        ¬«       y )Nú"z" does not have orm_mode=True©Úcode)ÚfailÚ	ERROR_ORM)r‰  r¨   r©   s      rT   rÜ   rÜ     s   € Ø‡H�Hˆq��Ð9Ð:¸GÌ)€HÕTrV   rö   c                 ó<   — |j                  d| › d�|t        ¬«       y )NzInvalid value for "Config.r‹  rŒ  )rŽ  ÚERROR_CONFIG)rö   r¨   r©   s      rT   r_  r_    s   € Ø‡H�HÐ)¨$¨¨qÐ1°7Ä€HÕNrV   c                 ó4   — | j                  d|t        ¬«       y )Nz#Required dynamic aliases disallowedrŒ  )rŽ  ÚERROR_ALIAS©r¨   r©   s     rT   r  r  "  s   € Ø‡H�HÐ2°GÄ+€HÕNrV   rà   c                 óV   — d}d| › d�}|d|› d�z  }|j                  ||t        ¬«       y )Nz6https://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Œ  )rŽ  ÚERROR_UNEXPECTED)rà   r¨   r©   ÚlinkÚfull_messages        rT   rÙ   rÙ   &  sA   € ð D€DØLÈVÈHÐTVÐW€LØÐ<¸T¸FÐB[Ð\Ñ\€LØ‡H�Hˆ\˜7Ô)9€HÕ:rV   c                 ó4   — | j                  d|t        ¬«       y )NzUntyped fields disallowedrŒ  )rŽ  ÚERROR_UNTYPEDr”  s     rT   r  r  0  s   € Ø‡H�HÐ(¨'¼€HÕFrV   c                 ó4   — | j                  d|t        ¬«       y )Nz>Field default and default_factory cannot be specified togetherrŒ  )rŽ  ÚERROR_FIELD_DEFAULTSr”  s     rT   r§   r§   4  s   € Ø‡H�HÐMÈwÔ]q€HÕrrV   r¤   r@  rA  rB  rC  Úis_newc                 óT  — | j                   j                  }||j                  v rn|j                  |   }	|	j                  rSt	        |	j
                  t        «      r9| j                   j                  j                  j                  |	j
                  «       |xs t        |«      }|s|r0t        t        d«      t        j                  |«      dt        «      g}
n+|xs t        |«      }t        t        d«      |dt        «      g}
|
|z   }g g g }}}|D ]o  }|j                   sJ d«       ‚|j#                  |j                   «       |j#                  t%        |j&                  «      «       |j#                  |j(                  «       Œq | j*                  j-                  t.        › d�«      }t1        ||||||r|gnd¬«      }t        ||t3        t5        «       g«      «      }||_        t7        ||«      |_        ||_        t=        |«      dz   |z   |_        |j@                  |_         ||j                  v r2tC        ||j                  «      }|j                  |   |j                  |<   |rud|_"        t        ||j8                  «      }||_        |j>                  |_        d|_#        tI        |tK        d	«      g|«      }|j@                  |_         tM        tN        |«      }	ntM        tN        |«      }	d|	_        |	|j                  |<   |jP                  j                  j                  j#                  |«       y)
z}
    Adds a new method to a class.

    This can be dropped if/when https://github.com/python/mypy/issues/7301 is merged
    Ú_clsNÚ__pydantic_self__z"All arguments must be fully typed.z	.function)Ú	variablesrM   Tr€  ))r™   rš   rü   Úplugin_generatedrt   ru   r   r  r  r'  rB   r   r*   r=   Úmake_normalizedr   rz  r#  rÝ   ry  r|  r¨   rD  rE  r7   r   r!   r4   r�   r  rl   rW  r  rC   Úis_decoratedrC  r   r    r&   r   Údefn)r�   rö   r¤   r@  rA  rB  rC  rž  rš   rz   Úfirstrª   rc  Ú	arg_kindsr£   Úfunction_typeÚ	signaturer   Úr_namer…  Údecs                        rT   r6  r6  8  s¥  € ð  �7‰7�<‰<€Dð ˆt�z‰zÑØ�j‰j˜ÑˆØ×Ò¤J¨s¯x©x¼Ô$AØ�G‰G�L‰L×Ñ×$Ñ$ S§X¡XÔ.àÒ0œ]¨4Ó0€IÙ™Üœ#˜f›+¤x×'?Ñ'?À	Ó'JÈDÔRYÓZÐ[‰ð Ò4¤¨tÓ!4ˆ	Üœ#Ð1Ó2°I¸tÄWÓMÐNˆØ�4‰<€DØ&(¨"¨b˜)ˆy€IØò #ˆØ×"Ò"ÐHÐ$HÓHÐ"Ø×Ñ˜×,Ñ,Ô-Ø×Ñœ #§,¡,Ó/Ô0Ø×Ñ˜Ÿ™Õ"ð	#ð —G‘G×&Ñ&¬-¨¸	Ð'BÓC€MÜØ�9˜i¨°mÑ]eÐPXÉzÐkoô€Iô �4˜œu¤h£j \Ó2Ó3€DØ€D„IÜ! )¨TÓ2€D„IØ"€D„Mä! $Ó'¨#Ñ-°Ñ4€D„NØ—	‘	€D„Ið ˆt�z‰zÑä-¨d°D·J±JÓ?ˆØ!ŸZ™Z¨Ñ-ˆ�
‰
�6ÑáØ ˆÔÜ��d—i‘iÓ ˆØˆŒØ—n‘nˆŒàˆÔÜ˜œx¨Ó6Ð7¸Ó;ˆð
 —9‘9ˆŒÜœd CÓ(‰äœd DÓ)ˆØ€CÔà€D‡J�JˆtÑØ‡I�I‡N�N×Ñ×Ñ˜tÕ$rV   Úxc                 óB   — | j                   }t        |«      r |«       S |S ©zc
    Used for compatibility with mypy 0.740; can be dropped once support for 0.740 is dropped.
    )ri   Úcallable©r­  Úfns     rT   rl   rl   ‹  s    € ð 
�‰€BÜ�„|Ù‹tˆØ€IrV   c                 óB   — | j                   }t        |«      r |«       S |S r¯  )rö   r°  r±  s     rT   rÝ   rÝ   •  s    € ð 
�‰€BÜ�„|Ù‹tˆØ€IrV   rÃ   c                 óB  — | j                  d«      sy d}t        j                  dk\  rdd l}n	 dd l}t        | |«      5 }|j                  |«      cd d d «       S # t
        $ r0 d}	 dd l}n%# t
        $ r dd l}|j                  d«       Y Y y w xY wY Œ_w xY w# 1 sw Y   y xY w)Nz.tomlÚrb)é   r=  r   ÚrzJNo TOML parser installed, cannot read configuration from `pyproject.toml`.)r†   ÚsysÚversion_infoÚtomllibÚtomliÚImportErrorÚtomlÚwarningsÚwarnÚopenÚload)rÃ   Ú	read_modeÚtoml_r¾  Úrfs        rT   rÄ   rÄ   Ÿ  s©   € Ø×Ñ Ô(Øà€IÜ
×Ñ˜7Ò"Üð	Û!ô 
ˆk˜9Ó	%ð ¨Ø�z‰z˜"‹~÷ñ øô ò 		àˆIðÜ$øÜò Ûà—‘ÐjÔkÚð	úñ %ð			ú÷ð ús@   ®A ¾BÁBÁ%A*Á)BÁ*BÂBÂBÂBÂBÂB)NNFF)|r¸  Úconfigparserr   Útypingr   r   r   r   r   r	   r
   r   Ú
TypingTyper   Úmypy.errorcodesr   Ú
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*   Úmypy.optionsr+   Úmypy.pluginr,   r-   r.   r/   r0   r1   r2   Úmypy.pluginsr3   Úmypy.semanalr4   Úmypy.server.triggerr5   Ú
mypy.typesr6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   Úmypy.typevarsrB   Ú	mypy.utilrC   Úmypy.versionrD   Úmypy_versionÚpydantic.v1.utilsrE   rF   r¼  rÌ   rÛ   r¶   rÿ   rm   rí   r}   r‚   r‹   r¹   rP   rU   rŒ   rE  r\   r[   ra   r‡   r“   r  r  r�  r‘  r“  r—  r›  r�  rÜ   r_  r  rÙ   r  r§   rÇ   r6  rl   rÝ   rÄ   rÓ   rV   rT   ú<module>rÕ     sÁ  ðÛ 
Ý %ß ]× ]Õ ]å %÷÷ ÷ ÷ ÷ ÷ ÷ õ õ> !÷÷ ñ õ %Ý *Ý 5÷÷ ÷ õ õ (Ý 2Ý 4å ,ð5Ý%ð
 !€Ø'€Ø�c�rˆ]€
Ø"�| ?Ð3Ð Ø%˜,Ð&@ÐAÐ Ø(˜\Ð)=Ð>Ð Ø�<˜}Ð-€Ø"�|Ð#9Ð:Ð ðA ð A¨¨c°3¨h©ó Añ (¨Ó5Ð Ø0°HÒ<‘
À.€ð €ð�Cð Ð0ó ôr �Vô r ÷j"Cñ "CðJ#˜=ð #¨Tó #÷2lñ l÷^"ñ "÷J&ñ &ñ> �nÐ&=¸zÓJ€	ÙÐ*Ð,BÀJÓO€ÙÐ(Ð*DÀjÓQ€ÙÐ2Ð4IÈ:ÓVÐ ÙÐ*Ð,FÈ
ÓS€Ù Ð!1Ð3KÈZÓXÐ ðU˜sð UÐ)?ð UÈ'ð UÐVZó UðO Sð OÐ/Nð OÐY`ð OÐeió OðOÐ(Gð OÐRYð OÐ^bó Oð;Øð;ØÐ2Ð4SÐSÑTð;Ø_fð;à	ó;ðGÐ=ð GÈð GÐTXó GðsÐ5Kð sÐV]ð sÐbfó sð !%Ø%)Ø ØñP%Ø	ðP%à
ðP%ð ˆx‰.ðP%ð ð	P%ð
 ˜‰~ðP%ð �zÑ"ðP%ð ðP%ð ðP%ð 
óP%ðf�E˜( JÐ.Ñ/ð °Có ð��h 
Ð*Ñ+ð °ó ð˜Cð  H¨T°#°s°(©^Ñ$<ô øðm ò 5ç4Ð4ð5ús   ÃH# È#H2È1H2