3 ] d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl Zd dlZd dl mZ ej dk rd dlmZ nd dlZej dd Zej dd d Zd!dZd Z eee Zej d Zd Zej ej fd Zej ddefd Zd Z G d d Z G d dej ej Z G d dej Z!dS )" )annotationsN)Iterator) )tarfiledirstr | os.PathLikereturnIterator[str | os.PathLike]c # K t j }t j | | V t j | dS # t j | w xY w)z >>> tmp_path = getfixture('tmp_path') >>> with pushd(tmp_path): ... assert os.getcwd() == os.fspath(tmp_path) >>> assert os.getcwd() != os.fspath(tmp_path) N)osgetcwdchdir)r origs s/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/context.pypushdr sQ 9;;DHSMMM s A A target_dirstr | os.PathLike | Nonec # K |Gt j | dd dd }t j | t j | }t j |d 5 }| |t ddd n# 1 swxY w Y |V t j | dS # t j | w xY w)a Get a tarball, extract it, yield, then clean up. >>> import urllib.request >>> url = getfixture('tarfile_served') >>> target = getfixture('tmp_path') / 'out' >>> tb = tarball(url, target_dir=target) >>> import pathlib >>> with tb as extracted: ... contents = pathlib.Path(extracted, 'contents.txt').read_text(encoding='utf-8') >>> assert not os.path.exists(extracted) Nz.tar.gz z.tgzzr|*)fileobjmode)pathfilter)r r basenamereplacemkdirurllibrequesturlopenr open extractallstrip_first_componentshutilrmtree)urlr reqtfs r tarballr) ' s6 W%%c**229bAAII&RTUU HZ"n$$S)) \#E 2 2 2 IbMMz2GMHHH I I I I I I I I I I I I I I I j!!!!! j!!!!s0 !5C$ B?3C$ ?CC$ CC$ $C:membertarfile.TarInfoc L | j dd \ }| _ | S )N/ )namesplit)r* r _s r r# r# G s&