§
    ŒŸjn,  ã                   óÌ  — d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ dd	lmZ dd
lmZmZmZ ddlmZ ddlmZmZ ddlmZmZ ddlmZ ddlmZm Z m!Z!  e"¦   «         Z# G d„ de¦  «        Z$ G d„ dee!¦  «        Z% G d„ de e%¦  «        Z& G d„ de¦  «        Z' G d„ dej(        ¦  «        Z) e¦   «         d„ ¦   «         Z*d„ Z+d„ Z, e¦   «         d„ ¦   «         Z-dS )z 
Used only for REPL Completion.
é    N)ÚPath)Úget_cached_code_lines)Úsettings)Úmemoize_method)Úcompiled)ÚFileIO)ÚNameWrapper)ÚValueSetÚValueWrapperÚ	NO_VALUES)ÚModuleValue)Úinference_state_function_cacheÚinference_state_method_cache)ÚALLOWED_GETITEM_TYPESÚget_api_type)Úto_stub)ÚCompiledContextÚCompiledModuleContextÚTreeContextMixinc                   ó–   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Z ee¬¦  «        d„ ¦   «         Z	e
fd„Zed„ ¦   «         Zd	„ Zd
„ Zd„ Zd„ Zd„ Zˆ xZS )ÚMixedObjecta»  
    A ``MixedObject`` is used in two ways:

    1. It uses the default logic of ``parser.python.tree`` objects,
    2. except for getattr calls and signatures. The names dicts are generated
       in a fashion like ``CompiledValue``.

    This combined logic makes it possible to provide more powerful REPL
    completion. It allows side effects that are not noticable with the default
    parser structure to still be completable.

    The biggest difference from CompiledValue to MixedObject is that we are
    generally dealing with Python code and not with C code. This will generate
    fewer special cases, because we in Python you don't have the same freedoms
    to modify the runtime.
    c                 óp   •— t          ¦   «                              |¦  «         || _        |j        | _        d S ©N)ÚsuperÚ__init__Úcompiled_valueÚaccess_handle)Úselfr   Ú
tree_valueÚ	__class__s      €új/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/inference/compiled/mixed.pyr   zMixedObject.__init__,   s4   ø€ Ý‰Œ×Ò˜Ñ$Ô$Ð$Ø,ˆÔØ+Ô9ˆÔÐÐó    c              /   óN   K  — t          | j        | j        | j        ¦  «        V — d S r   )ÚMixedObjectFilterÚinference_stater   Ú_wrapped_value)r   ÚargsÚkwargss      r!   Úget_filterszMixedObject.get_filters1   sC   è è € ÝØÔ  $Ô"5°tÔ7JñLô Lð 	Lð 	Lð 	Lð 	Lð 	Lr"   c                 ó4   — | j                              ¦   «         S r   )r   Úget_signatures©r   s    r!   r+   zMixedObject.get_signatures5   s   € ð Ô"×1Ò1Ñ3Ô3Ð3r"   )Údefaultc                 óf   — t          | j        ¦  «        }|s| j        }|                     |¦  «        S r   )r   r&   Ú
py__call__)r   Ú	argumentsÚvaluess      r!   r/   zMixedObject.py__call__:   s8   € õ ˜Ô,Ñ-Ô-ˆØð 	)ØÔ(ˆFØ× Ò  Ñ+Ô+Ð+r"   c                 óz   — |t           u r| j                             ¦   «         S | j                             |¦  «        S r   )Ú	_sentinelr   Úget_safe_value)r   r-   s     r!   r4   zMixedObject.get_safe_valueB   s9   € Ø•iÐÐØÔ&×5Ò5Ñ7Ô7Ð7àÔ&×5Ò5°gÑ>Ô>Ð>r"   c                 ó   — | j         j        S r   )r   Ú
array_typer,   s    r!   r6   zMixedObject.array_typeH   s   € àÔ"Ô-Ð-r"   c                 ó4   — | j                              ¦   «         S r   )r   Úget_key_valuesr,   s    r!   r8   zMixedObject.get_key_valuesL   s   € ØÔ"×1Ò1Ñ3Ô3Ð3r"   c                 óÂ   — | j         j        j        j        }t	          |¦  «        t
          v r| j                              |¦  «        S | j                             |¦  «        S r   )r   r   ÚaccessÚ_objÚtyper   Úpy__simple_getitem__r&   )r   ÚindexÚpython_objects      r!   r=   z MixedObject.py__simple_getitem__O   sU   € ØÔ+Ô9Ô@ÔEˆÝ�ÑÔÕ"7Ð7Ð7ØÔ&×;Ò;¸EÑBÔBÐBØÔ"×7Ò7¸Ñ>Ô>Ð>r"   c                 ó4   — | j                              ¦   «         S r   )r   Únegater,   s    r!   rA   zMixedObject.negateU   s   € ØÔ"×)Ò)Ñ+Ô+Ð+r"   c                 óL   — | j         €t          | ¦  «        S t          | ¦  «        S r   )Úparent_contextÚMixedModuleContextÚMixedContextr,   s    r!   Ú_as_contextzMixedObject._as_contextX   s'   € ØÔÐ&Ý% dÑ+Ô+Ð+Ý˜DÑ!Ô!Ð!r"   c                 óv   — dt          | ¦  «        j        ›d| j                             ¦   «         ›d| j        ›d�S )Nú<z: z; ú>)r<   Ú__name__r   Úget_reprr&   r,   s    r!   Ú__repr__zMixedObject.__repr__]   sD   € € å�‰JŒJÔÐÐØÔ×'Ò'Ñ)Ô)Ð)Ð)ØÔÐÐð
