§
    ñyIf!‡  ã                  ón  — d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZmZmZ ddlZddlmZmZmZ ddlmZmZ dd	lmZmZmZ dd
lmZ ddlmZ ddlmZm Z  erddl!m"Z" dZ# e$e#¦  «        Z%d„ Z&dJd„Z' G d„ d¦  «        Z( G d„ de(¦  «        Z) G d„ de(¦  «        Z* G d„ de(¦  «        Z+ G d„ de(¦  «        Z, G d„ de(¦  «        Z- G d „ d!e(¦  «        Z. G d"„ d#e*¦  «        Z/ G d$„ d%e*e.¦  «        Z0 G d&„ d'e0¦  «        Z1 G d(„ d)e(¦  «        Z2 G d*„ d+e2¦  «        Z3 G d,„ d-e3¦  «        Z4 G d.„ d/e3¦  «        Z5 G d0„ d1e3¦  «        Z6 G d2„ d3e3¦  «        Z7i d4e4“d5e6“d6e7“d7e5“d8e5“d9e5“d:e5“d;e5“d<e5“d=e5“d>e5“d?e5“d@e5“dAe5“dBe5“dCe5“dDe5“e5e5dEœ¥Z8 G dF„ dGe(¦  «        Z9 G dH„ dIe(¦  «        Z:dS )Ka¡  
Data object model, as per https://docs.python.org/3/reference/datamodel.html.

This module describes, at least partially, a data object model for some
of astroid's nodes. The model contains special attributes that nodes such
as functions, classes, modules etc have, such as __doc__, __class__,
__module__ etc, being used when doing attribute lookups over nodes.

For instance, inferring `obj.__class__` will first trigger an inference
of the `obj` variable. If it was successfully inferred, then an attribute
`__class__ will be looked for in the inferred object. This is the part
where the data model occurs. The model is attached to those nodes
and the lookup mechanism will try to see if attributes such as
`__class__` are defined by the model or not. If they are defined,
the model will be requested to return the corresponding value of that
attribute. Thus the model can be viewed as a special part of the lookup
mechanism.
é    )ÚannotationsN)ÚIterator)Ú	lru_cache)ÚTYPE_CHECKINGÚAnyÚLiteral)ÚbasesÚnodesÚutil)ÚInferenceContextÚcopy_context)ÚAttributeInferenceErrorÚInferenceErrorÚ	NoDefault)ÚAstroidManager)Únode_classes)ÚInferenceResultÚSuccessfulInferenceResult)ÚPropertyÚattr_c                óX  ‡— t          j        | | j        | j        | j        | j        ¬¦  «        Šˆfd„t          |                     ¦   «         ¦  «        D ¦   «         }d„ |                     ¦   «         D ¦   «         }‰ 	                    t          t          ||¦  «        ¦  «        ¦  «         ‰S )N©ÚparentÚlinenoÚ
col_offsetÚ
end_linenoÚend_col_offsetc                ó<   •— g | ]}t          j        |‰¬ ¦  «        ‘ŒS )©Úvaluer   ©r   ÚConst)Ú.0r    Úobjs     €úS/var/www/piapp/venv/lib/python3.11/site-packages/astroid/interpreter/objectmodel.pyú
<listcomp>z _dunder_dict.<locals>.<listcomp>;   s6   ø€ ð ð ð Ø8=�Ô ¨sÐ3Ñ3Ô3ðð ð ó    c                ó   — g | ]
}|d          ‘ŒS )éÿÿÿÿ© )r#   Úelems     r%   r&   z _dunder_dict.<locals>.<listcomp>B   s   € Ð7Ð7Ð7˜4ˆd�2ŒhÐ7Ð7Ð7r'   )r   ÚDictr   r   r   r   ÚlistÚkeysÚvaluesÚpostinitÚzip)ÚinstanceÚ
attributesr.   r/   r$   s       @r%   Ú_dunder_dictr4   1   s¸   ø€ Ý
Ô
ØØŒØÔ&ØÔ&ØÔ.ðñ ô €Cðð ð ð ÝAEÀjÇoÂoÑFWÔFWÑAXÔAXðñ ô €Dð 8Ð7 :×#4Ò#4Ñ#6Ô#6Ð7Ñ7Ô7€Fà‡L‚L••c˜$ Ñ'Ô'Ñ(Ô(Ñ)Ô)Ð)Ø€Jr'   ÚmodelÚObjectModelÚreturnr   c                óJ   — 	 | j         j        S # t          $ r
 | j         cY S w xY w©N)Ú	_instanceÚ_proxiedÚAttributeError)r5   s    r%   Ú_get_bound_noder=   H   s;   € ðØŒÔ'Ð'øÝð ð ð ØŒÐÐÐðøøøs   ‚ Ž"¡"c                  ó~   — e Zd Zd„ Zd„ Zd„ Zdd„Zdd„Zedd
„¦   «         Z	d„ Z
edd„¦   «         Zedd„¦   «         ZdS )r6   c                ó   — d | _         d S r9   ©r:   ©Úselfs    r%   Ú__init__zObjectModel.__init__Q   s   € ØˆŒˆˆr'   c                óê  — g }t          | ¦  «        j        }d}t          |¦  «        dz   }t          |                      ¦   «         ¦  «        D ]‡}dt          |¦  «        z
  |z
  }t          j        |d|¬¦  «                             d¦  «        }|d         g}|dd …         D ]}	|                     d|z  |	z   ¦  «         Œ|                     |¦  «         Œˆ||d	d|z  z    	                    |¦  «        d
œz  S )Nz%(cname)s(%(fields)s)é   éP   é   )ÚindentÚwidthTr   ú z,
)ÚcnameÚfields)
ÚtypeÚ__name__ÚlenÚsortedr3   ÚpprintÚpformatÚ
splitlinesÚappendÚjoin)
rB   ÚresultrK   ÚstringÚ	alignmentÚfieldrI   ÚlinesÚinnerÚlines
             r%   Ú__repr__zObjectModel.__repr__T   s  € ØˆÝ�T‘
”
Ô#ˆØ(ˆÝ˜‘J”J ‘Nˆ	Ý˜DŸOšOÑ-Ô-Ñ.Ô.ð 	!ð 	!ˆEØ�˜U™œ‘O iÑ/ˆEÝ”N 5°¸%Ð@Ñ@Ô@×KÒKÈDÑQÔQˆEà˜1”X�JˆEØ˜a˜b˜bœ	ð 5ð 5�Ø—’˜S 9™_¨tÑ3Ñ4Ô4Ð4Ð4Ø�MŠM˜%Ñ Ô Ð Ð àØØ˜s Y™Ñ.×4Ò4°VÑ<Ô<ð
ð 
ñ 
ð 	
r'   c                ó   — || _         | S r9   r@   )rB   r2   s     r%   Ú__call__zObjectModel.__call__g   s   € Ø!ˆŒØˆr'   Nc                ó   —  | |¦  «        S r9   r*   )rB   r2   Úclss      r%   Ú__get__zObjectModel.__get__k   s   € ð ˆt�H‰~Œ~Ðr'   r7   Úboolc                ó.   — ||                       ¦   «         v S r9   )r3   ©rB   Únames     r%   Ú__contains__zObjectModel.__contains__u   s   € Ø�t—’Ñ(Ô(Ð(Ð(r'   ú	list[str]c                ó4   — d„ t          | ¦  «        D ¦   «         S )z;Get the attributes which are exported by this object model.c                ó`   — g | ]+}|                      t          ¦  «        ¯|t          d …         ‘Œ,S r9   )Ú
startswithÚIMPL_PREFIXÚLEN_OF_IMPL_PREFIX)r#   Úos     r%   r&   z*ObjectModel.attributes.<locals>.<listcomp>{   s5   € ÐWÐWÐW¨1¸Q¿\º\Í+Ñ=VÔ=VÐW�Õ$Ð%Ð%Ô&ÐWÐWÐWr'   )ÚdirrA   s    r%   r3   zObjectModel.attributesx   s   € ð XÐWµ°D±	´	ÐWÑWÔWÐWr'   c                óŠ   — ||                       ¦   «         v rt          | t          |z   ¦  «        S t          | j        |¬¦  «        ‚)zÈLook up the given *name* in the current model.

        It should return an AST or an interpreter object,
        but if the name is not found, then an AttributeInferenceError will be raised.
        ©ÚtargetÚ	attribute)r3   Úgetattrrl   r   r:   re   s     r%   ÚlookupzObjectModel.lookup}   sC   € ð �4—?’?Ñ$Ô$Ð$Ð$Ý˜4¥¨tÑ!3Ñ4Ô4Ð4Ý%¨T¬^ÀtÐLÑLÔLÐLr'   úbases.BoundMethodc                óº   — ddl m} |                     d¦  «        }t          ¦   «         j        d         |_        t          j        |t          | ¦  «        ¬¦  «        S )zECalling cls.__new__(type) on an object returns an instance of 'type'.r   ©Úbuilderz$def __new__(self, cls): return cls()Úobject©ÚproxyÚbound©	Úastroidry   Úextract_noder   Úbuiltins_moduler   r	   ÚBoundMethodr=   ©rB   ry   Únodes      r%   Úattr___new__zObjectModel.attr___new__‡   sc   € ð 	$Ð#Ð#Ð#Ð#Ð#à")×"6Ò"6Ø6ñ#
ô #
ˆõ
 %Ñ&Ô&Ô6°xÔ@ˆŒåÔ  tµ?À4Ñ3HÔ3HÐIÑIÔIÐIr'   c                óº   — ddl m} |                     d¦  «        }t          ¦   «         j        d         |_        t          j        |t          | ¦  «        ¬¦  «        S )z-Calling cls.__init__() normally returns None.r   rx   z0def __init__(self, *args, **kwargs): return Nonerz   r{   r~   rƒ   s      r%   Úattr___init__zObjectModel.attr___init__•   se   € ð 	$Ð#Ð#Ð#Ð#Ð#ð
 #*×"6Ò"6ØBñ#
ô #
ˆõ
 %Ñ&Ô&Ô6°xÔ@ˆŒåÔ  tµ?À4Ñ3HÔ3HÐIÑIÔIÐIr'   r9   )r7   rc   )r7   rh   ©r7   rv   )rN   Ú
__module__Ú__qualname__rC   r]   r_   rb   rg   r   r3   ru   Úpropertyr…   r‡   r*   r'   r%   r6   r6   P   sé   € € € € € ðð ð ð
ð 
ð 
ð&ð ð ðð ð ð ð)ð )ð )ð )ð ðXð Xð Xñ „YðXðMð Mð Mð ðJð Jð Jñ „XðJð ðJð Jð Jñ „XðJð Jð Jr'   c                  óð   — e Zd Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         ZdS )ÚModuleModelc                ó\   — t          ¦   «         j        }|j                             d¦  «        S )NÚ__dict__)r   r�   Úspecial_attributesru   )rB   Úbuiltins_ast_modules     r%   Ú	_builtinszModuleModel._builtins¨   s(   € Ý,Ñ.Ô.Ô>ÐØ"Ô5×<Ò<¸ZÑHÔHÐHr'   c                ó*   — |                       ¦   «         S r9   )r’   rA   s    r%   Úattr_builtinszModuleModel.attr_builtins¬   s   € à�~Š~ÑÔÐr'   c                óÚ   ‡ — ‰ j         j        st          ‰ j         d¬¦  «        ‚ˆ fd„‰ j         j        D ¦   «         }t	          j        ‰ j         ¬¦  «        }|                     |¦  «         |S )NÚ__path__rq   c                ó®   •— g | ]Q}t          j        |                     d ¦  «        s|nt          j                             |¦  «        ‰j        ¬¦  «        ‘ŒRS )z__init__.pyr   )r   r"   ÚendswithÚosÚpathÚdirnamer:   )r#   rš   rB   s     €r%   r&   z-ModuleModel.attr___path__.<locals>.<listcomp>µ   si   ø€ ð 
ð 
ð 
ð õ Ôà $§¢¨mÑ <Ô <ÐW�D�DÅ"Ä'Ç/Â/ÐRVÑBWÔBWà”~ð	ñ ô ð
ð 
ð 
r'   ©r   )r:   Úpackager   rš   r   ÚListr0   )rB   Ú	path_objsÚ	containers   `  r%   Úattr___path__zModuleModel.attr___path__°   s†   ø€ àŒ~Ô%ð 	WÝ)°´È:ÐVÑVÔVÐVð
ð 
ð 
ð 
ð œÔ+ð
ñ 
ô 
ˆ	õ !Ô%¨T¬^Ð<Ñ<Ô<ˆ	Ø×Ò˜9Ñ%Ô%Ð%àÐr'   c                óL   — t          j        | j        j        | j        ¬¦  «        S ©Nr   ©r   r"   r:   rf   rA   s    r%   Úattr___name__zModuleModel.attr___name__Ä   ó   € åÔ!¨¬Ô(;ÀDÄNÐSÑSÔSÐSr'   c                ój   — t          j        t          | j        j        dd ¦  «        | j        ¬¦  «        S ©Nr    r   ©r   r"   rt   r:   Údoc_noderA   s    r%   Úattr___doc__zModuleModel.attr___doc__È   ó5   € åÔ!Ý˜$œ.Ô1°7¸DÑAÔAØ”>ð
ñ 
ô 
ð 	
r'   c                óL   — t          j        | j        j        | j        ¬¦  «        S r£   )r   r"   r:   ÚfilerA   s    r%   Úattr___file__zModuleModel.attr___file__Ï   r¦   r'   c                ó@   — t          | j        | j        j        ¦  «        S r9   )r4   r:   ÚglobalsrA   s    r%   Úattr___dict__zModuleModel.attr___dict__Ó   s   € å˜DœN¨D¬NÔ,BÑCÔCÐCr'   c                ón   — | j         j        sd}n| j         j        }t          j        || j         ¬¦  «        S )NÚ r   )r:   r�   rf   r   r"   )rB   r    s     r%   Úattr___package__zModuleModel.attr___package__×   s8   € àŒ~Ô%ð 	(ØˆEˆEà”NÔ'ˆEåÔ!¨°d´nÐEÑEÔEÐEr'   c                ó(   — t          j        ¦   «         S r9   ©r   ÚUnknownrA   s    r%   Úattr___spec__zModuleModel.attr___spec__ä   ó   € õ Ô#Ñ%Ô%Ð%r'   c                ó(   — t          j        ¦   «         S r9   r·   rA   s    r%   Úattr___loader__zModuleModel.attr___loader__é   rº   r'   c                ó(   — t          j        ¦   «         S r9   r·   rA   s    r%   Úattr___cached__zModuleModel.attr___cached__î   rº   r'   N)rN   r‰   rŠ   r’   r‹   r”   r¡   r¥   r«   r¯   r²   rµ   r¹   r¼   r¾   r*   r'   r%   r�   r�   §   s@  € € € € € ðIð Ið Ið ð ð  ñ „Xð ð ðð ñ „Xðð& ðTð Tñ „XðTð ð
ð 
ñ „Xð
ð ðTð Tñ „XðTð ðDð Dñ „XðDð ðFð Fñ „XðFð ð&ð &ñ „Xð&ð ð&ð &ñ „Xð&ð ð&ð &ñ „Xð&ð &ð &r'   r�   c                  ó:  — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	e	Z
ed„ ¦   «         Zed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         ZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZ eZ!dS )ÚFunctionModelc                óL   — t          j        | j        j        | j        ¬¦  «        S r£   r¤   rA   s    r%   r¥   zFunctionModel.attr___name__õ   r¦   r'   c                ój   — t          j        t          | j        j        dd ¦  «        | j        ¬¦  «        S r¨   r©   rA   s    r%   r«   zFunctionModel.attr___doc__ù   r¬   r'   c                óf   — t          j        | j                             ¦   «         | j        ¬¦  «        S r£   ©r   r"   r:   ÚqnamerA   s    r%   Úattr___qualname__zFunctionModel.attr___qualname__   s(   € åÔ!¨¬×(<Ò(<Ñ(>Ô(>ÀtÄ~ÐVÑVÔVÐVr'   c                óÀ   — | j         }|j        j        st          j        d |¬¦  «        S t          j        |¬¦  «        }|                     |j        j        ¦  «         |S )Nr   rœ   )r:   ÚargsÚdefaultsr   r"   ÚTupler0   )rB   ÚfuncÚdefaults_objs      r%   Úattr___defaults__zFunctionModel.attr___defaults__  s^   € àŒ~ˆØŒyÔ!ð 	?ÝÔ%¨D¸Ð>Ñ>Ô>Ð>å#Ô)°Ð6Ñ6Ô6ˆØ×Ò˜dœiÔ0Ñ1Ô1Ð1ØÐr'   c                ó„  ‡— t          j        | j        | j        j        | j        j        | j        j        | j        j        ¬¦  «        Š| j        j        sd }n| j        j        }| j        j        }t          j
        t          |j        pg |j        ¦  «        t          |j        |j        ¦  «        t          |j        pg |j        ¦  «        ¦  «        }d„ |D ¦   «         }|j        r|j        ||j        <   |j        r|j        ||j        <   |r||d<   ˆfd„ |j        ¦   «         D ¦   «         }‰                     |¦  «         ‰S )Nr   c                ó(   — i | ]\  }}|¯|j         |“ŒS r*   )rf   )r#   ÚargÚ
