Sindbad~EG File Manager
3
9��f�@sRddlZddlmZddlZddlmZejjZGdd�d�Z Gdd�de �Z
dS)�N)�log)�mapc @sTeZdZdZdd�Zdd�Zdd�ZdZdZdd�Z dd�Z
dd�Zedd��Z
dS)� Installerz
-nspkg.pthc Cs�|j�}|sdStjj|j��\}}||j7}|jj|�tj d|�t
|j|�}|jrdt
|�dSt|d��}|j|�WdQRXdS)Nz
Installing %sZwt)�_get_all_ns_packages�os�path�splitext�_get_target� nspkg_extZoutputs�appendr�infor�_gen_nspkg_lineZdry_run�list�open�
writelines)�selfZnsp�filename�ext�lines�f�r� /usr/lib/python3.6/namespaces.py�install_namespacess
zInstaller.install_namespacescCsHtjj|j��\}}||j7}tjj|�s.dStjd|�tj|�dS)NzRemoving %s) rrrr r
�existsrr�remove)rrrrrr�uninstall_namespaces!s
zInstaller.uninstall_namespacescCs|jS)N)�target)rrrrr )szInstaller._get_target�import sys, types, os�#has_mfs = sys.version_info > (3, 5)�$p = os.path.join(%(root)s, *%(pth)r)�4importlib = has_mfs and __import__('importlib.util')�-has_mfs and __import__('importlib.machinery')��m = has_mfs and sys.modules.setdefault(%(pkg)r, importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec(%(pkg)r, [os.path.dirname(p)])))�Cm = m or sys.modules.setdefault(%(pkg)r, types.ModuleType(%(pkg)r))�7mp = (m or []) and m.__dict__.setdefault('__path__',[])�(p not in mp) and mp.append(p)�4m and setattr(sys.modules[%(parent)r], %(child)r, m)cCsdS)Nz$sys._getframe(1).f_locals['sitedir']r)rrrr� _get_rootCszInstaller._get_rootcCsVt|�}t|jd��}|j�}|j}|jd�\}}}|rB||j7}dj|�t�dS)N�.�;�
) �str�tuple�splitr'�_nspkg_tmpl�
rpartition�_nspkg_tmpl_multi�join�locals)r�pkgZpth�rootZ
tmpl_lines�parent�sepZchildrrrr
Fs
zInstaller._gen_nspkg_linecCs |jjp
g}ttt|j|���S)z,Return sorted list of all package namespaces)ZdistributionZnamespace_packages�sorted�flattenr�
_pkg_names)rZpkgsrrrrQszInstaller._get_all_ns_packagesccs,|jd�}x|r&dj|�V|j�qWdS)z�
Given a namespace package, yield the components of that
package.
>>> names = Installer._pkg_names('a.b.c')
>>> set(names) == set(['a', 'a.b', 'a.b.c'])
True
r(N)r-r1�pop)r3�partsrrrr9Vs
zInstaller._pkg_namesN) rrrr r!r"r#r$r%)r&)�__name__�
__module__�__qualname__r
rrr r.r0r'r
r�staticmethodr9rrrrrs$rc@seZdZdd�Zdd�ZdS)�DevelopInstallercCstt|j��S)N)�reprr+Zegg_path)rrrrr'gszDevelopInstaller._get_rootcCs|jS)N)Zegg_link)rrrrr jszDevelopInstaller._get_targetN)r<r=r>r'r rrrrr@fsr@)rZ distutilsr� itertoolsZsetuptools.extern.six.movesr�chain�
from_iterabler8rr@rrrr�<module>s[
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists