File: //opt/saltstack/salt/lib/python3.10/site-packages/setuptools/__pycache__/namespaces.cpython-310.pyc
o
�N�g � @ sF d dl Z d dlmZ d dlZejjZG dd� d�ZG dd� de�ZdS )� N)�logc @ s` e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
Z dZ dd
� Z
dd� Zdd� Ze
dd� �ZdS )� Installerz
-nspkg.pthc C s� | � � }|sd S | �� }| j�|� t�d|� t| j|�}| jr't |� d S t
|d��}|�|� W d � d S 1 s=w Y d S )Nz
Installing %sZwt)�_get_all_ns_packages�_get_nspkg_fileZoutputs�appendr �info�map�_gen_nspkg_line�dry_run�list�open�
writelines)�selfZnsp�filename�lines�f� r �I/opt/saltstack/salt/lib/python3.10/site-packages/setuptools/namespaces.py�install_namespaces s "�zInstaller.install_namespacesc C s2 | � � }tj�|�sd S t�d|� t�|� d S )NzRemoving %s)r �os�path�existsr r �remove)r r r r r �uninstall_namespaces s
zInstaller.uninstall_namespacesc C s t j�| �� �\}}|| j S �N)r r �splitext�_get_target� nspkg_ext)r r �_r r r r $ s
zInstaller._get_nspkg_filec C � | j S r )�target�r r r r r ( � zInstaller._get_target) zimport 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')z�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)])))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 C s dS )Nz$sys._getframe(1).f_locals['sitedir']r r! r r r � _get_rootA s zInstaller._get_rootc C sN t |�d��}| �� }| j}|�d�\}}}|r|| j7 }d�|�t� d S )N�.�;�
)�tuple�splitr# �_nspkg_tmpl�
rpartition�_nspkg_tmpl_multi�join�locals)r �pkgZpth�rootZ
tmpl_lines�parent�sep�childr r r r D s
zInstaller._gen_nspkg_linec C s$ | j jpg }tttt| j|����S )z,Return sorted list of all package namespaces)ZdistributionZnamespace_packages�sorted�set�flattenr �
_pkg_names)r Zpkgsr r r r M s zInstaller._get_all_ns_packagesc c s0 � | � d�}|rd�|�V |�� |sdS dS )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( r, �pop)r. �partsr r r r6 R s �
�zInstaller._pkg_namesN)�__name__�
__module__�__qualname__r r r r r r) r+ r# r r �staticmethodr6 r r r r r s r c @ s e Zd Zdd� Zdd� ZdS )�DevelopInstallerc C s t t| j��S r )�repr�strZegg_pathr! r r r r# c s zDevelopInstaller._get_rootc C r r )Zegg_linkr! r r r r f r"