관리-도구
편집 파일: zipp.cpython-37.pyc
B mH�a� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZejdk rPd dlm Z ne Z dgZdd� Zdd� Z e jZd d � ZG dd� dej�ZG d d� de�Zdd� ZG dd� d�ZdS )� N)� � )�OrderedDict�Pathc C s t �t| �dd�S )a2 Given a path with elements separated by posixpath.sep, generate all parents of that path. >>> list(_parents('b/d')) ['b'] >>> list(_parents('/b/d/')) ['/b'] >>> list(_parents('b/d/f/')) ['b/d', 'b'] >>> list(_parents('b')) [] >>> list(_parents('')) [] � N)� itertools�islice� _ancestry)�path� r �5/opt/alt/python37/lib/python3.7/site-packages/zipp.py�_parents s r c c s8 | � tj�} x&| r2| tjkr2| V t�| �\} }qW dS )aR Given a path with elements separated by posixpath.sep, generate all elements of that path >>> list(_ancestry('b/d')) ['b/d', 'b'] >>> list(_ancestry('/b/d/')) ['/b/d', '/b'] >>> list(_ancestry('b/d/f/')) ['b/d/f', 'b/d', 'b'] >>> list(_ancestry('b')) ['b'] >>> list(_ancestry('')) [] N)�rstrip� posixpath�sep�split)r �tailr r r r % s r c C s t �t|�j| �S )zZ Return items in minuend not in subtrahend, retaining order with O(1) lookup. )r �filterfalse�set�__contains__)�minuend� subtrahendr r r �_difference? s r c sH e Zd ZdZedd� �Z� fdd�Zdd� Zdd � Ze d d� �Z � ZS )�CompleteDirszk A ZipFile subclass that ensures that implied directories are always included in the namelist. c C s. t j�tt| ��}dd� |D �}tt|| ��S )Nc s s | ]}|t j V qd S )N)r r )�.0�pr r r � <genexpr>P s z-CompleteDirs._implied_dirs.<locals>.<genexpr>)r �chain� from_iterable�mapr �_deduper )�names�parents�as_dirsr r r � _implied_dirsM s zCompleteDirs._implied_dirsc s t t| ��� }|t| �|�� S )N)�superr �namelist�listr$ )�selfr! )� __class__r r r&