§
    ŒŸjŸ@  ã                   ó  — 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	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mZ ddlmZ ddlmZ ddlmZmZ ddlmZ dZdZ dZ!d„ Z"d„ Z# G d„ d¦  «        Z$d„ Z%d„ Z&dd„Z'd„ Z(dS )aŒ  
Projects are a way to handle Python projects within Jedi. For simpler plugins
you might not want to deal with projects, but if you want to give the user more
flexibility to define sys paths and Python interpreters for a project,
:class:`.Project` is the perfect way to allow for that.

Projects can be saved to disk and loaded again, to allow project definitions to
be used across repositories.
é    N)ÚPath)Úchain)Údebug)Úget_cached_default_environmentÚcreate_environment)ÚWrongVersion)Úsearch_in_module)Úsplit_search_stringÚget_module_names)Úload_module_from_pathÚload_namespace_from_pathÚiter_module_names)Údiscover_buildout_paths)Ú%inference_state_as_method_param_cache)Ú%recurse_find_python_folders_and_filesÚsearch_in_file_ios)ÚFolderIOz.jedi)zsetup.pyz.gitz.hgzrequirements.txtzMANIFEST.inzpyproject.tomlé   c                 ó   ‡ — ˆ fd„}|S )Nc               ?   óî   •K  — g }g } ‰| i |¤ŽD ]d}|j         j        }|�||v rŒ|j        dk    r+|j        �$|j        |v rŒ1|                     |j        ¦  «         |V — |                     |¦  «         Œed S )NÚmodule)Ú_nameÚ	tree_nameÚtypeÚmodule_pathÚappend)ÚargsÚkwargsÚfound_tree_nodesÚfound_modulesÚ
definitionÚ	tree_nodeÚfuncs         €ú]/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/api/project.pyÚwrapperz(_try_to_skip_duplicates.<locals>.wrapper"   s¹   øè è € ØÐØˆØ˜$ Ð/¨Ð/Ð/ð 		/ð 		/ˆJØ"Ô(Ô2ˆIØÐ$¨Ð6FÐ)FÐ)FØØŒ (Ò*Ð*¨zÔ/EÐ/QØÔ)¨]Ð:Ð:ØØ×$Ò$ ZÔ%;Ñ<Ô<Ð<ØÐÐÐØ×#Ò# IÑ.Ô.Ð.Ð.ð		/ð 		/ó    © )r#   r%   s   ` r$   Ú_try_to_skip_duplicatesr(   !   s#   ø€ ð/ð /ð /ð /ð /ð €Nr&   c              #   ól   K  — t          ¦   «         }| D ] }||v rŒ|                     |¦  «         |V — Œ!d S ©N)ÚsetÚadd)ÚpathÚusedÚps      r$   Ú_remove_duplicates_from_pathr0   2   sN   è è € Ý‰5Œ5€DØð ð ˆØ�ˆ9ˆ9ØØ�Š�‰ŒˆØˆˆˆˆð	ð r&   c                   óR  — e Zd ZdZdZed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
ddddd	d
œ	 dd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z e¦   «         d„ ¦   «         Z e¦   «         dd„¦   «         Zd„ Zddœd„Zd„ Zedd„¦   «         Zd„ ZdS )ÚProjectzâ
    Projects are a simple way to manage Python folders and define how Jedi does
    import resolution. It is mostly used as a parameter to :class:`.Script`.
    Additionally there are functions to search a whole project.
    Nc                 ó6   — |                       t          ¦  «        S r*   )ÚjoinpathÚ_CONFIG_FOLDER©Ú	base_paths    r$   Ú_get_config_folder_pathzProject._get_config_folder_pathC   s   € à×!Ò!¥.Ñ1Ô1Ð1r&   c                 ó\   — t                                | ¦  «                             d¦  «        S )Nzproject.json)r2   r8   r4   r6   s    r$   Ú_get_json_pathzProject._get_json_pathG   s$   € å×.Ò.¨yÑ9Ô9×BÒBÀ>ÑRÔRÐRr&   c                 ó&  — t          |t          ¦  «        rt          |¦  «        }t          |                      |¦  «        ¦  «        5 }t          j        |¦  «        \  }}ddd¦  «         n# 1 swxY w Y   |dk    r | di |¤ŽS t          d¦  «        ‚)zó
        Loads a project from a specific path. You should not provide the path
        to ``.jedi/project.json``, but rather the path to the project folder.

        :param path: The path of the directory you want to use as a project.
        Nr   zEThe Jedi version of this project seems newer than what we can handle.r'   )Ú
