o
    ^+)h#                     @   sH   d dl Z d dlZd dlmZmZ d dlm  mZ G dd dejZdS )    N)productstarmapc                   @   s\   e Zd ZdZdd Zdd Zdd Zedd	 Zd
d Z	edd Z
	dddZdd ZdS )install_libz9Don't add compiled flags to filenames of non-Python filesc                 C   s*   |    |  }|d ur| | d S d S N)buildinstallbyte_compile)selfoutfiles r   ]C:\Users\User\Downloads\Proyecto_IoT\venv\Lib\site-packages\setuptools/command/install_lib.pyrun
   s
   zinstall_lib.runc                    s4    fdd   D }t|  }tt j|S )z
        Return a collections.Sized collections.Container of paths to be
        excluded for single_version_externally_managed installations.
        c                 3   s$    | ]}  |D ]}|V  q	qd S r   )_all_packages).0Zns_pkgpkgr	   r   r   	<genexpr>   s    z-install_lib.get_exclusions.<locals>.<genexpr>)_get_SVEM_NSPsr   _gen_exclusion_pathssetr   _exclude_pkg_path)r	   Zall_packagesZ
excl_specsr   r   r   get_exclusions   s
   
zinstall_lib.get_exclusionsc                 C   s&   | d|g }tjj| jg|R  S )zw
        Given a package name and exclusion path within that package,
        compute the full exclusion path.
        .)splitospathjoinZinstall_dir)r	   r   Zexclusion_pathpartsr   r   r   r      s   zinstall_lib._exclude_pkg_pathc                 c   s(    | r| V  |  d\} }}| sdS dS )zn
        >>> list(install_lib._all_packages('foo.bar.baz'))
        ['foo.bar.baz', 'foo.bar', 'foo']
        r   N)
rpartition)pkg_namesepchildr   r   r   r   '   s
   zinstall_lib._all_packagesc                 C   s,   | j jsg S | d}|j}|r| j jS g S )z
        Get namespace packages (list) but only for
        single_version_externally_managed installations and empty otherwise.
        r   )distributionnamespace_packagesZget_finalized_commandZ!single_version_externally_managed)r	   Zinstall_cmdZsvemr   r   r   r   1   s
   
zinstall_lib._get_SVEM_NSPsc                  c   sd    dV  dV  dV  t tdsdS tjddtjj } | d V  | d	 V  | d
 V  | d V  dS )zk
        Generate file paths to be excluded for namespace packages (bytecode
        cache files).
        z__init__.pyz__init__.pycz__init__.pyoimplementationN__pycache__z	__init__.z.pycz.pyoz
.opt-1.pycz
.opt-2.pyc)hasattrsysr   r   r   r$   	cache_tag)baser   r   r   r   A   s   



z install_lib._gen_exclusion_paths   r   c           	         sh   |r|r|rJ |     stj| ||S ddlm} ddlm g  fdd}|||| S )Nr   )unpack_directory)logc                    s<   | v r d| dS d| tj| | |S )Nz/Skipping installation of %s (namespace package)Fzcopying %s -> %s)warninfor   r   dirnameappend)srcdstexcluder,   r
   r   r   pfh   s   
z!install_lib.copy_tree.<locals>.pf)r   origr   	copy_treeZsetuptools.archive_utilr+   	distutilsr,   )	r	   infileoutfileZpreserve_modeZpreserve_timesZpreserve_symlinkslevelr+   r5   r   r3   r   r7   W   s   
zinstall_lib.copy_treec                    s.   t j| }|    r fdd|D S |S )Nc                    s   g | ]}| vr|qS r   r   )r   fr4   r   r   
<listcomp>y   s    z+install_lib.get_outputs.<locals>.<listcomp>)r6   r   get_outputsr   )r	   Zoutputsr   r=   r   r?   u   s
   zinstall_lib.get_outputsN)r*   r*   r   r*   )__name__
__module____qualname____doc__r   r   r   staticmethodr   r   r   r7   r?   r   r   r   r   r      s    
	

r   )	r   r'   	itertoolsr   r   Zdistutils.command.install_libcommandr   r6   r   r   r   r   <module>   s
    