§
    ŒŸjZ  ã                   ó  — 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 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 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#  G d„ d¦  «        Z$ ee¬¦  «        d„ ¦   «         Z% eg ¬¦  «        d„ ¦   «         Z&d„ Z'd„ Z(d„ Z) G d„ d¦  «        Z*	 	 d(d„Z+ e#j,        ¦   «         ed „ ¦   «         ¦   «         Z-	 d)d"„Z.d#„ Z/d*d$„Z0d%„ Z1d&„ Z2edfd'„Z3dS )+aå  
:mod:`jedi.inference.imports` is here to resolve import statements and return
the modules/classes/functions/whatever, which they stand for. However there's
not any actual importing done. This module is about finding modules in the
filesystem. This can be quite tricky sometimes, because Python imports are not
always that simple.

This module also supports import autocompletion, which means to complete
statements like ``from datetim`` (cursor at the end would return ``datetime``).
é    N)ÚPath)Útree)Údebug)Úsettings)ÚFolderIO)Úget_cached_code_lines)Úsys_path)Úhelpers)Úcompiled)Úanalysis)Úunite)Úinference_state_method_cache)Ú
ImportNameÚSubModuleName)ÚValueSetÚ	NO_VALUES)Úimport_module_decoratorÚcreate_stub_moduleÚparse_stub_module)ÚImplicitNSInfo)Úplugin_managerc                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚModuleCachec                 ó   — i | _         d S ©N©Ú_name_cache©Úselfs    úc/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/inference/imports.pyÚ__init__zModuleCache.__init__#   s   € ØˆÔÐÐó    c                 ó"   — |�|| j         |<   d S d S r   r   )r   Ústring_namesÚ	value_sets      r    ÚaddzModuleCache.add&   s#   € ØÐ#Ø-6ˆDÔ˜\Ñ*Ð*Ð*ð $Ð#r"   c                 ó6   — | j                              |¦  «        S r   )r   Úget)r   r$   s     r    r(   zModuleCache.get*   s   € ØÔ×#Ò# LÑ1Ô1Ð1r"   N)Ú__name__Ú
__module__Ú__qualname__r!   r&   r(   © r"   r    r   r   "   sA   € € € € € ðð ð ð7ð 7ð 7ð2ð 2ð 2ð 2ð 2r"   r   )Údefaultc                 ó   — |                       ¦   «         }t          ||¦  «        \  }}}}|rM|�K|                     || d¬¦  «        }|s1||fz   }t          | j        |||¦  «        }|                     ¦   «         }t          j        d|¦  «         |S )NF©Úname_contextÚanalysis_errorszafter import: %s)Úget_root_contextÚ_prepare_infer_importÚpy__getattribute__ÚImporterÚinference_stateÚfollowr   Údbg)	ÚcontextÚ	tree_nameÚmodule_contextÚfrom_import_nameÚimport_pathÚlevelÚvaluesÚpathÚimporters	            r    Úinfer_importrB   0   sµ   € à×-Ò-Ñ/Ô/€Nå˜n¨iÑ8Ô8ñ 1Ð�k 5¨&àð +àÐ'Ø×.Ò.Ø Ø$Ø %ð /ñ ô ˆFð ð +Ø"Ð&6Ð%8Ñ8�Ý# GÔ$;¸TÀ>ÐSXÑYÔY�Ø!ŸšÑ*Ô*�Ý	„IÐ  &Ñ)Ô)Ð)Ø€Mr"   c                 óp  ‡ ‡‡	— ‰                       ¦   «         }t          |‰¦  «        \  Š	}}}|sg S ‰	�lt          ˆ ˆ	fd„|D ¦   «         ¦  «        }|rt          ˆfd„|D ¦   «         ¦  «        s|S |‰	fz   }t	          ‰ j        |||¦  «        }|                     ¦   «         }t          d„ |D ¦   «         ¦  «        S )Nc                 ó@   •— g | ]}|                      ‰‰d ¬¦  «        ‘ŒS )Fr/   )Úgoto)Ú.0Úcr9   r<   s     €€r    ú
<listcomp>zgoto_import.<locals>.<listcomp>O   sG   ø€ ð 
ð 
ð 
ð
 ð	 �FŠFØ Ø$Ø %ð ñ ô ð
ð 
ð 
r"   c              3   ó*   •K  — | ]}|j         ‰u V — Œd S r   )r:   )rF   Únr:   s     €r    ú	<genexpr>zgoto_import.<locals>.<genexpr>W   s*   øè è € ÐEÐE¸!˜Qœ[¨IÐ5ÐEÐEÐEÐEÐEÐEr"   c              3   ó$   K  — | ]}|j         V — Œd S r   )Úname)rF   Úss     r    rK   zgoto_import.<locals>.<genexpr>]   s$   è è € Ð&Ð&˜!ˆqŒvÐ&Ð&Ð&Ð&Ð&Ð&r"   )r2   r3   r   Úanyr5   r6   r7   Úset)
r9   r:   r;   r=   r>   r?   Únamesr@   rA   r<   s
   ``       @r    Úgoto_importrR   F   s  øøø€ à×-Ò-Ñ/Ô/€Nå˜n¨iÑ8Ô8ñ 1Ð�k 5¨&àð Øˆ	àÐ#Ýð 