isinstanceÚstrr   Úopenr:   ÚjsonÚloadr   )Úclsr-   ÚfÚversionÚdatas        r$   r@   zProject.loadK   sÒ   € õ �d�CÑ Ô ð 	Ý˜‘:”:ˆDÝ�#×$Ò$ TÑ*Ô*Ñ+Ô+ð 	)¨qÝ œI a™LœL‰MˆG�Tð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð �aŠ<ˆ<Ø�3�;�;˜�;�;ÐåØWñô ð s   ÁA+Á+A/Á2A/c                 ó  — t          | j        ¦  «        }|                     dd¦  «         |                     dd¦  «         d„ |                     ¦   «         D ¦   «         }t	          |d         ¦  «        |d<   |                      | j        ¦  «                             dd¬¦  «         t          |  	                    | j        ¦  «        d¦  «        5 }t          j        t          |f|¦  «        cddd¦  «         S # 1 swxY w Y   dS )	z[
        Saves the project configuration in the project in ``.jedi/project.json``.
        Ú_environmentNÚ_djangoc                 ó@   — i | ]\  }}|                      d ¦  «        |“ŒS )Ú_)Úlstrip)Ú.0ÚkÚvs      r$   ú
<dictcomp>z Project.save.<locals>.<dictcomp>f   s(   € Ð:Ð:Ð:¡T Q¨�—’˜‘”˜qÐ:Ð:Ð:r&   r-   T)ÚparentsÚexist_okÚw)ÚdictÚ__dict__ÚpopÚitemsr=   r8   Ú_pathÚmkdirr>   r:   r?   ÚdumpÚ_SERIALIZER_VERSION)ÚselfrD   rB   s      r$   ÚsavezProject.save_   s*  € õ �D”MÑ"Ô"ˆØ�Š� Ñ&Ô&Ð&Ø�Š�˜DÑ!Ô!Ð!Ø:Ð:¨T¯ZªZ©\¬\Ð:Ñ:Ô:ˆÝ˜4 œ<Ñ(Ô(ˆˆV‰à×$Ò$ T¤ZÑ0Ô0×6Ò6¸tÈdÐ6ÑSÔSÐSÝ�$×%Ò% d¤jÑ1Ô1°3Ñ7Ô7ð 	=¸1Ý”9Õ1°4Ð8¸!Ñ<Ô<ð	=ð 	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ÃC7Ã7C;Ã>C;Fr'   T)Úenvironment_pathÚload_unsafe_extensionsÚsys_pathÚadded_sys_pathÚsmart_sys_pathÚreturnc                ó\  — t          |t          ¦  «        r!t          |¦  «                             ¦   «         }|| _        || _        |�"t          t          t          |¦  «        ¦  «        }|| _        || _	        || _
        d| _        t          t          t          |¦  «        ¦  «        | _        dS )a$  
        :param path: The base path for this project.
        :param environment_path: The Python executable path, typically the path
            of a virtual environment.
        :param load_unsafe_extensions: Default False, Loads extensions that are not in the
            sys path and in the local directories. With this option enabled,
            this is potentially unsafe if you clone a git repository and
            analyze it's code, because those compiled extensions will be
            important and therefore have execution privileges.
        :param sys_path: list of str. You can override the sys path if you
            want. By default the ``sys.path.`` is generated by the
            environment (virtualenvs, etc).
        :param added_sys_path: list of str. Adds these paths at the end of the
            sys path.
        :param smart_sys_path: If this is enabled (default), adds paths from
            local directories. Otherwise you will have to rely on your packages
            being properly configured on the ``sys.path``.
        NF)r<   r=   r   ÚabsoluterV   Ú_environment_pathÚlistÚmapÚ	_sys_pathÚ_smart_sys_pathÚ_load_unsafe_extensionsrG   r_   )rZ   r-   r\   r]   r^   r_   r`   s          r$   Ú__init__zProject.__init__m   s—   € õ: �d�CÑ Ô ð 	)Ý˜‘:”:×&Ò&Ñ(Ô(ˆDØˆŒ
à!1ˆÔØÐå�C¥ XÑ.Ô.Ñ/Ô/ˆHØ!ˆŒØ-ˆÔØ'=ˆÔ$ØˆŒå"¥3¥s¨NÑ#;Ô#;Ñ<Ô<ˆÔØGÐGr&   c                 ó   — | j         S )z1
        The base path for this project.
        ©rV   ©rZ   s    r$   r-   zProject.pathš   s   € ð
 ŒzÐr&   c                 ó   — | j         S )zz
        The sys path provided to this project. This can be None and in that
        case will be auto generated.
        )rg   rm   s    r$   r^   zProject.sys_path¡   s   € ð Œ~Ðr&   c                 ó   — | j         S )zu
        If the sys path is going to be calculated in a smart way, where
        additional paths are added.
        )rh   rm   s    r$   r`   zProject.smart_sys_path©   s   € ð Ô#Ð#r&   c                 ó   — | j         S )z=
        Wheter the project loads unsafe extensions.
        )ri   rm   s    r$   r]   zProject.load_unsafe_extensions±   s   € ð
 Ô+Ð+r&   c                 ó    — t          |j                             ¦   «         ¦  «        }	 |                     d¦  «         n# t          $ r Y nw xY w|S )NÚ )re   ÚenvironmentÚget_sys_pathÚremoveÚ