ð 	
r"   )rJ   Ú
__module__Ú__qualname__Ú__doc__r   r)   r+   r   r   r/   r3   r4   Úpropertyr6   r8   r=   rA   rF   rL   Ú__classcell__©r    s   @r!   r   r      s  ø€ € € € € ðð ð :ð :ð :ð :ð :ð
Lð Lð Lð4ð 4ð 4ð
 "Ð!¨)Ð4Ñ4Ô4ð,ð ,ñ 5Ô4ð,ð &/ð ?ð ?ð ?ð ?ð ð.ð .ñ „Xð.ð4ð 4ð 4ð?ð ?ð ?ð,ð ,ð ,ð"ð "ð "ð

ð 
ð 
ð 
ð 
ð 
ð 
r"   r   c                   ó$   — e Zd Zed„ ¦   «         ZdS )rE   c                 ó   — | j         j        S r   )Ú_valuer   r,   s    r!   r   zMixedContext.compiled_valuef   s   € àŒ{Ô)Ð)r"   N)rJ   rM   rN   rP   r   © r"   r!   rE   rE   e   s-   € € € € € Øð*ð *ñ „Xð*ð *ð *r"   rE   c                   ó   — e Zd ZdS )rD   N)rJ   rM   rN   rV   r"   r!   rD   rD   k   s   € € € € € Ø€Dr"   rD   c                   óN   ‡ — e Zd ZdZˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zˆ xZ	S )Ú	MixedNamezB
    The ``CompiledName._compiled_value`` is our MixedObject.
    c                 óX   •— t          ¦   «                              |¦  «         || _        d S r   )r   r   Ú_parent_tree_value)r   Úwrapped_nameÚparent_tree_valuer    s      €r!   r   zMixedName.__init__s   s)   ø€ Ý‰Œ×Ò˜Ñ&Ô&Ð&Ø"3ˆÔÐÐr"   c                 óp   — t          |                      ¦   «         ¦  «        }|sdS |d         j        j        S )N)r   r   r   )ÚlistÚinferÚnameÚ	start_pos)r   r1   s     r!   rb   zMixedName.start_posw   s3   € å�d—j’j‘l”lÑ#Ô#ˆØð 	à�4Ø�aŒyŒ~Ô'Ð'r"   c                 óz  ‡— | j                              ¦   «         Š| j        }|                     ¦   «         s|                     ¦   «         rI|                     | j        ¦  «        }‰                     ¦   «         rt          ˆfd„|D ¦   «         ¦  «        S | 	                    ¦   «         }t          | j        ‰|¦  «        S )Nc                 ó0   •— h | ]}t          ‰|¦  «        ’ŒS rV   ©r   )Ú.0Úvr   s     €r!   ú	<setcomp>z"MixedName.infer.<locals>.<setcomp>†   s#   ø€ Ð UÐ UÐ UÀA¥¨^¸QÑ!?Ô!?Ð UÐ UÐ Ur"   )Ú_wrapped_nameÚinfer_compiled_valuer[   Úis_instanceÚis_classÚpy__getattribute__Ústring_nameÚis_functionr
   Úget_root_contextÚ_createÚ_inference_state)r   r   Útree_valuesÚmodule_contextr   s       @r!   r`   zMixedName.infer   s¼   ø€ àÔ+×@Ò@ÑBÔBˆØÔ,ˆ
Ø×!Ò!Ñ#Ô#ð 	W z×':Ò':Ñ'<Ô'<ð 	WØ$×7Ò7¸Ô8HÑIÔIˆKØ×)Ò)Ñ+Ô+ð WÝÐ UÐ UÐ UÐ UÈÐ UÑ UÔ UÑVÔVÐVà#×4Ò4Ñ6Ô6ˆÝ�tÔ,¨n¸nÑMÔMÐMr"   )
rJ   rM   rN   rO   r   rP   rb   r   r`   rQ   rR   s   @r!   rY   rY   o   s   ø€ € € € € ðð ð4ð 4ð 4ð 4ð 4ð ð(ð (ñ „Xð(ð ð	Nð 	Nñ „^ð	Nð 	Nð 	Nð 	Nð 	Nr"   rY   c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )r$   c                 óZ   •— t          ¦   «                              ||¦  «         || _        d S r   )r   r   Ú_tree_value)r   r%   r   r   r    s       €r!   r   zMixedObjectFilter.__init__�   s+   ø€ Ý‰Œ×Ò˜¨.Ñ9Ô9Ð9Ø%ˆÔÐÐr"   c                 ó\   •— t           t          ¦   «         j        |i |¤Ž| j        ¦  «        S r   )rY   r   Ú_create_namerw   )r   r'   r(   r    s      €r!   ry   zMixedObjectFilter._create_name‘   s4   ø€ ÝØ �E‰GŒGÔ  $Ð1¨&Ð1Ð1ØÔñ
ô 
ð 	
r"   )rJ   rM   rN   r   ry   rQ   rR   s   @r!   r$   r$   Œ   sQ   ø€ € € € € ð&ð &ð &ð &ð &ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r"   r$   c                 ó€   — |                       |dt          j        t          j        ¬¦  «                             ¦   «         S )NT)ÚpathÚcacheÚ
diff_cacheÚ
cache_path)Úparser   Úfast_parserÚcache_directoryÚget_root_node)r%   r{   s     r!   Ú_load_modulerƒ   ˜   s<   € à× Ò ØØÝÔ'ÝÔ+ð	 !ñ ô ÷
 ‚m�o„oðr"   c                 ó¤  — 	 t          j        | ¦  «        } n# t          $ r Y nw xY wt          j        | ¦  «        sxt          j        | ¦  «        sdt          j        | ¦  «        sPt          j        | ¦  «        s<t          j        | ¦  «        s(t          j        | ¦  «        st          j	        | ¦  «        r| S 	 | j
        S # t          $ r t          ‚w xY w)z9Check if inspect.getfile has a chance to find the source.)ÚinspectÚunwrapÚ
ValueErrorÚismoduleÚisclassÚismethodÚ
isfunctionÚistracebackÚisframeÚiscoder    ÚAttributeErrorÚ	TypeError)r?   s    r!   Ú_get_object_to_checkr‘   ¢   sú   € ðÝœ }Ñ5Ô5ˆˆøÝð ð ð àˆðøøøõ 	Ô˜Ñ'Ô'ð ÝŒ˜}Ñ-Ô-ðåÔ Ñ.Ô.ðõ Ô! -Ñ0Ô0ðõ Ô" =Ñ1Ô1ð	õ
 Œ˜}Ñ-Ô-ðõ Œ~˜mÑ,Ô,ðð ÐðØÔ&Ð&øÝð ð ð Ýˆðøøøs   ‚ —
