U
    f
                     @   sJ   d dl Z d dlZd dlZd dlmZ dd ZdddZd	d
 Zdd ZdS )    N)Pathc                 c   s8   |  d}tt|D ]}d|d |d  V  qd S )N.   )splitrangelenjoin)	namespacepartsi r   :lib/python3.8/site-packages/setuptools/tests/namespaces.pyiter_namespace_pkgs   s    
r   1.0pkg_resourcesc                 C   s&  | | }|   |d }|d\}}}tt|}	|||	d}
|dkrVd}|	|
d< n|dkrdd}ntd	|d
tj|
dd}t|st	t
dj|d}|j|dd t||dd}|j dd |	D ]&}||dd d }|j|dd q||d  }djf t }|j|dd |S )Nzsetup.pyr   )nameversionZpackagesr   z7__import__("pkg_resources").declare_namespace(__name__)Znamespace_packagespkgutilz@__path__ = __import__("pkgutil").extend_path(__path__, __name__)zCannot recognise impl=z when creating namespaces   )indentzY        import setuptools
        args = {args}
        setuptools.setup(**args)
        )argsutf-8encoding/Tparentsz__init__.py.pyzname = {rest!r})mkdir
rpartitionlistr   
ValueErrorjsondumpsastZliteral_evalAssertionErrortextwrapdedentformat
write_textr   replacelocals)tmpdirr   r   implsrc_dirZsetup_pyr	   _restZ
namespacesZ
setup_argstmplr   script
ns_pkg_dirnsZpkg_initpkg_modsome_functionalityr   r   r   build_namespace_package   s@    
r7   c                 C   s   | | }|   |d }|d\}}}d| d}|jt|dd t||dd}|j dd	 ||d
  }	d|}
|	j|
dd |S )Nzpyproject.tomlr   z        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"

        [project]
        name = "z&"
        version = "3.14159"
        r   r   r   Tr   r   zname = )r   r   r)   r&   r'   r   r*   )r,   r   r.   Z	pyprojectr	   r/   r0   r2   r3   r5   r6   r   r   r   build_pep420_namespace_package:   s    	
r8   c                 C   s0   | d }t | }d}|j|jf t dd dS )z
    Add a sitecustomize.py module in target to cause
    target to be added to site dirs such that .pth files
    are processed there.
    zsitecustomize.pyz-__import__("site").addsitedir({target_str!r})r   r   N)strr)   r(   r+   )targetZscZ
target_strr1   r   r   r   make_site_dirQ   s    r;   )r   r   )	r$   r"   r&   pathlibr   r   r7   r8   r;   r   r   r   r   <module>   s   
-