ValueError)rZ   Úinference_stater^   s      r$   Ú_get_base_sys_pathzProject._get_base_sys_path¸   s_   € õ ˜Ô3×@Ò@ÑBÔBÑCÔCˆð	Ø�OŠO˜BÑÔÐÐøÝð 	ð 	ð 	ØˆDð	øøøàˆs   ¨> ¾
AÁ
Ac                 ó&  — t          | j        ¦  «        }g }| j        €#t          |                      |¦  «        ¦  «        }nt          | j        ¦  «        }| j        rå|                     t          | j        ¦  «        ¦  «         |j        �·|t          t          t          ||j        ¦  «        ¦  «        z  }|rŠg }|j        j        D ]i}|| j        k    s| j        |j        vr nM|s(|                     d¦  «                             ¦   «         rŒG|                     t          |¦  «        ¦  «         Œj|t          |¦  «        z  }| j        r'|                     t          | j        ¦  «        ¦  «         ||z   |z   }	t          t!          |	¦  «        ¦  «        S )zƒ
        Keep this method private for all users of jedi. However internally this
        one is used like a public method.
        Nú__init__.py)re   r_   rg   rx   rh   r   r=   rV   Úscript_pathrf   r   rO   r4   Úis_fileÚreversedrG   r0   )
rZ   rw   Úadd_parent_pathsÚadd_init_pathsÚsuffixedÚprefixedr^   Ú	traversedÚparent_pathr-   s
             r$   Ú_get_sys_pathzProject._get_sys_pathÂ   s›  € õ ˜Ô+Ñ,Ô,ˆØˆàŒ>Ð!Ý˜D×3Ò3°OÑDÔDÑEÔEˆHˆHå˜DœNÑ+Ô+ˆHàÔð 	4Ø�OŠO�C ¤
™OœOÑ,Ô,Ð,àÔ*Ð6Ø�C¥Õ%<Ø#Ø#Ô/ñ&ô &ñ ô ñ �ð
 $ð 4ð !#�IØ'6Ô'BÔ'Jð ;ð ;˜Ø&¨$¬*Ò4Ð4Ø#'¤:°[Ô5HÐ#HÐ#HØ!˜EØ-ð %Ø$/×$8Ò$8¸Ñ$GÔ$G×$OÒ$OÑ$QÔ$Qð%à$Ø!×(Ò(­¨[Ñ)9Ô)9Ñ:Ô:Ð:Ð:ð
 ¥¨Ñ 3Ô 3Ñ3�HàŒ<ð 	-Ø�OŠO�C ¤