$£$Â6B= Â=Cc                 óB  ‡— |}	 t          |¦  «        }t          j        |¦  «        }n# t          t          f$ r Y d S w xY w|€d nt          |¦  «        }	 |�|                     ¦   «         sd S n# t          $ r Y d S w xY wt          |¦  «        }t          | |¦  «        }t          j	        |¦  «        rt          | j        |¦  «        }||||fS 	 |j        }n# t          $ r Y d S w xY w|dk    rd S |                     ¦   «                              |g ¦  «        }d„ |D ¦   «         }|sd S 	 |j        }	|	j        Šˆfd„|D ¦   «         }
|
r|
}n# t          $ r Y nw xY wt          | j        |¦  «        }|d         j        }|j        dk    rt)          |¦  «        dk    rd S ||||fS )Nz<lambda>c                 óN   — g | ]"}|j         j        d v ¯|j         j        |k    ¯ |‘Œ#S ))ÚfuncdefÚclassdef)Úparentr<   ra   )rf   Úns     r!   ú
<listcomp>z*_find_syntax_node_name.<locals>.<listcomp>å   s@   € ð ð ð ØØŒ8Œ=Ð3Ð3Ð3¸¼¼ÈÒ8JÐ8Jð 	
Ø8JÐ8JÐ8Jr"   c                 ó6   •— g | ]}|j         d          ‰k    ¯|‘ŒS )r   )rb   )rf   ra   Úline_nrs     €r!   r˜   z*_find_syntax_node_name.<locals>.<listcomp>ö   s*   ø€ ÐMÐMÐM˜t°´¸qÔ0AÀWÒ0LÐ0L�dÐ0LÐ0LÐ0Lr"   éÿÿÿÿr”   Úinstance)r‘   r…   ÚgetsourcefileÚOSErrorr�   r   Úexistsr   rƒ   rˆ   r   ÚgrammarrJ   r�   Úget_used_namesÚgetÚ__code__Úco_firstlinenor–   r<   r   )r%   r?   Úoriginal_objectr{   Úfile_ioÚmodule_nodeÚ
code_linesÚname_strÚnamesÚcodeÚ
line_namesÚ	tree_noderš   s               @r!   Ú_find_syntax_node_namer®   ¹   sO  ø€ Ø#€OðÝ,¨]Ñ;Ô;ˆÝÔ$ ]Ñ3Ô3ˆˆøÝ•YÐð ð ð àˆtˆtðøøøð �<ˆ4ˆ4¥T¨$¡Z¤Z€Dð	Øˆ<˜tŸ{š{™}œ}ˆ<à�4ð øõ ð ð ð ð
 ˆtˆtðøøøõ �T‰lŒl€GÝ˜°Ñ5Ô5€KåÔ˜Ñ&Ô&ð =õ +¨?Ô+BÀDÑIÔIˆ
Ø˜K¨°*Ð<Ð<ðØ Ô)ˆˆøÝð ð ð àˆtˆtðøøøð �:ÒÐØˆtð ×&Ò&Ñ(Ô(×,Ò,¨X°rÑ:Ô:€Eðð Øðñ ô €Eð ð ØˆtðØÔ%ˆð
 Ô%ˆð NÐMÐMÐM uÐMÑMÔMˆ
ð ð 	ØˆEøøõ ð ð ð Øˆðøøøõ ' Ô'>ÀÑEÔE€Jð �b”	Ô €IØ„~˜Ò"Ð"¥|°OÑ'DÔ'DÈ
Ò'RÐ'Rð ˆtØ˜	 7¨JÐ6Ð6sB   …#) ©>½>ÁA. Á.
A<Á;A<ÃC Ã
C$Ã#C$Ä(E	 Å	
EÅEc           	      ó„  ‡— ‰j         j        j        }t          | |¦  «        }|€Vt	          |¦  «        t
          t          t          fv rt          ‰h¦  «        S t          ‰¦  «        }|st          ‰h¦  «        S �n,|\  }}}}	|�|j
        |k    rÂ‰                     ¦   «                              ¦   «         }