ð 
ð 
ð 
ð 
ð
 ð
ñ 
ô 
ñ ô ˆð ð 	�ÐEÐEÐEÐE¸uÐEÑEÔEÑEÔEð 	ØˆLàÐ.Ð0Ñ0ˆÝ˜GÔ3°T¸>È5ÑQÔQˆØ—’Ñ"Ô"ˆÝÐ&Ð&˜vÐ&Ñ&Ô&Ñ&Ô&Ð&r"   c                 ó¨  — |                      dd¦  «        }|                     |¦  «        }d }	 |                     ¦   «         }t          |¦  «        dz   t          |¦  «        k    r
|d         }|}n# t          $ r Y nw xY wt          | j        t          |¦  «        | |j        ¦  «        }|t          |¦  «        |j        | 	                    ¦   «         fS )NÚimport_nameÚimport_fromé   éÿÿÿÿ)
Úsearch_ancestorÚget_path_for_nameÚget_from_namesÚlenÚAttributeErrorr5   r6   Útupler>   r7   )r;   r:   Úimport_noder=   r<   Ú
from_namesrA   s          r    r3   r3   `   sè   € Ø×+Ò+¨M¸=ÑIÔI€KØ×/Ò/°	Ñ:Ô:€KØÐð
%Ø ×/Ò/Ñ1Ô1ˆ
õ
 ˆz‰?Œ?˜QÑ¥# kÑ"2Ô"2Ò2Ð2ð  +¨2œÐØ$ˆKøøõ ð ð ð àˆðøøøõ ˜Ô6½¸kÑ8JÔ8JØ&¨Ô(9ñ;ô ;€Hð �U ;Ñ/Ô/°Ô1BÀHÇOÂOÑDUÔDUÐUÐUs   ¯A1 Á1
A>Á=A>c                 óŠ   — t          |d¦  «        r| �t          j        | d||¦  «         d S t          j        d|z   ¦  «         d S )NÚparentzimport-errorzImportError without origin: )Úhasattrr   r&   r   Úwarning)ÚvaluerM   Úmessages      r    Ú
_add_errorrf   v   sR   € Ýˆt�XÑÔð @ 5Ð#4ÝŒ�U˜N¨D°'Ñ:Ô:Ð:Ð:Ð:åŒÐ4°wÑ>Ñ?Ô?Ð?Ð?Ð?r"   c                 óV  — t          |dz
  ¦  «        D ],}|}t          j                             |¦  «        }||k    r dS Œ-|}g }	 || k    r||fS t          j                             |¦  «        }|r6|                     d|¦  «         t          j                             |¦  «        }nd|fS Œf)z«
    In case the level is outside of the currently known package (something like
    import .....foo), we can still try our best to help the user for
    completions.
    rV   ©NNTr   N)ÚrangeÚosr@   ÚdirnameÚbasenameÚinsert)Úproject_pathÚ	directoryr>   ÚiÚoldÚdÚlevel_import_pathsÚdir_names           r    Ú_level_to_base_import_pathru   }   sÍ   € õ �5˜1‘9ÑÔð ð ˆØˆÝ”G—O’O IÑ.Ô.ˆ	Ø�)ÒÐØ�:�:ð ð 	€AØÐð#Ø�ÒÐØ% qÐ(Ð(Ý”7×#Ò# AÑ&Ô&ˆØð 	#Ø×%Ò% a¨Ñ2Ô2Ð2Ý”—’ Ñ"Ô"ˆAˆAà˜�?Ð"ð#r"   c                   óH   — e Zd Zd
d„Zed„ ¦   «         Zd„ Zd„ Zdd„Zdd	„Z	dS )r5   r   c                 ó²  — t          j        d|›d|›�¦  «         || _        || _        || _        d| _        d| _        |�r|                     ¦   «                              ¦   «         }|t          |¦  «        k    r6t          |¦  «        }|dk    r|d| dz   …         }|t          |¦  «        z   }n |                     ¦   «         }| j        j        j        }t          |¦  «        }|€|}nt          j                             |¦  «        }t#          |||¦  «        \  }	}
|
€d| _        n|
g| _        |	€|rt%          ||d         d¬	¦  «         n|	|z   }|| _        dS )
a  
        An implementation similar to ``__import__``. Use `follow`
        to actually follow the imports.

        *level* specifies whether to use absolute or relative imports. 0 (the
        default) means only perform absolute imports. Positive values for level
        indicate the number of parent directories to search relative to the
        directory of the module calling ``__import__()`` (see PEP 328 for the
        details).

        :param import_path: List of namespaces (strings or Names).
        zimport ú NTrV   Fr   z3Attempted relative import beyond top-level package.)re   )r   ÚspeedÚ_inference_stater>   Ú_module_contextÚ_fixed_sys_pathÚ_infer_possibleÚ	get_valueÚpy__package__r[   r]   Ú
py__file__Úprojectr@   Úlistrj   rk   ru   rf   r=   )r   r6   r=   r;   r>   Úbaser@   rn   ro   Úbase_import_pathÚbase_directorys              r    r!   zImporter.__init__™   s’  € õ 	Œˆ k k k°>°>ÐBÑCÔCÐCØ /ˆÔØˆŒ
Ø-ˆÔà#ˆÔØ#ˆÔØñ /	AØ!×+Ò+Ñ-Ô-×;Ò;Ñ=Ô=ˆDð �˜D™	œ	Ò!Ð!å˜T‘{”{�Ø˜1’9�9Ø  % ¨!¡ Ô,�DØ"¥U¨;Ñ%7Ô%7Ñ7��à%×0Ò0Ñ2Ô2�Ø#Ô4Ô<ÔA�Ý" ;Ñ/Ô/�Ø�<ð
 !-�I�Iå "¤§¢°Ñ 5Ô 5�Iå3MØ  )¨Uñ4ô 4Ñ0Ð  .ð "Ð)ð ,1�DÔ(Ð(à,:Ð+;�DÔ(à#Ð+Ø"ð Ý"Ø*¨K¸¬NØ$Yðñ ô ð øð
 #3°[Ñ"@�KØ&ˆÔÐÐr"   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )z:Returns the import path as pure strings instead of `Name`.c              3   ó\   K  — | ]'}t          |t          j        ¦  «        r|j        n|V — Œ(d S r   ©Ú
isinstancer   ÚNamerd   )rF   rM   s     r    rK   z,Importer._str_import_path.<locals>.<genexpr>â   sM   è è € ð 
ð 
àõ % T­4¬9Ñ5Ô5Ð?ˆDŒJˆJ¸4ð
ð 
ð 
ð 
ð 
ð 
r"   )r]   r=   r   s    r    Ú_str_import_pathzImporter._str_import_pathß   s5   € õ ð 
ð 
àÔ(ð
ñ 
ô 
ñ 
ô 
ð 	
r"   c                 óž   — | j         �| j         S | j                             | ¬¦  «        d„ t          j        | j        ¦  «        D ¦   «         z   S )N)Úadd_init_pathsc                 ó,   — g | ]}t          |¦  «        ‘ŒS r,   )Ústr)rF   Úps     r    rH   z9Importer._sys_path_with_modifications.<locals>.<listcomp>ð   s+   € ð ð ð Ø•�A‘”ðð ð r"   )r|   rz   Úget_sys_pathr	   Úcheck_sys_path_modificationsr{   )r   Úis_completions     r    Ú_sys_path_with_modificationsz%Importer._sys_path_with_modificationsç   sd   € ØÔÐ+ØÔ'Ð'ð Ô!×.Ò.À-Ð>OÐ.ÑPÔPðð åÔ8¸Ô9MÑNÔNðñ ô ñð			
r"   c                 ó$  — | j         sg| j        rYddlm} t          j                             | j        d         ¦  «        f} || j        || j        ¬¦  «        }t          |h¦  «        S t          S | j
        st          S | j        j                             | j        ¦  «        }|�t          |h¦  «        S | j        j                             | j        ¦  «        }|�|S |                      d¬¦  «        }t!          | j        | j         || j        ¦  «        S )Nr   ©ÚImplicitNamespaceValue©r$   ÚpathsF©r“   )r=   r|   Újedi.inference.value.namespacer—   rj   r@   rl   rz   r   r   r}   Ústub_module_cacher(   r‹   Úmodule_cacher”   Úimport_module_by_namesr{   )r   r—   r=   ÚnsÚ
from_cacher	   s         r    r7   zImporter.followö   s0  € ØÔð "	ØÔ#ð  &ð2 RÐQÐQÐQÐQÐQÝ!œw×/Ò/°Ô0DÀQÔ0GÑHÔHÐJ�Ø+Ð+ØÔ)Ø!,ØÔ.ðñ ô �õ
    ‘~”~Ð%ÝÐØÔ#ð 	ÝÐð Ô*Ô<×@Ò@ÀÔAVÑWÔWˆ
ØÐ!Ý˜Z˜LÑ)Ô)Ð)ØÔ*Ô7×;Ò;¸DÔ<QÑRÔRˆ
ØÐ!ØÐà×4Ò4À5Ð4ÑIÔIˆå%ØÔ! 4Ô#3°X¸tÔ?Sñ
ô 
ð 	
r"   Nc           
      ó¶   — |€|                       d¬¦  «        }n|}t          t          | j        | j        ||€t
          nt          |du o|du ¬¦  «        ¦  «        S )z„
        Get the names of all modules in the search_path. This means file names
        and not names defined in the files.
        NTrš   )Ú
module_clsÚadd_builtin_modules)r”   r‚   Úiter_module_namesrz   r{   r   r   )r   Úsearch_pathÚ	in_moduler	   s       r    Ú_get_module_nameszImporter._get_module_names+  sv   € ð
 ÐØ×8Ò8ÀtÐ8ÑLÔLˆHˆHà"ˆHÝÕ%ØÔ! 4Ô#7¸Ø%.Ð%6•z�z½MØ +¨tÐ 3Ð I¸	ÀTÐ8Ið
ñ 
ô 
ñ ô ð 	r"   Fc                 óÔ  — | j         sg S g }| j        �r˜| j        dk    rã|                      ¦   «         D ]]}|j        }|                     d¦  «        r?|t          d¦  «        d…         }|                     t          | j	        |¦  «        ¦  «         Œ^|  
                    d¬¦  «        D ]Z}t          j                             |d¦  «        }t          j                             |¦  «        r||                      |g¦  «        z  }Œ[|                      ¦   «         }	|	D ]I}
|
j        dvrŒ|
                     ¦   «         s)||
                     ¦   «                              ¦   «         z  }ŒJ|sGdd	lm} |	 ||	¦  «        z  }|D ]0}|                     ¦   «         D ]}||                     ¦   «         z  }ŒŒ1n<| j        r||                      | j        ¦  «        z  }n||                      ¦   «         z  }|S )
z‰
        :param only_modules: Indicates wheter it's possible to import a
            definition that is not defined in a module.
        )ÚflaskÚextÚflask_NTrš   Úflaskext)ÚmoduleÚ	namespacer   )Úconvert_values)r}   r=   r‹   r§   Ústring_nameÚ
startswithr[   Úappendr   r{   r”   rj   r@   ÚjoinÚisdirr7   Úapi_typeÚis_compiledÚsub_modules_dictr?   Ú!jedi.inference.gradual.conversionr¯   Úget_filtersr>   r|   )r   r6   Úonly_modulesrQ   ÚmodÚmodnameÚextnameÚdirr¬   r?   rd   r¯   Úboth_valuesrG   Úfilters                  r    Úcompletion_nameszImporter.completion_names:  s#  € ð
 Ô#ð 	ØˆIàˆØÔñ %	2àÔ$Ð(8Ò8Ð8à×1Ò1Ñ3Ô3ð Pð P�CØ!œo�GØ×)Ò)¨(Ñ3Ô3ð PØ")­#¨h©-¬-¨.¨.Ô"9˜ØŸš¥Z°Ô0DÀgÑ%NÔ%NÑOÔOÐOøà×<Ò<È4Ð<ÑPÔPð Dð D�CÝ!œwŸ|š|¨C°Ñ<Ô<�HÝ”w—}’} XÑ.Ô.ð DØ ×!7Ò!7¸¸
Ñ!CÔ!CÑC˜øà—[’[‘]”]ˆFØð ?ð ?�à”>Ð)@Ð@Ð@ØØ×(Ò(Ñ*Ô*ð ?à˜U×3Ò3Ñ5Ô5×<Ò<Ñ>Ô>Ñ>�Eøàð 1ØLÐLÐLÐLÐLÐLà$ ~ ~°fÑ'=Ô'=Ñ=�Ø$ð 1ð 1�AØ"#§-¢-¡/¤/ð 1ð 1˜Ø §¢¡¤Ñ0˜˜ð1øð Œzð 2à˜×/Ò/°Ô0DÑEÔEÑE��ð ˜×/Ò/Ñ1Ô1Ñ1�Øˆr"   )r   rh   )F)
r)   r*   r+   r!   Úpropertyr‹   r”   r7   r§   rÁ   r,   r"   r    r5   r5   ˜   s�   € € € € € ðD'ð D'ð D'ð D'ðL ð
ð 
ñ „Xð
ð
ð 
ð 
ð3
ð 3
ð 3
ðjð ð ð ð/ð /ð /ð /ð /ð /r"   r5   Tc                 ó€  ‡ ‡‡‡	‡
— ‰€‰                       ¦   «         Št          d„ |D ¦   «         ¦  «        Š
d g}t          |¦  «        D ]v\  Š	}t          j        ˆ	ˆ ˆˆ
ˆfd„|D ¦   «         ¦  «        x}}|sIdd                     ‰
¦  «        z   }|�t          |||¦  «         nt          j        |¦  «         t          c S Œw|S )Nc              3   ó\   K  — | ]'}t          |t          j        ¦  «        r|j        n|V — Œ(d S r   rˆ   )rF   rp   s     r    rK   z)import_module_by_names.<locals>.<genexpr>q  sM   è è € ð ð àõ ˜a¥¤Ñ+Ô+Ð2ˆŒˆ°ðð ð ð ð ð r"   c           	      óN   •— g | ]!}t          ‰‰d ‰dz   …         |‰‰¬¦  «        ‘Œ"S )NrV   )Úprefer_stubs)Úimport_module)rF   Úparent_module_valuerp   r6   rÆ   Ústr_import_namesr	   s     €€€€€r    rH   z*import_module_by_names.<locals>.<listcomp>w  sV   ø€ ð /
ð /
ð /
ð &õ ØØ   ! A¡# Ô&Ø#ØØ)ðñ ô ð/
ð /
ð /
r"   zNo module named ú.)
r‘   r]   Ú	enumerater   Ú	from_setsr³   rf   r   rc   r   )r6   Úimport_namesr	   r;   rÆ   rƒ   rM   r%   re   rp   rÉ   s   ` ` `    @@r    rž   rž   l  s(  øøøøø€ àÐØ"×/Ò/Ñ1Ô1ˆåð ð àðñ ô ñ ô Ðð ˆ6€DÝ˜\Ñ*Ô*ð ð ‰ˆˆ4Ý#Ô-ð /
ð /
ð /
ð /
ð /
ð /
ð /
ð /
ð *.ð/
ñ /
ô /
ñ ô ð 	ˆˆyð ð 	Ø(¨3¯8ª8Ð4DÑ+EÔ+EÑEˆGØÐ)Ý˜>¨4°Ñ9Ô9Ð9Ð9å”˜gÑ&Ô&Ð&ÝÐÐÐð	ð Ðr"   c                 ó<  — |d         t           j        v r*t          | ||¦  «        }|€t          S t	          |g¦  «        S d                     |¦  «        }|€1| j                             |d         ||d¬¦  «        \  }}|€t          S nM|                     ¦   «         }|€t          S | j                             |d         ||d¬¦  «        \  }}|€t          S t          |t          ¦  «        r?dd	lm}	  |	| t          |j                             d¦  «        ¦  «        |j        ¬
¦  «        }n0|€t          | ||¦  «        }|€t          S nt#          | |||¬¦  «        }|€t%          j        d|d         |¦  «         nt%          j        d|||¦  «         t	          |g¦  «        S )zC
    This method is very similar to importlib's `_gcd_import`.
    r   NrÊ   rW   T)ÚstringÚ	full_namer	   Úis_global_searchF)rÏ   r@   rÐ   rÑ   r–   r˜   ©rÍ   Ú