™OœOÑ,Ô,Ð,à˜(Ñ" XÑ-ˆÝÕ0°Ñ6Ô6Ñ7Ô7Ð7r&   c                 óŠ   — | j         €6| j        �t          | j        d¬¦  «        | _         nt          ¦   «         | _         | j         S )NF)Úsafe)rF   rd   r   r   rm   s    r$   Úget_environmentzProject.get_environmentò   sG   € ØÔÐ$ØÔ%Ð1Ý$6°tÔ7MÐTYÐ$ZÑ$ZÔ$Z�Ô!Ð!å$BÑ$DÔ$D�Ô!ØÔ Ð r&   ©Ú
all_scopesc                ó0   — |                       ||¬¦  «        S )aO  
        Searches a name in the whole project. If the project is very big,
        at some point Jedi will stop searching. However it's also very much
        recommended to not exhaust the generator. Just display the first ten
        results to the user.

        There are currently three different search patterns:

        - ``foo`` to search for a definition foo in any file or a file called
          ``foo.py`` or ``foo.pyi``.
        - ``foo.bar`` to search for the ``foo`` and then an attribute ``bar``
          in it.
        - ``class foo.bar.Bar`` or ``def foo.bar.baz`` to search for a specific
          API type.

        :param bool all_scopes: Default False; searches not only for
            definitions on the top level of a module level, but also in
            functions and classes.
        :yields: :class:`.Name`
        rˆ   ©Ú_search_func)rZ   Ústringr‰   s      r$   ÚsearchzProject.searchú   s   € ð* × Ò  °JÐ Ñ?Ô?Ð?r&   c                 ó"   —  | j         |fddi|¤ŽS )au  
        Like :meth:`.Script.search`, but completes that string. An empty string
        lists all definitions in a project, so be careful with that.

        :param bool all_scopes: Default False; searches not only for
            definitions on the top level of a module level, but also in
            functions and classes.
        :yields: :class:`.Completion`
        ÚcompleteTr‹   )rZ   r�   r   s      r$   Úcomplete_searchzProject.complete_search  s$   € ð !ˆtÔ  ÐAÐA°$ÐA¸&ÐAÐAÐAr&   c              #   ó   ‡ ‡K  — ddl m}  |d‰ ¬¦  «        }|j        }|                     ¦   «         }t	          j        d||¦  «         t          |¦  «        \  }}	|	d         }
|
dz   }t          t          t          ‰ j
        ¦  «        ¦  «        ¦  «        }g }|D �]r\  }}|€Õ|                     ¦   «         }||
k    s||k    r´|                     d¦  «        }	 t          ||¦  «                             ¦   «         }nÙ# t          $ rn |                     d¦  «        }	 t          ||¦  «                             ¦   «         }n2# t          $ r% t!          ||¦  «                             ¦   «         }Y nw xY wY nbw xY wŒÝ|                     |¦  «         t%          |j        ¦  «        j        |
d	z   |
d
z   fv r#t          ||¦  «                             ¦   «         }n�Œ:t	          j        d|¦  «         t+          |||j        g||	|dd¬¦  «        E d {V —† �Œtt-          |||
|¬¦  «        D ]QŠt/          ‰j        |¬¦  «        }ˆfd„|D ¦   «         }t3          |¦  «        }t+          |‰|||	|d¬¦  «        E d {V —† ŒRˆ fd„‰                      |¦  «        D ¦   «         }t7          t9          |||¦  «        ¦  «        }t+          |||||	|d¬¦  «        E d {V —† d S )Nr   )ÚScriptrr   )Úprojectz!Search for string %s, complete=%sz-stubsrz   z__init__.pyiz.pyz.pyizSearch of a specific module %sT)ÚnamesÚwanted_typeÚwanted_namesr�   ÚconvertÚignore_imports)r�   rˆ   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r'   )Úcreate_name)rK   ÚnÚmodule_contexts     €r$   ú
<listcomp>z(Project._search_func.<locals>.<listcomp>T  s'   ø€ ÐBÐBÐB°q�^×/Ò/°Ñ2Ô2ÐBÐBÐBr&   )r•   r–   r—   r�   r™   c                 ó*   •— g | ]}|‰j         k    ¯|‘ŒS r'   rl   )rK   r/   rZ   s     €r$   rž   z(Project._search_func.<locals>.<listcomp>a  s,   ø€ ð 
ð 
ð 
Øà�D”JŠˆð àˆˆr&   )r•   r–   r—   r�   r˜   )Újedir“   Ú_inference_stateÚ_get_module_contextr   Údbgr
   r   r   r=   rV   Úget_base_nameÚget_file_ior   Ú
