관리-도구
편집 파일: namespaces.cpython-36.pyc
3 K�Re � @ sR d dl Z d dlmZ d dlZd dlmZ ejjZG dd� d�Z G dd� de �Z dS )� N)�log)�mapc @ sT e Zd ZdZdd� Zdd� Zdd� ZdZdZdd� Z dd� Z dd� Zedd� �Z dS )� Installerz -nspkg.pthc C s� | j � }|sd S tjj| j� �\}}|| j7 }| jj|� tj d|� t | j|�}| jrdt |� d S t|d��}|j|� W d Q R X d S )Nz Installing %s�wt)�_get_all_ns_packages�os�path�splitext�_get_target� nspkg_ext�outputs�appendr �infor �_gen_nspkg_line�dry_run�list�open� writelines)�self�nsp�filename�ext�lines�f� r ��/builddir/build/BUILDROOT/alt-python36-setuptools-38.5.2-7.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/setuptools/namespaces.py�install_namespaces s zInstaller.install_namespacesc C sH t jj| j� �\}}|| j7 }t jj|�s.d S tjd|� t j|� d S )NzRemoving %s) r r r r r �existsr r �remove)r r r r r r �uninstall_namespaces! s zInstaller.uninstall_namespacesc C s | j S )N)�target)r r r r r ) s zInstaller._get_target�import sys, types, os�#has_mfs = sys.version_info > (3, 5)�$p = os.path.join(%(root)s, *%(pth)r)�4importlib = has_mfs and __import__('importlib.util')�-has_mfs and __import__('importlib.machinery')��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)])))�Cm = m or sys.modules.setdefault(%(pkg)r, types.ModuleType(%(pkg)r))�7mp = (m or []) and m.__dict__.setdefault('__path__',[])�(p not in mp) and mp.append(p)�4m 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_rootC s zInstaller._get_rootc C sV t |�}t|jd��}| j� }| j}|jd�\}}}|rB|| j7 }dj|�t� d S )N�.�;� ) �str�tuple�splitr+ �_nspkg_tmpl� rpartition�_nspkg_tmpl_multi�join�locals)r �pkg�pth�rootZ tmpl_lines�parent�sep�childr r r r F s zInstaller._gen_nspkg_linec C s | j jp g }ttt| j|���S )z,Return sorted list of all package namespaces)�distributionZnamespace_packages�sorted�flattenr � _pkg_names)r �pkgsr r r r Q s zInstaller._get_all_ns_packagesc c s, | j d�}x|r&dj|�V |j� qW 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)r1 r5 �pop)r7 �partsr r r r@ V s zInstaller._pkg_namesN) r! r"