is_packagezglobal search_module %s: %sz search_module %s in paths %s: %s)r   Úauto_import_modulesÚ_load_builtin_moduler   r   r³   Úcompiled_subprocessÚget_module_infoÚ
py__path__r‰   r   r›   r—   r]   rM   Úsplitr™   Ú_load_python_moduler   r8   )
r6   rÍ   rÈ   r	   r­   Úmodule_nameÚfile_io_or_nsÚis_pkgr™   r—   s
             r    rÇ   rÇ   Š  sø  € ð �A„�(Ô6Ð6Ð6Ý% o°|ÀXÑNÔNˆØˆ>ÝÐÝ˜˜Ñ!Ô!Ð!à—(’(˜<Ñ(Ô(€KØÐ"ð !0Ô C× SÒ SØ Ô#Ø!ØØ!ð	 !Tñ !
ô !
Ñˆ�vð ˆ>ÝÐð ð $×.Ò.Ñ0Ô0ˆØˆ=åÐà /Ô C× SÒ SØ Ô#ØØ!Ø"ð	 !Tñ !
ô !
Ñˆ�vð ˆ>ÝÐå�-¥Ñ0Ô0ð 
ØIÐIÐIÐIÐIÐIØ'Ð'ØÝ˜}Ô1×7Ò7¸Ñ<Ô<Ñ=Ô=ØÔ%ð
ñ 
ô 
ˆˆð
 
Ð	Ý% o°|ÀXÑNÔNˆØˆ>ÝÐð õ %Ø˜]Ø%Øð
ñ 
ô 
ˆð Ð"ÝŒ	Ð/°¸bÔ1AÀ6ÑJÔJÐJÐJåŒ	Ð4°kÀ5È&ÑQÔQÐQÝ�V�HÑÔÐr"   Fc           
      óº   — |                       |dt          j        t          j        ¬¦  «        }ddlm}  || |||t          | j        |j        ¦  «        |¬¦  «        S )NT)Úfile_ioÚcacheÚ
diff_cacheÚ
cache_pathr   )ÚModuleValue)rß   r$   Ú
code_linesrÓ   )	Úparser   Úfast_parserÚcache_directoryÚjedi.inference.valuerã   r   Úgrammarr@   )r6   rß   rÍ   rÓ   Úmodule_noderã   s         r    rÚ   rÚ   Ê  s{   € à!×'Ò'ØØÝÔ'ÝÔ+ð	 (ñ ô €Kð 1Ð0Ð0Ð0Ð0Ð0Øˆ;Ø˜ØØ!Ý(¨Ô)@À'Ä,ÑOÔOØðñ ô ð r"   c                 ó  ‡— | j         }|€|                      ¦   «         }|j        s0t          |                     | ¦  «        ¦  «        Šˆfd„|D ¦   «         }d                     |¦  «        }|€J ‚t          j        | ||¬¦  «        }|€d S |S )Nc                 ó   •— g | ]}|‰v ¯|‘Œ	S r,   r,   )rF   r�   Ú
safe_pathss     €r    rH   z(_load_builtin_module.<locals>.<listcomp>ã  s   ø€ Ð;Ð;Ð;˜!¨1°
¨?¨?�A¨?¨?¨?r"   rÊ   )Údotted_namer	   )r�   r‘   Ú_load_unsafe_extensionsrP   Ú_get_base_sys_pathr³   r   Úload_module)r6   rÍ   r	   r�   rî   r­   rí   s         @r    rÕ   rÕ   Ý  s§   ø€ ØÔ%€GØÐØ"×/Ò/Ñ1Ô1ˆØÔ*ð <Ý˜×3Ò3°OÑDÔDÑEÔEˆ
Ø;Ð;Ð;Ð;˜xÐ;Ñ;Ô;ˆà—(’(˜<Ñ(Ô(€KØÐ"Ð"Ð"ÝÔ! /¸{ÐU]Ð^Ñ^Ô^€FØ€~ð ˆtØ€Mr"   c           	      ó$  — t          |j        ¦  «        }|€-|                      ¦   «         }t          j        ||¦  «        \  }}nt          |t          ¦  «        sJ ‚|j        dk    }|rì|                     ¦   «         }|j         	                    d¦  «        rt          |j        dd…         ¦  «        }|j        dk    r|                     d¦  «        }n|                     |d         dz   ¦  «        }	 t          | |||¬	¦  «        }	t          |	g¦  «        }
n# t          $ r
 t           }
Y nw xY wt#          | | j        |
t'          | |¦  «        ||¦  «        S t)          | |||¬
¦  «        }| j                             |t          |g¦  «        ¦  «         |S )z·
    This should pretty much only be used for get_modules_containing_name. It's
    here to ensure that a random path is still properly loaded into the Jedi
    module structure.
    Nz.pyiz-stubsiúÿÿÿz__init__.pyiz__init__.pyrW   z.py)rÓ   rÒ   )r   r@   r‘   r	   Útransform_path_to_dottedr‰   ÚboolÚsuffixÚget_parent_folderÚendswithr   rM   Úget_file_ioÚload_module_from_pathr   ÚFileNotFoundErrorr   r   Úlatest_grammarr   rÚ   r�   r&   )r6   rß   rÍ   rÓ   r@   Ú
e_sys_pathÚis_stubÚ	folder_ioÚpython_file_ioÚvr?   r­   s               r    rù   rù   ï  sÀ  € õ �”ÑÔ€DØÐØ$×1Ò1Ñ3Ô3ˆ
Ý#+Ô#DÀZÐQUÑ#VÔ#VÑ ˆ�j�jå˜*¥dÑ+Ô+Ð+Ð+Ð+àŒk˜VÒ#€GØð Ø×-Ò-Ñ/Ô/ˆ	ØŒ>×"Ò" 8Ñ,Ô,ð 	6Ý  ¤°°°Ô!4Ñ5Ô5ˆIØŒ9˜Ò&Ð&Ø&×2Ò2°=ÑAÔAˆNˆNà&×2Ò2°<ÀÔ3CÀeÑ3KÑLÔLˆNð	Ý%Ø Ø¨ðñ ô ˆAõ ˜q˜c‘]”]ˆFˆFøÝ ð 	ð 	ð 	ÝˆFˆFˆFð	øøøõ "Ø˜_Ô;¸VÝ˜o¨wÑ7Ô7¸À,ñ
ô 
ð 	
õ
 %Ø˜WØ%Ø!ð
