File: //opt/saltstack/salt/lib/python3.10/site-packages/__pycache__/zipp.cpython-310.pyc
o
�N�g� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZejdk r(d dlm Z ne
Z dgZdd� Zdd� Z
e jZ d 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 �8/opt/saltstack/salt/lib/python3.10/site-packages/zipp.py�_parents s r c c sN � | � tj�} | r!| tjkr%| V t�| �\} }| r#| tjksdS dS dS 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__)ZminuendZ
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�parentsZas_dirsr r r
�
_implied_dirsM s zCompleteDirs._implied_dirsc s t t| ��� }|t| �|�� S r )�superr �namelist�listr# )�selfr! �� __class__r r
r% S s zCompleteDirs.namelistc C s t | �� �S r )r r% �r'