|
                     ¦   «         }t          |                     d¦  «        ¦  «        }t          | ||||	|
                     ¦   «         ¬¦  «        }|�)| j                             |t          |g¦  «        ¦  «         |                     ¦   «         }t          |                     |¦  «        h¦  «        }|j        dk    r(‰                     ¦   «         s|                     ¦   «         }t          ˆfd„|D ¦   «         ¦  «        S )Nú.)r¦   Ústring_namesr¨   Ú
is_packager•   c              3   ó:   •K  — | ]}t          ‰|¬ ¦  «        V — ŒdS ))r   Nre   )rf   r   r   s     €r!   ú	<genexpr>z_create.<locals>.<genexpr>2  sD   øè è € ð ð àõ 	�N¨zÐ:Ñ:Ô:ðð ð ð ð ð r"   )r   r:   r;   r®   r<   Údictr_   Útupler
   r   r­   rp   Ú	get_valueÚ
py__name__Úsplitr   r²   Úmodule_cacheÚaddÚ
as_contextÚcreate_valuerl   Úexecute_with_values)r%   r   rt   r?   Úresultrs   r§   r­   r¦   r¨   Úroot_compiled_valuera   r±   Úmodule_values    `            r!   rq   rq     sÜ  ø€ ð #Ô0Ô7Ô<€MÝ# O°]ÑCÔC€FØ€~å�ÑÔ¥4­­uÐ"5Ð5Ð5Ý˜^Ð,Ñ-Ô-Ð-å˜nÑ-Ô-ˆØð 	.Ý˜^Ð,Ñ-Ô-Ð-ñ	.ð 7=Ñ3ˆ�Y ¨àÐ! ^Ô%=ÀÒ%LÐ%LØ"0×"AÒ"AÑ"CÔ"C×"MÒ"MÑ"OÔ"OÐà&×1Ò1Ñ3Ô3ˆDÝ  §¢¨C¡¤Ñ1Ô1ˆLÝ&Ø ØØ)Ø%Ø.×9Ò9Ñ;Ô;ðñ ô ˆLð ÐØÔ,×0Ò0°½xÈÈÑ?WÔ?WÑXÔXÐXØ)×4Ò4Ñ6Ô6ˆNå × ;Ò ;¸IÑ FÔ FÐGÑHÔHˆØŒ>˜ZÒ'Ð'Ø!×*Ò*Ñ,Ô,ð @à)×=Ò=Ñ?Ô?�åð ð ð ð à%ðñ ô ñ ô ð r"   ).rO   r…   Úpathlibr   Újedi.parser_utilsr   Újedir   Ú
jedi.cacher   Újedi.inferencer   Újedi.file_ior   Újedi.inference.namesr	   Újedi.inference.base_valuer
   r   r   Újedi.inference.valuer   Újedi.inference.cacher   r   Újedi.inference.compiled.accessr   r   Ú!jedi.inference.gradual.conversionr   Újedi.inference.contextr   r   r   Úobjectr3   r   rE   rD   rY   ÚCompiledValueFilterr$   rƒ   r‘   r®   rq   rV   r"   r!   ú<module>rÑ      s»  ððð ð €€€Ø Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3à Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ ,Ð ,Ð ,Ð ,Ð ,Ð ,ð!ð !ð !ð !ð !ð !ð !ð !à NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ˆF‰HŒH€	ðG
ð G
ð G
ð G
ð G
�,ñ G
ô G
ð G
ðT*ð *ð *ð *ð *�?Ð$4ñ *ô *ð *ð	ð 	ð 	ð 	ð 	Ð.°ñ 	ô 	ð 	ðNð Nð Nð Nð N�ñ Nô Nð Nð:	
ð 	
ð 	
ð 	
ð 	
˜Ô4ñ 	
ô 	
ð 	
ð  ÐÑ!Ô!ðð ñ "Ô!ððð ð ð.O7ð O7ð O7ðd  ÐÑ!Ô!ð)ð )ñ "Ô!ð)ð )ð )r"   