as_contextÚFileNotFoundErrorr   r   r   r-   Únamer	   r   r   r"   Ú_remove_importsr„   re   r   )rZ   r�   r�   r‰   r“   Úsrw   Úempty_module_contextr–   r—   r¨   Ústub_folder_nameÚiosÚfile_iosÚ	folder_ioÚfile_ioÚ	file_namerB   Úmr•   r^   r�   s   `                    @r$   rŒ   zProject._search_func  sÕ  øøè è € ð 	 ÐÐÐÐÐØˆF�2˜tÐ$Ñ$Ô$ˆØÔ,ˆØ ×4Ò4Ñ6Ô6ÐåŒ	Ð5°v¸xÑHÔHÐHÝ$7¸Ñ$?Ô$?Ñ!ˆ�\Ø˜AŒˆØ (™?Ðå3µH½SÀÄ¹_¼_Ñ4MÔ4MÑNÔNˆØˆð #&ð  	ñ  	ÑˆI�wØˆØ%×3Ò3Ñ5Ô5�	Ø Ò$Ð$¨	Ð5EÒ(EÐ(EØ!×-Ò-¨mÑ<Ô<�AðbÝ1°/À1ÑEÔE×PÒPÑRÔR˜˜øÝ,ð bð bð bØ%×1Ò1°.ÑAÔA˜ðbÝ 5°oÀqÑ IÔ I× TÒ TÑ VÔ V˜A˜AøÝ0ð bð bð bÝ 8¸È)Ñ TÔ T× _Ò _Ñ aÔ a˜A˜A˜Aðbøøøøøð	bøøøð à—’ Ñ(Ô(Ð(Ý˜œÑ%Ô%Ô*¨t°e©|¸TÀF¹]Ð.KÐKÐKÝ-¨o¸wÑGÔG×RÒRÑTÔT�A�AáåŒIÐ6¸Ñ:Ô:Ð:Ý'ØØØ”v�hØ'Ø)Ø!ØØ#ð	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	õ 1°À(Ø15ÀðJñ Jô Jð 	ð 	ˆNå$ ^Ô%=È*ÐUÑUÔUˆEØBÐBÐBÐB¸EÐBÑBÔBˆEÝ# EÑ*Ô*ˆEÝ'ØØØØ'Ø)Ø!Ø#ðñ ô ð ð ð ð ð ð ð ð ð
ð 
ð 
ð 
Ø×)Ò)¨/Ñ:Ô:ð
ñ 
ô 
ˆõ
 Õ& Ð8LÈhÑWÔWÑXÔXˆÝ#ØØ ØØ#Ø%ØØð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
