
    ,hc                         d dl Z d dlZddlmZ d dlmZ e j                  j                  Z G d d      Z	 G d de	      Z
y)	    N   )py312)logc                   Z    e Zd ZdZddZddZd Zd ZdZ	 dZ		 d	 Z
d
 Zd Zed        Zy)	Installerz
-nspkg.pthNc                    | j                         }|sy | j                         }| j                  j                  |       t	        j
                  d|       t        | j                  |      }| j                  rt        |       y t        |dt        j                        5 }|j                  |       d d d        y # 1 sw Y   y xY w)NzInstalling %swt)encoding)_get_all_ns_packages_get_nspkg_fileoutputsappendr   infomap_gen_nspkg_linedry_runlistopenr   PTH_ENCODING
writelines)selfnspfilenamelinesfs        W/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/setuptools/namespaces.pyinstall_namespaceszInstaller.install_namespaces   s    '')'')H%(+D((#.<<K(D5+=+=> 	 ! LL	  	  	 s   B::Cc                     | j                         }t        j                  j                  |      sy t	        j
                  d|       t        j                  |       y )NzRemoving %s)r   ospathexistsr   r   remove)r   r   s     r   uninstall_namespaceszInstaller.uninstall_namespaces!   s=    '')ww~~h')
		(    c                     t         j                  j                  | j                               \  }}|| j                  z   S N)r   r    splitext_get_target	nspkg_ext)r   r   _s      r   r   zInstaller._get_nspkg_file(   s2    gg&&t'7'7'9:!$..((r$   c                     | j                   S r&   )targetr   s    r   r(   zInstaller._get_target,   s    {{r$   )zimport sys, types, osz$p = os.path.join(%(root)s, *%(pth)r)z(importlib = __import__('importlib.util')z!__import__('importlib.machinery')zm = 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                      y)Nz$sys._getframe(1).f_locals['sitedir'] r-   s    r   	_get_rootzInstaller._get_rootD   s    5r$   c                     t        |j                  d            }| j                         }| j                  }|j	                  d      \  }}}|r|| j
                  z  }dj                  |      t               z  dz   S )N.;
)tuplesplitr0   _nspkg_tmpl
rpartition_nspkg_tmpl_multijoinlocals)r   pkgpthroot
tmpl_linesparentsepchilds           r   r   zInstaller._gen_nspkg_lineG   sn    CIIcN#~~%%
 ^^C0U$000Jxx
#fh.55r$   c           
          | j                   j                  xs 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_packagesP   s8      339rc'#doot"<=>??r$   c              #      K   | j                  d      }|r'dj                  |       |j                          |r&yyw)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
        r2   N)r6   r:   pop)r<   partss     r   rI   zInstaller._pkg_namesU   s4      		#((5/!IIK s   9>>)returnN)__name__
__module____qualname__r)   r   r#   r   r(   r7   r9   r0   r   r   staticmethodrI   r/   r$   r   r   r      sT    I &)K  (Q;66@
  r$   r   c                       e Zd Zd Zd Zy)DevelopInstallerc                 >    t        t        | j                              S r&   )reprstregg_pathr-   s    r   r0   zDevelopInstaller._get_rootf   s    C&''r$   c                     | j                   S r&   )egg_linkr-   s    r   r(   zDevelopInstaller._get_targeti   s    }}r$   N)rO   rP   rQ   r0   r(   r/   r$   r   rT   rT   e   s    (r$   rT   )	itertoolsr   compatr   	distutilsr   chainfrom_iterablerH   r   rT   r/   r$   r   <module>r`      s9     	  
//
'
'W Wty r$   