annotations      r%   ú
<dictcomp>z6FunctionModel.attr___annotations__.<locals>.<dictcomp>$  s5   € ð 
ð 
ð 
Ù%6 c¨:Èjð
ØŒH�jð
ð 
ð 
r'   r7   c                óF   •— g | ]\  }}t          j        |‰¬ ¦  «        |f‘ŒS )rœ   r!   )r#   Úkeyr    r$   s      €r%   r&   z6FunctionModel.attr___annotations__.<locals>.<listcomp>.  sB   ø€ ð 
ð 
ð 
á��eõ Ô ¨CÐ0Ñ0Ô0°%Ð8ð
ð 
ð 
r'   )r   r,   r:   r   r   r   r   ÚreturnsrÈ   Ú	itertoolsÚchainr1   r   Ú
kwonlyargsÚkwonlyargs_annotationsÚposonlyargsÚposonlyargs_annotationsÚvarargannotationÚvarargÚkwargannotationÚkwargÚitemsr0   )rB   rÕ   rÈ   Úpair_annotationsr   rà   r$   s         @r%   Úattr___annotations__z"FunctionModel.attr___annotations__  sm  ø€ åÔØ”>Ø”>Ô(Ø”~Ô0Ø”~Ô0Øœ>Ô8ð
ñ 
ô 
ˆð Œ~Ô%ð 	-ØˆGˆGà”nÔ,ˆGàŒ~Ô"ˆÝ$œ?Ý�”	�˜R Ô!1Ñ2Ô2Ý�” Ô!<Ñ=Ô=Ý�Ô Ð& B¨Ô(DÑEÔEñ
ô 
Ðð
ð 
Ø:Jð
ñ 
ô 
ˆð Ô ð 	=Ø'+Ô'<ˆK˜œÑ$ØÔð 	;Ø&*Ô&:ˆK˜œ
Ñ#Øð 	,Ø$+ˆK˜Ñ!ð
ð 
ð 
ð 
à 1 Ô 1Ñ 3Ô 3ð
ñ 
ô 
ˆð
 	�Š�UÑÔÐØˆ
r'   c                óŽ   — t          j        | j        | j        j        | j        j        | j        j        | j        j        ¬¦  «        S ©Nr   ©r   r,   r:   r   r   r   r   rA   s    r%   r²   zFunctionModel.attr___dict__6  óA   € åÔ Ø”>Ø”>Ô(Ø”~Ô0Ø”~Ô0Øœ>Ô8ð
ñ 
ô 
ð 	
r'   c                óJ  — d„ }| j         j        }t          j        | j         | j         j        | j         j        | j         j        | j         j        ¬¦  «        }t           |||¦  «        ¦  «        }| 	                    t          |                     ¦   «         ¦  «        ¦  «         |S )Nc              3  ó¸   K  — | j         D ]O}	 |                      |j        ¦  «        }n# t          $ r Y Œ*w xY wt	          j        |j        |¬¦  «        }||fV — ŒPd S ©Nrœ   )rØ   Údefault_valuerf   r   r   r"   )rÈ   r   rÐ   Údefaultrf   s        r%   Ú_default_argsz8FunctionModel.attr___kwdefaults__.<locals>._default_argsD  s‰   è è € Ø”ð $ð $�ðØ"×0Ò0°´Ñ:Ô:�G�GøÝ ð ð ð Ø�Hðøøøõ $Ô)¨#¬(¸6ÐBÑBÔB�Ø˜G�mÐ#Ð#Ð#Ð#ð$ð $s   �(¨
5´5r   )r:   rÈ   r   r,   r   r   r   r   Údictr0   r-   rà   )rB   rì   rÈ   r$   rÉ   s        r%   Úattr___kwdefaults__z!FunctionModel.attr___kwdefaults__B  s�   € ð	$ð 	$ð 	$ð Œ~Ô"ˆÝÔØ”>Ø”>Ô(Ø”~Ô0Ø”~Ô0Øœ>Ô8ð
ñ 
ô 
ˆõ ˜˜ d¨CÑ0Ô0Ñ1Ô1ˆà�Š•T˜(Ÿ.š.Ñ*Ô*Ñ+Ô+Ñ,Ô,Ð,Øˆ
r'   c                ó|   — t          j        | j                             ¦   «                              ¦   «         ¦  «        S r9   ©r   r"   r:   ÚrootrÅ   rA   s    r%   Úattr___module__zFunctionModel.attr___module__[  ó-   € åÔ! $¤.×"5Ò"5Ñ"7Ô"7×"=Ò"=Ñ"?Ô"?Ñ@Ô@Ð@r'   c                ót   ‡— | j         Š G ˆfd„dt          j        ¦  «        } || j         | j         ¬¦  «        S )Nc                  óF   •— e Zd ZdZdd„Z	 ddˆ fd„Zeˆ fd„¦   «         ZdS )ú9FunctionModel.attr___get__.<locals>.DescriptorBoundMethodz_Bound method which knows how to understand calling descriptor
            binding.
            r7   ú
Literal[0]c                ó   — dS ©Nr   r*   rA   s    r%   Úimplicit_parameterszMFunctionModel.attr___get__.<locals>.DescriptorBoundMethod.implicit_parametersh  s	   € ð �qr'   NÚcallerú SuccessfulInferenceResult | NoneÚcontextúInferenceContext | NoneúIterator[bases.BoundMethod]c              3  ó4  •K  — t          |j        ¦  «        dk    st          |j        ¦  «        dk     rt          d| |¬¦  «        ‚t          |¦  «        }	 t	          |j        d                              |¬¦  «        ¦  «        }n/# t          $ r"}t          ||j        d         ¬¦  «        |‚d }~ww xY wt          |t          j	        ¦  «        rt          d| |¬¦  «        ‚t          ‰t          j        ¦  «        r‰V — d S ‰                     ‰j        ‰j        ‰j        ‰j        ‰j        ‰j        ¬	¦  «        }|                     ‰j        ‰j        ‰j        ‰j        ‰j        ¬
¦  «         t          j        |¦  «        }t          j        ||¬¦  «        V — d S )NrG   rE   z(Invalid arguments for descriptor binding©rr   rý   r   ©rý   )rý   r„   zInvalid class inferred©rf   r   r   r   r   r   )rª   r{   )rO   rÈ   r   r   ÚnextÚinferÚStopIterationÚ
isinstancer   ÚUninferableBaser	   r‚   Ú	__class__rf   r   r   r   r   r   r0   ÚbodyÚ
decoratorsrÕ   rª   ÚUnboundMethod)rB   rû   rý   ra   ÚeÚnew_funcr|   rË   s          €r%   Úinfer_call_resultzKFunctionModel.attr___get__.<locals>.DescriptorBoundMethod.infer_call_resultm  sË  øè è € õ
 �v”{Ñ#Ô# aÒ'Ð'­3¨v¬{Ñ+;Ô+;¸aÒ+?Ð+?Ý(ØBØ#Ø 'ðñ ô ð õ ' wÑ/Ô/�ðVÝ˜vœ{¨1œ~×3Ò3¸GÐ3ÑDÔDÑEÔE�C�CøÝ$ð Vð Vð VÝ(°¸v¼{È1¼~ÐNÑNÔNÐTUÐUøøøøðVøøøõ ˜c¥4Ô#7Ñ8Ô8ð Ý(Ø0¸Àwðñ ô ð õ ˜d¥EÔ$5Ñ6Ô6ð Ø�J�J�JØ�Fð  Ÿ>š>ØœØœ;Ø#œØœ;Ø#œØ#'Ô#6ð *ñ ô �ð ×!Ò!Ø”IØ”IØ”OØ”LØ!œ]ð "ñ ô ð õ Ô+¨HÑ5Ô5�ÝÔ'¨e¸3Ð?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?s   Á.B Â
B1ÂB,Â,B1c           
     óV  •— t          j        ‰j        j        dd¬¦  «        }‰j        j                             ¦   «         }|                     t          j        ddd|dd¬¦  «        ¦  «         ‰j        j                             ¦   «         }|                     ||g g g g g g ¬¦  «         |S )aˆ  Overwrite the underlying args to match those of the underlying func.

                Usually the underlying *func* is a function/method, as in:

                    def test(self):
                        pass

                This has only the *self* parameter but when we access test.__get__
                we get a new object which has two parameters, *self* and *type*.
                N©r   rÝ   rß   rM   r   r  )rÈ   rÚ   rÉ   rØ   Úkw_defaultsr   rÙ   rÛ   )	r   Ú	ArgumentsrÈ   r   ÚcopyrT   Ú
AssignNamerÚ   r0   )rB   Ú	argumentsÚpositional_or_keyword_paramsÚpositional_only_paramsrË   s       €r%   rÈ   z>FunctionModel.attr___get__.<locals>.DescriptorBoundMethod.args¡  sÕ   ø€ õ $Ô-Øœ9Ô+°DÀðñ ô �	ð 04¬y¬~×/BÒ/BÑ/DÔ/DÐ,Ø,×3Ò3ÝÔ&Ø#Ø Ø#$Ø(Ø#'Ø'+ðñ ô ñ	ô 	ð 	ð *.¬Ô)>×)CÒ)CÑ)EÔ)EÐ&à×"Ò"Ø5Ø 6ØØ!Ø "Ø "Ø+-Ø,.ð #ñ 	ô 	ð 	ð !Ð r'   )r7   r÷   r9   )rû   rü   rý   rþ   r7   rÿ   )rN   r‰   rŠ   Ú__doc__rú   r  r‹   rÈ   ©rË   s   €r%   ÚDescriptorBoundMethodrö   c  sˆ   ø€ € € € € ðð ðð ð ð ð 48ð2@ð 2@ð 2@ð 2@ð 2@ð 2@ð 2@ðh ð(!ð (!ð (!ð (!ñ ŒXð(!ð (!ð (!r'   r  r{   )r:   r	   r‚   )rB   r  rË   s     @r%   Úattr___get__zFunctionModel.attr___get___  sh   ø€ àŒ~ˆðg	!ð g	!ð g	!ð g	!ð g	!ð g	!ð g	!¥EÔ$5ñ g	!ô g	!ð g	!ðR %Ð$¨4¬>ÀÄÐPÑPÔPÐPr'   c                ó(   — t          j        ¦   «         S r9   r·   rA   s    r%   Úattr___ne__zFunctionModel.attr___ne__Ï  s   € åÔ#Ñ%Ô%Ð%r'   N)"rN   r‰   rŠ   r‹   r¥   r«   rÆ   rÍ   râ   r²   Úattr___globals__rî   rò   r  r  Úattr___subclasshook__Úattr___str__Úattr___sizeof__Úattr___setattr___Úattr___repr__Úattr___reduce__Úattr___reduce_ex__Úattr___lt__Úattr___eq__Úattr___gt__Úattr___format__Úattr___delattr___Úattr___getattribute__Úattr___hash__Úattr___dir__Úattr___call__Úattr___class__Úattr___closure__Úattr___code__r*   r'   r%   rÀ   rÀ   ô   s˜  € € € € € ØðTð Tñ „XðTð ð
ð 
ñ „Xð
ð ðWð Wñ „XðWð ðð ñ „Xðð ð%ð %ñ „Xð%ðN ð
ð 
ñ „Xð
ð %Ðàðð ñ „Xðð0 ðAð Añ „XðAð ðlQð lQñ „XðlQð^ ð&ð &ñ „Xð&ð (ÐØ€LØ!€OØ#ÐØ€MØ!€OØ$ÐØ€KØ€KØ€KØ!€OØ#ÐØ'ÐØ€MØ€LØ€MØ €NØ"ÐØ€M€M€Mr'   rÀ   c                  ó  ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zˆ xZS )Ú
ClassModelc                ón   •— t          ¦   «         | _        t          ¦   «                              ¦   «          d S r9   )r   rý   ÚsuperrC   )rB   r	  s    €r%   rC   zClassModel.__init__é  s,   ø€ å'Ñ)Ô)ˆŒå‰Œ×ÒÑÔÐÐÐr'   c                ó|   — t          j        | j                             ¦   «                              ¦   «         ¦  «        S r9   rð   rA   s    r%   rò   zClassModel.attr___module__ï  ró   r'   c                ó>   — t          j        | j        j        ¦  «        S r9   r¤   rA   s    r%   r¥   zClassModel.attr___name__ó  s   € åÔ! $¤.Ô"5Ñ6Ô6Ð6r'   c                óX   — t          j        | j                             ¦   «         ¦  «        S r9   rÄ   rA   s    r%   rÆ   zClassModel.attr___qualname__÷  s!   € åÔ! $¤.×"6Ò"6Ñ"8Ô"8Ñ9Ô9Ð9r'   c                ó\   — t          j        t          | j        j        dd ¦  «        ¦  «        S ©Nr    r©   rA   s    r%   r«   zClassModel.attr___doc__û  ó$   € åÔ!¥'¨$¬.Ô*AÀ7ÈDÑ"QÔ"QÑRÔRÐRr'   c                óÚ   — | j         j        st          | j         d¬¦  «        ‚| j                              ¦   «         }t	          j        | j         ¬¦  «        }|                     |¦  «         |S )NÚ__mro__rq   rœ   )r:   Únewstyler   Úmror   rÊ   r0   )rB   r@  r$   s      r%   Úattr___mro__zClassModel.attr___mro__ÿ  sd   € àŒ~Ô&ð 	VÝ)°´È9ÐUÑUÔUÐUàŒn× Ò Ñ"Ô"ˆÝÔ ¨¬Ð7Ñ7Ô7ˆØ�Š�SÑÔÐØˆ
r'   c                óò   ‡— | j         j        st          | j         d¬¦  «        ‚| Š G ˆfd„dt          j        ¦  «        }| j                              ¦   «         }|j        d         d         } |||¬¦  «        S )Nr@  rq   c                  ó    •— e Zd Z	 d	d
ˆ fd„ZdS )ú+ClassModel.attr_mro.<locals>.MroBoundMethodNrû   rü   rý   rþ   r7   úIterator[node_classes.Tuple]c              3  ó   •K  — ‰j         V — d S r9   )rA  )rB   rû   rý   Ú
other_selfs      €r%   r  z=ClassModel.attr_mro.<locals>.MroBoundMethod.infer_call_result  s   øè è € ð
 !Ô-Ð-Ð-Ð-Ð-Ð-r'   r9   )rû   rü   rý   rþ   r7   rE  ©rN   r‰   rŠ   r  )rG  s   €r%   ÚMroBoundMethodrD    s=   ø€ € € € € ð 48ð.ð .ð .ð .ð .ð .ð .ð .ð .r'   rI  r   r{   )r:   r?  r   r	   r‚   Úimplicit_metaclassÚlocals)rB   rI  rJ  Ú
mro_methodrG  s       @r%   Úattr_mrozClassModel.attr_mro	  s    ø€ àŒ~Ô&ð 	RÝ)°´È5ÐQÑQÔQÐQàˆ
ð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.�UÔ.ñ 	.ô 	.ð 	.ð "œ^×>Ò>Ñ@Ô@ÐØ'Ô.¨uÔ5°aÔ8ˆ
Øˆ~ JÐ6HÐIÑIÔIÐIr'   c                óÂ   — t          j        ¦   «         }t          ¦   «         }t          | j                             |¦  «        ¦  «        }|                     |¬¦  «         |S )N©Úelts)r   rÊ   r   r-   r:   Ú_inferred_basesr0   )rB   r$   rý   rP  s       r%   Úattr___bases__zClassModel.attr___bases__  sQ   € åÔ Ñ"Ô"ˆÝ"Ñ$Ô$ˆÝ�D”N×2Ò2°7Ñ;Ô;Ñ<Ô<ˆØ�Š˜$ˆÑÔÐØˆ
r'   c                óB   — ddl m} |                     | j        ¦  «        S ©Nr   )Úhelpers©r   rU  Úobject_typer:   ©rB   rU  s     r%   r0  zClassModel.attr___class__&  ó,   € ð 	$Ð#Ð#Ð#Ð#Ð#à×"Ò" 4¤>Ñ2Ô2Ð2r'   c                ó  ‡ ‡‡— ‰ j         j        st          ‰ j         d¬¦  «        ‚‰ j                              ¦   «         Š‰ j                              ¦   «         }ˆˆ fd„|                     t          j        ¦  «        D ¦   «         }t          j	        ‰ j         ¬¦  «        Š‰ 
                    |¦  «          G ˆfd„dt          j        ¦  «        }‰ j                              ¦   «         }|j        d         d         } |||¬¦  «        S )	z¯Get the subclasses of the underlying class.

        This looks only in the current module for retrieving the subclasses,
        thus it might miss a couple of them.
        Ú__subclasses__rq   c                ób   •— g | ]+}|‰j         k    ¯|                     ‰‰j        ¬ ¦  «        ¯)|‘Œ,S )r  )r:   Úis_subtype_ofrý   )r#   ra   rÅ   rB   s     €€r%   r&   z2ClassModel.attr___subclasses__.<locals>.<listcomp>;  sJ   ø€ ð 