s6   Ã"C;Ã;E3Ä"D>Ä=E3Ä>,E-Å*E3Å,E-Å-E3Å2E3c                 ó2   — d| j         j        ›d| j        ›d�S )Nú<z: ú>)Ú	__class__Ú__name__rV   rm   s    r$   Ú__repr__zProject.__repr__q  s    € € Ø!œ^Ô4Ð4Ð4°d´j°j°jÐAÐAr&   )ra   N)TF)FF)r·   Ú
__module__Ú__qualname__Ú__doc__rF   Ústaticmethodr8   r:   Úclassmethodr@   r[   rj   Úpropertyr-   r^   r`   r]   r   rx   r„   r‡   rŽ   r‘   r(   rŒ   r¸   r'   r&   r$   r2   r2   ;   sû  € € € € € ðð ð
 €Làð2ð 2ñ „\ð2ð ðSð Sñ „\ðSð ðð ñ „[ðð&=ð =ð =ð$ Ø$ØØØð+Hð +Hð 
ð+Hð +Hð +Hð +HðZ ðð ñ „Xðð ðð ñ „Xðð ð$ð $ñ „Xð$ð ð,ð ,ñ „Xð,ð +Ð*Ñ,Ô,ðð ñ -Ô,ðð +Ð*Ñ,Ô,ð-8ð -8ð -8ñ -Ô,ð-8ð^!ð !ð !ð ,1ð @ð @ð @ð @ð @ð.
Bð 
Bð 
Bð ðQ
ð Q
ð Q
ñ ÔðQ
ðfBð Bð Bð Bð Br&   r2   c                 ó�   — t           D ]=}	 |                      |¦  «                             ¦   «         r dS Œ.# t          $ r Y Œ:w xY wdS )NTF)Ú_CONTAINS_POTENTIAL_PROJECTr4   ÚexistsÚOSError)r-   r¨   s     r$   Ú_is_potential_projectrÃ   u  sg   € Ý+ð ð ˆð	Ø�}Š}˜TÑ"Ô"×)Ò)Ñ+Ô+ð Ø�t�tðøåð 	ð 	ð 	ØˆHð	øøøàˆ5s   ‹'6¶
AÁAc                 óæ   — 	 t          |                      d¦  «        d¦  «        5 }d|                     ¦   «         v cddd¦  «         S # 1 swxY w Y   dS # t          t          t
          f$ r Y dS w xY w)zB Detects the path of the very well known Django library (if used) z	manage.pyÚrbs   DJANGO_SETTINGS_MODULENF)r>   r4   Úreadr§   ÚIsADirectoryErrorÚPermissionError)Ú	directoryrB   s     r$   Ú_is_django_pathrÊ     sÀ   € ðÝ�)×$Ò$ [Ñ1Ô1°4Ñ8Ô8ð 	9¸AØ,°·²±´Ð8ð	9ð 	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øåÕ0µ/ÐBð ð ð Øˆuˆuðøøøs3   ‚#A ¥A»A ÁAÁA ÁAÁA ÁA0Á/A0c                 óö  — | €t          j        ¦   «         } n$t          | t          ¦  «        rt          | ¦  «        } |                      ¦   «         }d}d}t          |g|j        ¦  «        D ]Ã}	 t                               |¦  «        c S # t          t          t          f$ r Y nt          $ r Y ŒCw xY w|€>|                     d¦  «                             ¦   «         rŒq|                     ¦   «         s|}t!          |¦  «        rt          |¦  «        }d|_        |c S |€t%          |¦  «        r|}ŒÄ|�t          |¦  «        S |�t          |¦  «        S |                      ¦   «         r| n| j        }t          |¦  «        S )aI  
    If a project is not defined by the user, Jedi tries to define a project by
    itself as well as possible. Jedi traverses folders until it finds one of
    the following:

    1. A ``.jedi/config.json``
    2. One of the following files: ``setup.py``, ``.git``, ``.hg``,
       ``requirements.txt`` and ``MANIFEST.in``.
    Nrz   T)r   Úcwdr<   r=   rc   r   rO   r2   r@   r§   rÇ   rÈ   ÚNotADirectoryErrorr4   rÁ   r|   rÊ   rG   rÃ   Úis_dirÚparent)r-   ÚcheckÚprobable_pathÚfirst_no_init_fileÚdirr”   Úcurdirs          r$   Úget_default_projectrÕ   ˆ  s™  € ð €|ÝŒx‰zŒzˆˆÝ	�D�#Ñ	Ô	ð Ý�D‰zŒzˆà�MŠM‰OŒO€EØ€MØÐÝ�e�W˜eœmÑ,Ô,ð  ð  ˆð	Ý—<’< Ñ$Ô$Ð$Ð$Ð$øÝ!Õ#4µoÐFð 	ð 	ð 	ØˆDÝ!ð 	ð 	ð 	ØˆHð	øøøð Ð%Ø�|Š|˜MÑ*Ô*×1Ò1Ñ3Ô3ð )ð Ø—[’[‘]”]ð )Ø%(Ð"å˜3ÑÔð 	Ý˜c‘l”lˆGØ"ˆGŒOØˆNˆNˆNàÐ Õ%:¸3Ñ%?Ô%?Ð ØˆMøàÐ Ý�}Ñ%Ô%Ð%àÐ%ÝÐ)Ñ*Ô*Ð*à—[’[‘]”]Ð3ˆTˆT¨¬€FÝ�6‰?Œ?Ðs   Á,BÂB-Â!	B-Â,B-c                 ó   — d„ | D ¦   «         S )Nc                 ó2   — g | ]}|j         �	|j        dv¯|‘ŒS )N)r   Ú	namespace)r   Úapi_type)rK   rœ   s     r$   rž   z#_remove_imports.<locals>.<listcomp>½  s7   € ð ð ð ØØŒ;Ð !¤*Ð4KÐ"KÐ"Kð 	
Ø"KÐ"KÐ"Kr&   r'   )r•   s    r$   r©   r©   ¼  s#   € ðð Øðñ ô ð r&   r*   ))r»   r?   Úpathlibr   Ú	itertoolsr   r    r   Újedi.api.environmentr   r   Újedi.api.exceptionsr   Újedi.api.completionr	   Újedi.api.helpersr
   r   Újedi.inference.importsr   r   r   Újedi.inference.sys_pathr   Újedi.inference.cacher   Újedi.inference.referencesr   r   Újedi.file_ior   r5   rÀ   rY   r(   r0   r2   rÃ   rÊ   rÕ   r©   r'   r&   r$   ú<module>rå      sÜ  ððð ð €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø FÐ FÐ FÐ FÐ FÐ FØ _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ø !Ð !Ð !Ð !Ð !Ð !à€àRð ð Ð ðð ð ð"ð ð ðwBð wBð wBð wBð wBñ wBô wBð wBðt	ð ð ðð ð ð1ð 1ð 1ð 1ðhð ð ð ð r&   