_i d dl Z d dlZd dlZd dlZd dlZd dlZd dlZej dk rd dlm Z ne
Z dgZd Zd Z
e j Z d Z G d d ej" Z G d
de Zd Z G d
d Zy) N) )OrderedDictPathc B t j 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) itertoolsislice _ancestrypaths /builddir/build/BUILDROOT/alt-python312-setuptools-69.0.2-3.el8.x86_64/opt/alt/python312/lib/python3.12/site-packages/setuptools/_vendor/zipp.py_parentsr s IdOQ55 c # K | j t j } | rH| t j k7 r4| t j | \ } }| r| t j k7 r2yyyyw)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 posixpathsepsplit)r
tails r r r % sV ;;y}}%D
49==(
__T*
d 49==($($s A&A-)A-c T t j t | j | S )zZ
Return items in minuend not in subtrahend, retaining order
with O(1) lookup.
)r filterfalseset__contains__)minuend
subtrahends r _differencer ? s!
Z!=!=wGGr c N e Zd ZdZed Z fdZd Zd Ze d Z
xZS )CompleteDirszk
A ZipFile subclass that ensures that implied directories
are always included in the namelist.
c t j j t t | }d |D }t t
|| S )Nc 3 B K | ] }|t j z y wN)r r ).0ps r