ð 
ð 
àØ�d”nÒ$Ð$¨×):Ò):¸5È$Ì,Ð):Ñ)WÔ)WÐ$ð à$Ð$Ð$r'   rœ   c                  ó    •— e Zd Z	 d	d
ˆ fd„ZdS )ú=ClassModel.attr___subclasses__.<locals>.SubclassesBoundMethodNrû   rü   rý   rþ   r7   úIterator[node_classes.List]c              3  ó   •K  — ‰V — d S r9   r*   ©rB   rû   rý   r$   s      €r%   r  zOClassModel.attr___subclasses__.<locals>.SubclassesBoundMethod.infer_call_resultE  ó   øè è € ð
 �	�	�	�	�	r'   r9   )rû   rü   rý   rþ   r7   r`  rH  ©r$   s   €r%   ÚSubclassesBoundMethodr_  D  ó=   ø€ € € € € ð 48ðð ð ð ð ð ð ð ð r'   re  r   r{   )r:   r?  r   rÅ   rñ   Únodes_of_classr
   ÚClassDefr   rž   r0   r	   r‚   rJ  rK  )rB   rñ   Úclassesre  rJ  Úsubclasses_methodr$   rÅ   s   `     @@r%   Úattr___subclasses__zClassModel.attr___subclasses__-  s:  øøø€ ð Œ~Ô&ð 	Ý)Ø”~Ð1Aðñ ô ð ð ”×$Ò$Ñ&Ô&ˆØŒ~×"Ò"Ñ$Ô$ˆð
ð 
ð 
ð 
ð 
à×*Ò*­5¬>Ñ:Ô:ð
ñ 
ô 
ˆõ Ô t¤~Ð6Ñ6Ô6ˆØ�Š�WÑÔÐð	ð 	ð 	ð 	ð 	ð 	ð 	¥EÔ$5ñ 	ô 	ð 	ð "œ^×>Ò>Ñ@Ô@ÐØ.Ô5Ð6FÔGÈÔJÐØ$Ð$Ð+<ÐDVÐWÑWÔWÐWr'   c                óŽ   — t          j        | j        | j        j        | j        j        | j        j        | j        j        ¬¦  «        S rä   rå   rA   s    r%   r²   zClassModel.attr___dict__P  ræ   r'   c                ó4   — | j                              ¦   «         S )z-Calling a class A() returns an instance of A.)r:   Úinstantiate_classrA   s    r%   r/  zClassModel.attr___call__Z  s   € ð Œ~×/Ò/Ñ1Ô1Ð1r'   )rN   r‰   rŠ   rC   r‹   rò   r¥   rÆ   r«   rA  rM  rR  r0  rk  r²   r/  Ú__classcell__©r	  s   @r%   r4  r4  è  sn  ø€ € € € € ðð ð ð ð ð ðAð Añ „XðAð ð7ð 7ñ „Xð7ð ð:ð :ñ „Xð:ð ðSð Sñ „XðSð ðð ñ „Xðð ðJð Jñ „XðJð( ðð ñ „Xðð ð3ð 3ñ „Xð3ð ð Xð  Xñ „Xð XðD ð
ð 
ñ „Xð
ð ð2ð 2ñ „Xð2ð 2ð 2ð 2ð 2r'   r4  c                  óf   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )Ú
SuperModelc                ó   — | j         j        S r9   )r:   Úmro_pointerrA   s    r%   Úattr___thisclass__zSuperModel.attr___thisclass__a  ó   € àŒ~Ô)Ð)r'   c                ó   — | j         j        S r9   )r:   Ú_self_classrA   s    r%   Úattr___self_class__zSuperModel.attr___self_class__e  rv  r'   c                ó   — | j         j        S r9   )r:   rM   rA   s    r%   Úattr___self__zSuperModel.attr___self__i  s   € àŒ~Ô"Ð"r'   c                ó   — | j         j        S r9   ©r:   r;   rA   s    r%   r0  zSuperModel.attr___class__m  ó   € àŒ~Ô&Ð&r'   N)rN   r‰   rŠ   r‹   ru  ry  r{  r0  r*   r'   r%   rr  rr  `  s~   € € € € € Øð*ð *ñ „Xð*ð ð*ð *ñ „Xð*ð ð#ð #ñ „Xð#ð ð'ð 'ñ „Xð'ð 'ð 'r'   rr  c                  ó\   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZeZeZeZ	dS )ÚUnboundMethodModelc                óB   — ddl m} |                     | j        ¦  «        S rT  rV  rX  s     r%   r0  z!UnboundMethodModel.attr___class__s  rY  r'   c                ó   — | j         j        S r9   r}  rA   s    r%   Úattr___func__z UnboundMethodModel.attr___func__z  r~  r'   c                ó8   — t          j        d | j        ¬¦  «        S r£   )r   r"   r:   rA   s    r%   r{  z UnboundMethodModel.attr___self__~  s   € åÔ!¨°T´^ÐDÑDÔDÐDr'   N)
rN   r‰   rŠ   r‹   r0  rƒ  r{  Úattr_im_funcÚattr_im_classÚattr_im_selfr*   r'   r%   r€  r€  r  sq   € € € € € Øð3ð 3ñ „Xð3ð ð'ð 'ñ „Xð'ð ðEð Eñ „XðEð !€LØ"€MØ €L€L€Lr'   r€  c                  óB   — e Zd ZdZedd„¦   «         Zedd„¦   «         ZdS )ÚContextManagerModelz¬Model for context managers.

    Based on 3.3.9 of the Data Model documentation:
    https://docs.python.org/3/reference/datamodel.html#with-statement-context-managers
    r7   rv   c                óº   — ddl m} |                     d¦  «        }t          ¦   «         j        d         |_        t          j        |t          | ¦  «        ¬¦  «        S )a.  Representation of the base implementation of __enter__.

        As per Python documentation:
        Enter the runtime context related to this object. The with statement
        will bind this method's return value to the target(s) specified in the
        as clause of the statement, if any.
        r   rx   zdef __enter__(self): ...rz   r{   r~   rƒ   s      r%   Úattr___enter__z"ContextManagerModel.attr___enter__Ž  s_   € ð 	$Ð#Ð#Ð#Ð#Ð#à")×"6Ò"6Ð7UÑ"VÔ"Vˆõ %Ñ&Ô&Ô6°xÔ@ˆŒåÔ  tµ?À4Ñ3HÔ3HÐIÑIÔIÐIr'   c                óº   — ddl m} |                     d¦  «        }t          ¦   «         j        d         |_        t          j        |t          | ¦  «        ¬¦  «        S )aL  Representation of the base implementation of __exit__.

        As per Python documentation:
        Exit the runtime context related to this object. The parameters describe the
        exception that caused the context to be exited. If the context was exited
        without an exception, all three arguments will be None.
        r   rx   z7def __exit__(self, exc_type, exc_value, traceback): ...rz   r{   r~   rƒ   s      r%   Úattr___exit__z!ContextManagerModel.attr___exit__   sc   € ð 	$Ð#Ð#Ð#Ð#Ð#à")×"6Ò"6ØIñ#
ô #
ˆõ
 %Ñ&Ô&Ô6°xÔ@ˆŒåÔ  tµ?À4Ñ3HÔ3HÐIÑIÔIÐIr'   Nrˆ   )rN   r‰   rŠ   r  r‹   r‹  r�  r*   r'   r%   r‰  r‰  ‡  sh   € € € € € ðð ð ðJð Jð Jñ „XðJð" ðJð Jð Jñ „XðJð Jð Jr'   r‰  c                  ó:   — e Zd Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚBoundMethodModelc                ó$   — | j         j        j        S r9   r}  rA   s    r%   rƒ  zBoundMethodModel.attr___func__¶  s   € àŒ~Ô&Ô/Ð/r'   c                ó   — | j         j        S r9   )r:   r}   rA   s    r%   r{  zBoundMethodModel.attr___self__º  s   € àŒ~Ô#Ð#r'   N)rN   r‰   rŠ   r‹   rƒ  r{  r*   r'   r%   r�  r�  µ  sH   € € € € € Øð0ð 0ñ „Xð0ð ð$ð $ñ „Xð$ð $ð $r'   r�  c                  óJ   ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zˆ xZS )ÚGeneratorModelc                ó2  •—  t          ¦   «         j        | g|¢R i |¤Ž}t          ¦   «         j        d         }|j                             ¦   «         D ]E\  }}|d         }|fd„}t          t          |¦  «        t          |z   t          |¦  «        ¦  «         ŒF|S )NÚ	generatorr   c                ó   — |S r9   r*   ©ra   Úmeths     r%   Úpatchedz'GeneratorModel.__new__.<locals>.patchedÇ  ó   € Ø�r'   )
r6  Ú__new__r   r�   rK  rà   ÚsetattrrM   rl   r‹   )
ra   rÈ   ÚkwargsÚretr•  rf   r/   Úmethodr™  r	  s
            €r%   r›  zGeneratorModel.__new__À  s®   ø€ à�e‰gŒgŒo˜cÐ3 DÐ3Ð3Ð3¨FÐ3Ð3ˆÝ"Ñ$Ô$Ô4°[ÔAˆ	Ø%Ô,×2Ò2Ñ4Ô4ð 	Fð 	F‰LˆD�&Ø˜A”YˆFà"(ð ð ð ð õ •D˜‘I”I�{¨TÑ1µ8¸GÑ3DÔ3DÑEÔEÐEÐEàˆ
r'   c                óV   — t          j        | j        j        j        | j        ¬¦  «        S r£   )r   r"   r:   r   rf   rA   s    r%   r¥   zGeneratorModel.attr___name__Î  s+   € åÔ!Ø”.Ô'Ô,°T´^ð
ñ 
ô 
ð 	
r'   c                ót   — t          j        t          | j        j        j        dd ¦  «        | j        ¬¦  «        S r¨   )r   r"   rt   r:   r   rª   rA   s    r%   r«   zGeneratorModel.attr___doc__Ô  s8   € åÔ!Ý˜$œ.Ô/Ô8¸'À4ÑHÔHØ”>ð
ñ 
ô 
ð 	
r'   )rN   r‰   rŠ   r›  r‹   r¥   r«   ro  rp  s   @r%   r“  r“  ¿  sn   ø€ € € € € ðð ð ð ð ð ð
ð 
ñ „Xð
ð
 ð
ð 
ñ „Xð
ð 
ð 
ð 
ð 
r'   r“  c                  ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚAsyncGeneratorModelc                ó~  •—  t          ¦   «         j        | g|¢R i |¤Ž}t          ¦   «         j        }|                     d¦  «        }|€|                     d¦  «        }|j                             ¦   «         D ]E\  }}|d         }|fd„}	t          t          |¦  «        t          |z   t          |	¦  «        ¦  «         ŒF|S )NÚasync_generatorr•  r   c                ó   — |S r9   r*   r—  s     r%   r™  z,AsyncGeneratorModel.__new__.<locals>.patchedé  rš  r'   )r6  r›  r   r�   ÚgetrK  rà   rœ  rM   rl   r‹   )ra   rÈ   r�  rž  Úastroid_builtinsr•  rf   r/   rŸ  r™  r	  s             €r%   r›  zAsyncGeneratorModel.__new__Ý  s×   ø€ à�e‰gŒgŒo˜cÐ3 DÐ3Ð3Ð3¨FÐ3Ð3ˆÝ)Ñ+Ô+Ô;ÐØ$×(Ò(Ð):Ñ;Ô;ˆ	ØÐà(×,Ò,¨[Ñ9Ô9ˆIà%Ô,×2Ò2Ñ4Ô4ð 	Fð 	F‰LˆD�&Ø˜A”YˆFà"(ð ð ð ð õ •D˜‘I”I�{¨TÑ1µ8¸GÑ3DÔ3DÑEÔEÐEÐEàˆ
r'   )rN   r‰   rŠ   r›  ro  rp  s   @r%   r£  r£  Ü  s8   ø€ € € € € ðð ð ð ð ð ð ð ð r'   r£  c                  óf   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚInstanceModelc                ó   — | j         j        S r9   r}  rA   s    r%   r0  zInstanceModel.attr___class__ò  r~  r'   c                ó|   — t          j        | j                             ¦   «                              ¦   «         ¦  «        S r9   rð   rA   s    r%   rò   zInstanceModel.attr___module__ö  ró   r'   c                ó\   — t          j        t          | j        j        dd ¦  «        ¦  «        S r;  r©   rA   s    r%   r«   zInstanceModel.attr___doc__ú  r<  r'   c                ó@   — t          | j        | j        j        ¦  «        S r9   )r4   r:   Úinstance_attrsrA   s    r%   r²   zInstanceModel.attr___dict__þ  s   € å˜DœN¨D¬NÔ,IÑJÔJÐJr'   N)rN   r‰   rŠ   r‹   r0  rò   r«   r²   r*   r'   r%   rª  rª  ñ  s‰   € € € € € Øð'ð 'ñ „Xð'ð ðAð Añ „XðAð ðSð Sñ „XðSð ðKð Kñ „XðKð Kð Kr'   rª  c                  ó<   — e Zd Zedd„¦   «         Zed„ ¦   «         ZdS )ÚExceptionInstanceModelr7   únodes.Tuplec                ó6   — t          j        | j        ¬¦  «        S ré   )r
   rÊ   r:   rA   s    r%   Ú	attr_argsz ExceptionInstanceModel.attr_args  s   € åŒ{ $¤.Ð1Ñ1Ô1Ð1r'   c                ó~   — t          ¦   «         j        }|t          j        j                 }|                     ¦   «         S r9   )r   r�   ÚtypesÚTracebackTyperN   rn  )rB   r‘   Útraceback_types      r%   Úattr___traceback__z)ExceptionInstanceModel.attr___traceback__  s3   € å,Ñ.Ô.Ô>ÐØ,­UÔ-@Ô-IÔJˆØ×/Ò/Ñ1Ô1Ð1r'   N)r7   r²  )rN   r‰   rŠ   r‹   r´  r¹  r*   r'   r%   r±  r±    sM   € € € € € Øð2ð 2ð 2ñ „Xð2ð ð2ð 2ñ „Xð2ð 2ð 2r'   r±  c                  ó$   — e Zd Zed„ ¦   «         ZdS )ÚSyntaxErrorInstanceModelc                ó*   — t          j        d¦  «        S ©Nr´   r!   rA   s    r%   Ú	attr_textz"SyntaxErrorInstanceModel.attr_text  ó   € åÔ! "Ñ%Ô%Ð%r'   N)rN   r‰   rŠ   r‹   r¾  r*   r'   r%   r»  r»    s-   € € € € € Øð&ð &ñ „Xð&ð &ð &r'   r»  c                  óT   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZeZdS )ÚOSErrorInstanceModelc                ó*   — t          j        d¦  «        S r½  r!   rA   s    r%   Úattr_filenamez"OSErrorInstanceModel.attr_filename  r¿  r'   c                ó*   — t          j        d¦  «        S rù   r!   rA   s    r%   Ú