ñ 
ô 
ˆð
 	Ô$×(Ò(¨µxÀÀÑ7IÔ7IÑJÔJÐJØˆs   Ã2#D ÄD*Ä)D*c                 ó¬   — t          j        |                      ¦   «         t          |j        ¦  «        ¦  «        \  }}ddlm}  || ||j        g¦  «        S )Nr   r–   )r	   ró   r‘   r   r@   r›   r—   )r6   rþ   rÍ   rÓ   r—   s        r    Úload_namespace_from_pathr    sd   € Ý'Ô@Ø×$Ò$Ñ&Ô&ÝˆYŒ^ÑÔñ ô  Ñ€L�*ð FÐEÐEÐEÐEÐEØ!Ð! /°<À)Ä.ÐAQÑRÔRÐRr"   c                 óÀ  — |                      d¦  «        }|�Æd}t          |j        ¦  «        D ]"\  }}|j        |j        k    r n|dk    r|dz   }Œ#|j        |d …         }|d                              ¦   «         j        }|dv r[|dk    }t          j        |||¬¦  «        \  }	}
t          | j	        |
|  
                    ¦   «         |	¦  «                             ¦   «         S d S )NÚ
error_noder   ú;rV   )ÚfromÚimportr  )Úis_import_fromÚ
until_node)rX   rË   ÚchildrenÚ	start_posÚget_first_leafrd   r
   Úparse_dotted_namesr5   r6   r2   r7   )r9   rM   r  Ústart_indexÚindexrJ   ÚnodesÚ
