Ë
    ñEjQ—  ã                   óf  — 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mEZEmFZFmGZGmHZHmIZI d dlJmKZK d dlLmMZM d dlNmOZP ddlQmRZR 	 d dl>mSZS dZUdZVeWdd ZXeX› d�ZYeX› d�ZZeX› d�Z[eX› d�Z\eX› d�Z]de^de
e_df   fd„Z` e`eP«      Zaeadk\  rd nd!Zbd"ZOde^dd#fd$„Zc G d%„ d&e5«      Zd G d'„ d(«      Zed)e4defd*„Zf G d+„ d,«      Zg G d-„ d.«      Zh G d/„ d0«      Zi ed1d2d3«      Zj ed4d5d3«      Zk ed6d7d3«      Zl ed8d9d3«      Zm ed:d;d3«      Zn ed:d<d3«      Zod=e^d>e1d?eddfd@„ZpdAe^d>e7d?eddfdB„Zqd>e7d?eddfdC„ZrdDe^d>ee1e7f   d?eddfdE„Zsd>e7d?eddfdF„Ztd>e1d?eddfdG„Zu	 	 	 	 dTd)e2dAe^dHee   dIedJee   dKeeS   dLevdMevddfdN„ZwdOeee(f   de^fdP„ZxdOeee(f   de^fdQ„ZydRe^deee^ef      fdS„Zzy# eT$ r
 d dl>mGZS Y �Œew xY w)Ué    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Ú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    úS/var/www/html/peoplehubportal/venv/lib/python3.12/site-packages/pydantic/v1/mypy.pyÚparse_mypy_versionrU   V   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\   a   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__l   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>u   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_hookq   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_hooky   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.
        )rD   rD   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        «      rH|j                  }t        |dd	«      }|r+t        d
„ |D «       «      rt!        ˆ	fd„|D «       «      |_        |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()rD   Údefault_factoryz9"default_factory" is no longer second argument in Field())r   iŽ  ÚargsNc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr`   )rt   r>   )ro   Úargs     rT   rq   z:PydanticPlugin._pydantic_field_callback.<locals>.<genexpr>Ø   s   è ø€ ÒH¸Cœ: c¬;×7ÑHùs   ‚c              3   ó"   •K  — | ]  }‰–— Œ y ­wr`   © )ro   Ú_Údefault_any_types     €rT   rq   z:PydanticPlugin._pydantic_field_callback.<locals>.<genexpr>Ú   s   øè ø€ Ò-MÀ1Ô.>Ñ-Mùs   ƒ)Údefault_return_typeÚcallee_arg_namesr¡   Ú+error_default_and_default_factory_specifiedÚapiÚcontextÚ	arg_typesrt   r   r:   r‹   Úitemsr7   Úret_typer›   ÚallrN   )
rg   rŽ   Údefault_argsÚdefault_factory_argsÚdefault_typeÚdefault_argÚdefault_factory_typer¯   r¡   r§   s
            @rT   rƒ   z'PydanticPlugin._pydantic_field_callbackª   sl  ø€ ð ×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Ð(äÐ.´Ô=Ø/×8Ñ8�ô ˜x¨°Ó6�ÙÜÑHÀ4ÔHÔHä(-Ó-MÈÔ-MÓ(M˜œØ�àÐ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[   k   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   r¥   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_signaturesE  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.
        ÚConfigrD   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_configW  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ÚcolumnrD   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_fieldsv  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.  r0  r/  Ú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           
      óf  — | 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\  rNt        ||	dg |t        t        j                   «      «      }
t#        ||	g |t        t        j                   «      «      }nt%        ||	dg |«      }
t#        ||	g |«      }t'        t(        |«      |j                  j*                  j,                  |<   t/        |
t        «      r|
}nt        |
«      }t1        |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   )rD   é   rí   Ú	construct)Úreturn_typeÚ	self_typeÚtvar_defÚis_classmethod)ré   r«   Ú
named_typeÚBUILTINS_NAMEr?   r9   r   r*   r   r2  r˜   ri   r‹   r>   r6   r<   Úfrom_omitted_genericsr)   rF   r&   r   r™   rû   rt   r5  )rg   rî   rŽ   Úset_strÚoptional_set_strÚfields_set_argumentÚconstruct_argumentsÚobj_typeÚself_tvar_nameÚtvar_fullnameÚtvdÚself_tvar_exprr>  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Ñ.°Ñ?ˆÜ Ò'ÜØØØØØÜœ	×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)r0  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_noder7  Ú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.FalserZ  r¥   )r  rt   r    rõ   rç   Úrvaluer$   r  r   Úerror_invalid_config_valueré   r«   r  ri   )rg   r  r(  rY  r	  s        rT   r  z*PydanticModelTransformer.get_config_update7  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'   r@   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_requiredS  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>w  s+   è ø€ ò 0
ØHLŒJ�tœXÓ&ÒC¬*°T¼7Ó*CÓCñ0
ùs   ‚,.F)rt   r6   r?   rv   r®   )rc  s    rT   r^  z2PydanticModelTransformer.type_has_implicit_defaultm  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‚   Ú	enumerater`  r¡   r$   r  )r  ra  Ú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.  r/  r0  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_optionalr0  )ré   r˜   r™   r  Úto_argument)rg   rî   r.  r/  r0  r™   rù   Ú	argumentss           rT   r2  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	  rY  rb   r¼   )rg   rî   rÎ   s      rT   r3  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   ro  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;   r^  r
   r!  r   r2  r3  ro  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ð,4
¨4Ð0DÑ+Eð 4
È$ó 4
ðl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™   r0  rJ   c                 ó”   — | j                   }|r| j                  �| j                  }t        ||| j                      j                  «      S r`   )rõ   r  r*   rœ   )rg   r™   r0  rõ   s       rT   rS  zPydanticModelField.to_varÔ  s;   € Ø�y‰yˆÙ˜Ÿ™Ð/Ø—:‘:ˆDÜ�4˜˜dŸi™i™×-Ñ-Ó.Ð.rV   r.  rk  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<   r4  r   rS  r  r   r   )rg   r™   r.  rk  r0  rw  s         rT   rl  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*   rS  r   rl  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  NrY  rä   rã   rÖ   ræ   r	  c                 óX   — || _         || _        || _        || _        || _        || _        y r`   )rY  rä   rã   rÖ   ræ   r	  )rg   rY  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  +  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ª   /  s   € Ø‡H�HÐMÈwÔ]q€HÕrrV   r¡   r=  r>  r?  r@  Úis_newc                 óZ  — | 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|_        t        ||t5        t7        «       g«      «      }||_        t9        ||«      |_        ||_        t?        |«      dz   |z   |_         |jB                  |_!        ||j                  v r2tE        ||j                  «      }|j                  |   |j                  |<   |rud|_#        t        ||j:                  «      }||_        |j@                  |_         d|_$        tK        |tM        d«      g|«      }|jB                  |_!        tO        tP        |«      }	ntO        tP        |«      }	d|	_        |	|j                  |<   |jR                  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	.functionrM   Tr}  )*r˜   r™   rû   Úplugin_generatedrt   ru   r   r  r  r&  rA   r   r*   r=   Úmake_normalizedr   rw  r"  rÜ   rv  ry  r«   rA  rB  r7   Ú	variablesr   r!   r4   rœ   r   rl   rT  r  rB   Úis_decoratedr@  r   r    r&   r   Údefn)rŽ   rõ   r¡   r=  r>  r?  r@  r›  r™   rz   Úfirstr­   r`  Ú	arg_kindsr£   Úfunction_typeÚ	signaturerÿ   Úr_namer‚  Údecs                        rT   r5  r5  3  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Ü˜Y¨	°9¸kÈ=ÓY€IÙØ'˜jˆ	Ôä�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   Ú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@   Úmypy.typevarsrA   Ú	mypy.utilrB   Úmypy.versionrC   Úmypy_versionÚutilsrE   rF   rº  rÌ   rÚ   r¶   rþ   rm   rì   r}   r‚   rŠ   r¹   rP   rU   r‹   rB  r\   r[   ra   r‡   r’   r  r  rŒ  rŽ  r�  r”  r˜  rš  rÛ   r\  r
  rØ   r  rª   rÇ   r5  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ó #÷2hñ h÷V"ñ "÷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°(©^Ñ$<ô øðe ò 5ç4Ð4ð5ús   ÃH! È!H0È/H0