attr_errnozOSErrorInstanceModel.attr_errno  s   € åÔ! !Ñ$Ô$Ð$r'   c                ó*   — t          j        d¦  «        S r½  r!   rA   s    r%   Úattr_strerrorz"OSErrorInstanceModel.attr_strerror!  r¿  r'   N)rN   r‰   rŠ   r‹   rÃ  rÅ  rÇ  Úattr_filename2r*   r'   r%   rÁ  rÁ    sd   € € € € € Øð&ð &ñ „Xð&ð ð%ð %ñ „Xð%ð ð&ð &ñ „Xð&ð #€N€N€Nr'   rÁ  c                  ó:   — e Zd Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚImportErrorInstanceModelc                ó*   — t          j        d¦  «        S r½  r!   rA   s    r%   Ú	attr_namez"ImportErrorInstanceModel.attr_name)  r¿  r'   c                ó*   — t          j        d¦  «        S r½  r!   rA   s    r%   Ú	attr_pathz"ImportErrorInstanceModel.attr_path-  r¿  r'   N)rN   r‰   rŠ   r‹   rÌ  rÎ  r*   r'   r%   rÊ  rÊ  (  sH   € € € € € Øð&ð &ñ „Xð&ð ð&ð &ñ „Xð&ð &ð &r'   rÊ  c                  ó$   — e Zd Zed„ ¦   «         ZdS )ÚUnicodeDecodeErrorInstanceModelc                ó*   — t          j        d¦  «        S )Nr'   r!   rA   s    r%   Úattr_objectz+UnicodeDecodeErrorInstanceModel.attr_object3  s   € åÔ! #Ñ&Ô&Ð&r'   N)rN   r‰   rŠ   r‹   rÒ  r*   r'   r%   rÐ  rÐ  2  s-   € € € € € Øð'ð 'ñ „Xð'ð 'ð 'r'   rÐ  zbuiltins.SyntaxErrorzbuiltins.ImportErrorzbuiltins.UnicodeDecodeErrorzbuiltins.OSErrorzbuiltins.BlockingIOErrorzbuiltins.BrokenPipeErrorzbuiltins.ChildProcessErrorzbuiltins.ConnectionAbortedErrorzbuiltins.ConnectionErrorzbuiltins.ConnectionRefusedErrorzbuiltins.ConnectionResetErrorzbuiltins.FileExistsErrorzbuiltins.FileNotFoundErrorzbuiltins.InterruptedErrorzbuiltins.IsADirectoryErrorzbuiltins.NotADirectoryErrorzbuiltins.PermissionError)zbuiltins.ProcessLookupErrorzbuiltins.TimeoutErrorc                  ól   — e Zd Zed„ ¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )Ú	DictModelc                ó   — | j         j        S r9   r}  rA   s    r%   r0  zDictModel.attr___class__Q  r~  r'   c                ó¶   ‡—  G ˆfd„dt           j        ¦  «        }t          | j        j                             |¦  «        d¦  «        } ||| j        ¬¦  «        S )z7Generate a bound method that can infer the given *obj*.c                  ó    •— e Zd Z	 d	d
ˆ fd„ZdS )ú@DictModel._generic_dict_attribute.<locals>.DictMethodBoundMethodNrû   rü   rý   rþ   r7   úIterator[InferenceResult]c              3  ó   •K  — ‰V — d S r9   r*   rb  s      €r%   r  zRDictModel._generic_dict_attribute.<locals>.DictMethodBoundMethod.infer_call_resultY  rc  r'   r9   ©rû   rü   rý   rþ   r7   rÙ  rH  rd  s   €r%   ÚDictMethodBoundMethodrØ  X  rf  r'   rÜ  Nr{   )r   r‚   r  r:   r;   Úigetattr)rB   r$   rf   rÜ  r˜  s    `   r%   Ú_generic_dict_attributez!DictModel._generic_dict_attributeU  sv   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	¥GÔ$7ñ 	ô 	ð 	õ �D”NÔ+×4Ò4°TÑ:Ô:¸DÑAÔAˆØ$Ð$¨4°t´~ÐFÑFÔFÐFr'   c                ón  — ddl m} g }t          j        | j        ¬¦  «        }| j        j        D ]F\  }}t          j        |¬¦  «        }|                     ||f¦  «         |                     |¦  «         ŒG|                     |¬¦  «         | 	                    |¦  «        }|  
                    |d¦  «        S )Nr   ©Úobjectsrœ   rO  rà   )r   rá  r   rž   r:   rà   rÊ   r0   rT   Ú	DictItemsrÞ  )rB   rá  Úelemsr$   rÔ   r    r+   Ú	items_objs           r%   Ú
attr_itemszDictModel.attr_itemsc  sÁ   € à#Ð#Ð#Ð#Ð#Ð#àˆÝÔ t¤~Ð6Ñ6Ô6ˆØœ.Ô.ð 	ð 	‰JˆC�ÝÔ%¨SÐ1Ñ1Ô1ˆDØ�MŠM˜3 ˜,Ñ'Ô'Ð'Ø�LŠL˜ÑÔÐÐØ�Š˜%ˆÑ Ô Ð à×%Ò% cÑ*Ô*ˆ	Ø×+Ò+¨I°wÑ?Ô?Ð?r'   c                óð   — ddl m} d„ | j        j        D ¦   «         }t	          j        | j        ¬¦  «        }|                     |¬¦  «         |                     |¦  «        }|                      |d¦  «        S )Nr   rà  c                ó   — g | ]\  }}|‘ŒS r*   r*   )r#   rÔ   Ú_s      r%   r&   z'DictModel.attr_keys.<locals>.<listcomp>v  s   € Ð9Ð9Ð9™˜˜a�Ð9Ð9Ð9r'   rœ   rO  r.   )	r   rá  r:   rà   r   rž   r0   ÚDictKeysrÞ  )rB   rá  r.   r$   Úkeys_objs        r%   Ú	attr_keyszDictModel.attr_keysr  s~   € à#Ð#Ð#Ð#Ð#Ð#à9Ð9 D¤NÔ$8Ð9Ñ9Ô9ˆÝÔ t¤~Ð6Ñ6Ô6ˆØ�Š˜$ˆÑÔÐà×#Ò# CÑ(Ô(ˆØ×+Ò+¨H°fÑ=Ô=Ð=r'   c                óî   — ddl m} d„ | j        j        D ¦   «         }t	          j        | j        ¬¦  «        }|                     |¦  «         |                     |¦  «        }|                      |d¦  «        S )Nr   rà  c                ó   — g | ]\  }}|‘ŒS r*   r*   )r#   rè  r    s      r%   r&   z)DictModel.attr_values.<locals>.<listcomp>�  s   € Ð?Ð?Ð?™J˜Q �%Ð?Ð?Ð?r'   rœ   r/   )	r   rá  r:   rà   r   rž   r0   Ú
DictValuesrÞ  )rB   rá  r/   r$   Ú
values_objs        r%   Úattr_valueszDictModel.attr_values}  s|   € à#Ð#Ð#Ð#Ð#Ð#à?Ð?¨$¬.Ô*>Ð?Ñ?Ô?ˆÝÔ t¤~Ð6Ñ6Ô6ˆØ�Š�VÑÔÐà×'Ò'¨Ñ,Ô,ˆ
Ø×+Ò+¨J¸ÑAÔAÐAr'   N)	rN   r‰   rŠ   r‹   r0  rÞ  rå  rë  rð  r*   r'   r%   rÔ  rÔ  P  s˜   € € € € € Øð'ð 'ñ „Xð'ðGð Gð Gð ð@ð @ñ „Xð@ð ð>ð >ñ „Xð>ð ðBð Bñ „XðBð Bð Br'   rÔ  c                  ó†   — e Zd ZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
dS )	ÚPropertyModelzModel for a builtin property.c           
     ó*  — t          j        || j        | j        j        | j        j        | j        j        | j        j        ¬¦  «        }t          j        |d d ¬¦  «        }|                     g g g g g g g g ¬¦  «         |                     |g ¬¦  «         |S )N©rf   r   r   r   r   r   r  )rÈ   rÉ   rØ   r  r   rÚ   rÛ   rÙ   ©rÈ   r
  )	r
   ÚFunctionDefr:   r   r   r   r   r  r0   )rB   rf   ÚfunctionrÈ   s       r%   Ú_init_functionzPropertyModel._init_functionŒ  s¬   € ÝÔ$ØØ”>Ø”>Ô(Ø”~Ô0Ø”~Ô0Øœ>Ô8ð
ñ 
ô 
ˆõ Œ h°tÀ4ÐHÑHÔHˆØ�ŠØØØØØØØ$&Ø#%ð 	ñ 		
ô 		
ð 		
ð 	×Ò˜t¨"ÐÑ-Ô-Ð-Øˆr'   c                ó  ‡— | j         Š G ˆfd„dt          j        ¦  «        } |d| j         | j         j        | j         j        | j         j        | j         j        ¬¦  «        }|                     ‰j        ‰j	        ¬¦  «         |S )Nc                  ó    •— e Zd Z	 d	d
ˆ fd„ZdS )ú5PropertyModel.attr_fget.<locals>.PropertyFuncAccessorNrû   rü   rý   rþ   r7   rÙ  c              3  ó¨   •K  — |r*t          |j        ¦  «        dk    rt          d| |¬¦  «        ‚‰j                             ||¬¦  «        E d {V —† d S )NrE   zfget() needs a single argumentr  ©rû   rý   )rO   rÈ   r   r÷  r  )rB   rû   rý   rË   s      €r%   r  zGPropertyModel.attr_fget.<locals>.PropertyFuncAccessor.infer_call_resultª  s‘   øè è € ð ð �c &¤+Ñ.Ô.°!Ò3Ð3Ý(Ø8ÀÈwðñ ô ð ð  œ=×:Ò:Ø!¨7ð ;ñ ô ð ð ð ð ð ð ð ð ð r'   r9   rÛ  rH  r  s   €r%   ÚPropertyFuncAccessorrû  ©  s=   ø€ € € € € ð 48ðð ð ð ð ð ð ð ð r'   rþ  Úfgetrô  rõ  )
r:   r
   rö  r   r   r   r   r0   rÈ   r
  )rB   rþ  Úproperty_accessorrË   s      @r%   Ú	attr_fgetzPropertyModel.attr_fget¥  s¨   ø€ àŒ~ˆð	ð 	ð 	ð 	ð 	ð 	ð 	¥5Ô#4ñ 	ô 	ð 	ð  1Ð0ØØ”>Ø”>Ô(Ø”~Ô0Ø”~Ô0Øœ>Ô8ð
ñ 
ô 
Ðð 	×"Ò"¨¬	¸¼	Ð"ÑBÔBÐBØ Ð r'   c                ób  ‡— | j         }dd„} ||¦  «        Š‰st          d|j        j        › �¦  «        ‚ G ˆfd„dt          j        ¦  «        } |d	| j         | j         j        | j         j        | j         j        | j         j	        ¬
¦  «        }| 
                    ‰j        ‰j        ¬¦  «         |S )NrË   r   r7   úastroid.FunctionDef | Nonec                óÖ   ‡ — ˆ fd„‰ j                              ¦   «         D ¦   «         D ]A}|                     ¦   «         D ]*}|                     ‰ j        j        dz   ¦  «        r|c c S Œ+ŒBdS )zÛ
            Given a property, find the corresponding setter function and returns it.

            :param func: property for which the setter has to be found
            :return: the setter function or None
            c                ó>   •— g | ]}|j         ‰j        j         k    ¯|‘ŒS r*   )rf   r÷  )r#   ÚtrË   s     €r%   r&   z@PropertyModel.attr_fset.<locals>.find_setter.<locals>.<listcomp>Ï  s1   ø€ ð ð ð Ø¸¼À4Ä=ÔCUÒ9UÐ9U�Ð9UÐ9UÐ9Ur'   z.setterN)r   Úget_childrenÚdecoratornamesr˜   r÷  rf   )rË   rr   Údec_names   `  r%   Úfind_setterz,PropertyModel.attr_fset.<locals>.find_setterÈ  sž   ø€ ðð ð ð Øœ;×3Ò3Ñ5Ô5ðñ ô ð &ð &�ð !'× 5Ò 5Ñ 7Ô 7ð &ð &�HØ×(Ò(¨¬Ô);¸iÑ)GÑHÔHð &Ø%˜˜˜˜˜ð&ð&ð �4r'   z&Unable to find the setter of property c                  ó    •— e Zd Z	 d	d
