
    鯐e                     p    d dl Z d dlmZ d dlZej        j        Z G d d          Z G d de          ZdS )    N)logc                   ^    e Zd ZdZd Zd Zd Zd ZdZ	 dZ		 d Z
d	 Zd
 Zed             ZdS )	Installerz
-nspkg.pthc                    |                                  }|sd S |                                 }| j                            |           t	          j        d|           t          | j        |          }| j        rt          |           d S t          |d          5 }|                    |           d d d            d S # 1 swxY w Y   d S )NzInstalling %swt)_get_all_ns_packages_get_nspkg_fileoutputsappendr   infomap_gen_nspkg_linedry_runlistopen
writelines)selfnspfilenamelinesfs        :/usr/lib/python3.11/site-packages/setuptools/namespaces.pyinstall_namespaceszInstaller.install_namespaces   s   '')) 	F''))H%%%(+++D(#..< 	KKKF(D!! 	 QLL	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   B<<C C c                     |                                  }t          j                            |          sd S t	          j        d|           t          j        |           d S )NzRemoving %s)r	   ospathexistsr   r   remove)r   r   s     r   uninstall_namespaceszInstaller.uninstall_namespaces   sV    ''))w~~h'' 	F)))
	(    c                 ~    t           j                            |                                           \  }}|| j        z   S N)r   r   splitext_get_target	nspkg_ext)r   r   _s      r   r	   zInstaller._get_nspkg_file$   s4    g&&t'7'7'9'9::!$.((r    c                     | j         S r"   )targetr   s    r   r$   zInstaller._get_target(   s
    {r    )	zimport sys, types, osz#has_mfs = sys.version_info > (3, 5)z$p = os.path.join(%(root)s, *%(pth)r)z4importlib = has_mfs and __import__('importlib.util')z-has_mfs and __import__('importlib.machinery')zm = has_mfs and sys.modules.setdefault(%(pkg)r, importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec(%(pkg)r, [os.path.dirname(p)])))zCm = m or sys.modules.setdefault(%(pkg)r, types.ModuleType(%(pkg)r))z7mp = (m or []) and m.__dict__.setdefault('__path__',[])z(p not in mp) and mp.append(p))z4m and setattr(sys.modules[%(parent)r], %(child)r, m)c                     dS )Nz$sys._getframe(1).f_locals['sitedir'] r)   s    r   	_get_rootzInstaller._get_rootA   s    55r    c                    t          |                    d                    }|                                 }| j        }|                    d          \  }}}|r
|| j        z  }d                    |          t                      z  dz   S )N.;
)tuplesplitr,   _nspkg_tmpl
rpartition_nspkg_tmpl_multijoinlocals)r   pkgpthroot
tmpl_linesparentsepchilds           r   r   zInstaller._gen_nspkg_lineD   s}    CIIcNN##~~%
 ^^C00U 	1$00Jxx
##fhh.55r    c           
          | j         j        pg }t          t          t	          t          | j        |                                        S )z,Return sorted list of all package namespaces)distributionnamespace_packagessortedsetflattenr   
_pkg_names)r   pkgss     r   r   zInstaller._get_all_ns_packagesM   s<     39rc'#dot"<"<==>>???r    c              #      K   |                      d          }|r/d                    |          V  |                                 |-dS dS )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)r2   r6   pop)r8   partss     r   rE   zInstaller._pkg_namesR   s`       		# 	((5//!!!IIKKK  	 	 	 	 	r    N)__name__
__module____qualname__r%   r   r   r	   r$   r3   r5   r,   r   r   staticmethodrE   r+   r    r   r   r   	   s        I     "  ) ) )  K" (Q;6 6 66 6 6@ @ @
   \  r    r   c                       e Zd Zd Zd ZdS )DevelopInstallerc                 D    t          t          | j                            S r"   )reprstregg_pathr)   s    r   r,   zDevelopInstaller._get_rootc   s    C&&'''r    c                     | j         S r"   )egg_linkr)   s    r   r$   zDevelopInstaller._get_targetf   s
    }r    N)rJ   rK   rL   r,   r$   r+   r    r   rO   rO   b   s2        ( ( (    r    rO   )	r   	distutilsr   	itertoolschainfrom_iterablerD   r   rO   r+   r    r   <module>rZ      s    				           /
'V V V V V V V Vr    y     r    