first_namer  r>   rQ   s              r    Ú%follow_error_node_imports_if_possibler  &  s  € Ø×%Ò% lÑ3Ô3€JØÐð ˆÝ! *Ô"5Ñ6Ô6ð 	(ð 	(‰HˆE�1ØŒ{˜Tœ^Ò+Ð+Ø�Ø�CŠxˆxØ# a™i�øØÔ# K L LÔ1ˆØ˜1”X×,Ò,Ñ.Ô.Ô4ˆ
ð Ð+Ð+Ð+Ø'¨6Ò1ˆNÝ"Ô5ØØ-Øðñ ô ‰LˆE�5õ
 ØÔ'¨°×0HÒ0HÑ0JÔ0JÈEñSô SßSYÒSYÑS[ÔS[ð\àˆ4r"   c              #   ó¸   K  — |r*| j                              ¦   «         D ]} |||¦  «        V — Œ| j                              |¦  «        D ]} |||¦  «        V — ŒdS )zx
    Get the names of all modules in the search_path. This means file names
    and not names defined in the files.
    N)rÖ   Úget_builtin_module_namesr¤   )r6   r;   r¥   r¢   r£   rM   s         r    r¤   r¤   C  sŽ   è è € ð ð 3Ø#Ô7×PÒPÑRÔRð 	3ð 	3ˆDØ�*˜^¨TÑ2Ô2Ð2Ð2Ð2Ð2àÔ3×EÒEÀkÑRÔRð /ð /ˆØˆj˜¨Ñ.Ô.Ð.Ð.Ð.Ð.ð/ð /r"   )NNT)NFrh   )4Ú__doc__rj   Úpathlibr   Úparso.pythonr   Újedir   r   Újedi.file_ior   Újedi.parser_utilsr   Újedi.inferencer	   r
   r   r   Újedi.inference.utilsr   Újedi.inference.cacher   Újedi.inference.namesr   r   Újedi.inference.base_valuer   r   Újedi.inference.gradual.typeshedr   r   r   Ú,jedi.inference.compiled.subprocess.functionsr   Újedi.pluginsr   r   rB   rR   r3   rf   ru   r5   rž   ÚdecoraterÇ   rÚ   rÕ   rù   r  r  r¤   r,   r"   r    ú<module>r$     s,  ðð	ð 	ð 
€	€	€	Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø #Ð #Ð #Ð #Ð #Ð #Ø "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø &Ð &Ð &Ð &Ð &Ð &Ø =Ð =Ð =Ð =Ð =Ð =Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ð*ð *ð *ð *ð *ð *ð *ð *ð *ð *à GÐ GÐ GÐ GÐ GÐ GØ 'Ð 'Ð 'Ð 'Ð 'Ð 'ð	2ð 	2ð 	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð Ð iÐ0Ñ0Ô0ðð ñ 1Ô0ðð* Ð bÐ)Ñ)Ô)ð'ð 'ñ *Ô)ð'ð2Vð Vð Vð,@ð @ð @ð#ð #ð #ð6Qð Qð Qð Qð Qñ Qô Qð Qðh DHØ=Aðð ð ð ð< €ÔÑÔØð;ð ;ñ Ôñ Ôð;ð~ 7<ðð ð ð ð&ð ð ð$+ð +ð +ð +ð\Sð Sð Sðð ð ð< ",Àð/ð /ð /ð /ð /ð /r"   