ˆ fd„ZdS )ú5PropertyModel.attr_fset.<locals>.PropertyFuncAccessorNrû   rü   rý   rþ   r7   rÙ  c              3  óž   •K  — |r*t          |j        ¦  «        dk    rt          d| |¬¦  «        ‚‰                     ||¬¦  «        E d {V —† d S )NrG   zfset() needs two argumentsr  rý  )rO   rÈ   r   r  )rB   rû   rý   Úfunc_setters      €r%   r  zGPropertyModel.attr_fset.<locals>.PropertyFuncAccessor.infer_call_resultÞ  sw   øè è € ð ð �c &¤+Ñ.Ô.°!Ò3Ð3Ý(Ø4¸TÈ7ðñ ô ð ð '×8Ò8ÀÐPWÐ8ÑXÔXÐXÐXÐXÐXÐXÐXÐXÐXÐXr'   r9   rÛ  rH  )r  s   €r%   rþ  r  Ý  sF   ø€ € € € € ð 48ð
Yð 
Yð 
Yð 
Yð 
Yð 
Yð 
Yð 
Yð 
Yr'   rþ  Úfsetrô  rõ  )rË   r   r7   r  )r:   r   r÷  rf   r
   rö  r   r   r   r   r0   rÈ   r
  )rB   rË   r
  rþ  r   r  s        @r%   Ú	attr_fsetzPropertyModel.attr_fsetÄ  s  ø€ àŒ~ˆð	ð 	ð 	ð 	ð "�k $Ñ'Ô'ˆØð 	Ý ØM¸¼Ô9KÐMÐMñô ð ð	Yð 	Yð 	Yð 	Yð 	Yð 	Yð 	Y¥5Ô#4ñ 	Yô 	Yð 	Yð 1Ð0ØØ”>Ø”>Ô(Ø”~Ô0Ø”~Ô0Øœ>Ô8ð
ñ 
ô 
Ðð 	×"Ò"¨Ô(8¸{Ô?OÐ"ÑPÔPÐPØ Ð r'   c                ó,   — |                       d¦  «        S )NÚsetter©rø  rA   s    r%   Úattr_setterzPropertyModel.attr_setterõ  ó   € à×"Ò" 8Ñ,Ô,Ð,r'   c                ó,   — |                       d¦  «        S )NÚdeleterr  rA   s    r%   Úattr_deleterzPropertyModel.attr_deleterù  s   € à×"Ò" 9Ñ-Ô-Ð-r'   c                ó,   — |                       d¦  «        S )NÚgetterr  rA   s    r%   Úattr_getterzPropertyModel.attr_getterý  r  r'   N)rN   r‰   rŠ   r  rø  r‹   r  r  r  r  r  r*   r'   r%   rò  rò  ‰  s±   € € € € € Ø'Ð'ðð ð ð2 ð!ð !ñ „Xð!ð< ð.!ð .!ñ „Xð.!ð` ð-ð -ñ „Xð-ð ð.ð .ñ „Xð.ð ð-ð -ñ „Xð-ð -ð -r'   rò  )r5   r6   r7   r   );r  Ú
__future__r   rÖ   r™   rQ   r¶  Úcollections.abcr   Ú	functoolsr   Útypingr   r   r   r   r	   r
   r   Úastroid.contextr   r   Úastroid.exceptionsr   r   r   Úastroid.managerr   Úastroid.nodesr   Úastroid.typingr   r   Úastroid.objectsr   rl   rO   rm   r4   r=   r6   r�   rÀ   r4  rr  r€  r‰  r�  r“  r£  rª  r±  r»  rÁ  rÊ  rÐ  ÚBUILTIN_EXCEPTIONSrÔ  rò  r*   r'   r%   ú<module>r'     sÂ  ðð
ð ð& #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à €€€Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ *Ð *Ð *Ð *Ð *Ð *Ø &Ð &Ð &Ð &Ð &Ð &Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ Eàð )Ø(Ð(Ð(Ð(Ð(Ð(à€Ø�S˜Ñ%Ô%Ð ðð ð ð.ð ð ð ðTJð TJð TJð TJð TJñ TJô TJð TJðnJ&ð J&ð J&ð J&ð J&�+ñ J&ô J&ð J&ðZq ð q ð q ð q ð q �Kñ q ô q ð q ðhu2ð u2ð u2ð u2ð u2�ñ u2ô u2ð u2ðp'ð 'ð 'ð 'ð '�ñ 'ô 'ð 'ð$!ð !ð !ð !ð !˜ñ !ô !ð !ð*+Jð +Jð +Jð +Jð +J˜+ñ +Jô +Jð +Jð\$ð $ð $ð $ð $�}ñ $ô $ð $ð
ð 
ð 
ð 
ð 
�]Ð$7ñ 
ô 
ð 
ð:ð ð ð ð ˜.ñ ô ð ð*Kð Kð Kð Kð K�Kñ Kô Kð Kð*	2ð 	2ð 	2ð 	2ð 	2˜]ñ 	2ô 	2ð 	2ð&ð &ð &ð &ð &Ð5ñ &ô &ð &ð#ð #ð #ð #ð #Ð1ñ #ô #ð #ð &ð &ð &ð &ð &Ð5ñ &ô &ð &ð'ð 'ð 'ð 'ð 'Ð&<ñ 'ô 'ð 'ðØÐ4ðàÐ4ðð "Ð#Bðð
 Ð,ðð Ð 4ðð Ð 4ðð !Ð"6ðð &Ð';ðð Ð 4ðð &Ð';ðð $Ð%9ðð Ð 4ðð !Ð"6ðð  Ð!5ðð  !Ð"6ð!ð" "Ð#7ð#ð$ Ð 4ð%ð& $8Ø1ð)ð ð Ð ð06Bð 6Bð 6Bð 6Bð 6B�ñ 6Bô 6Bð 6Bðrv-ð v-ð v-ð v-ð v-�Kñ v-ô v-ð v-ð v-ð v-r'   