⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.30
Server IP:
45.79.8.107
Server:
Linux localhost 5.15.0-140-generic #150-Ubuntu SMP Sat Apr 12 06:00:09 UTC 2025 x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.2-1ubuntu2.21
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
python3
/
dist-packages
/
__pycache__
/
View File Name :
zipp.cpython-310.pyc
o f @ s d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z e Zdd Zdd Z G dd dZG d d d ZdS ) )divisionNc C s t t| ddS )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 _ancestrypath r &/usr/lib/python3/dist-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 posixpathsepsplit)r tailr r r r % s r c s, e Zd ZdZ fddZedd Z ZS )SanitizedNamesz7 ZipFile mix-in to ensure names are sanitized. c s t t| jt S N)listmap _sanitizesupernamelistself __class__r r r ? s zSanitizedNames.namelistc C s` dd }t jdd| t jd}|dd}|d}dt||}|s'td|d| d S ) a] Ensure a relative path with posix separators and no dot names. Modeled after https://github.com/python/cpython/blob/bcc1be39cb1d04ad9fc0bd1b9193d3972835a57c/Lib/zipfile/__init__.py#L1799-L1813 but provides consistent cross-platform behavior. >>> san = SanitizedNames._sanitize >>> san('/foo/bar') 'foo/bar' >>> san('//foo.txt') 'foo.txt' >>> san('foo/.././bar.txt') 'foo/bar.txt' >>> san('foo../.bar.txt') 'foo../.bar.txt' >>> san('\\foo\\bar.txt') 'foo/bar.txt' >>> san('D:\\foo.txt') 'D/foo.txt' >>> san('\\\\server\\share\\file.txt') 'server/share/file.txt' >>> san('\\\\?\\GLOBALROOT\\Volume3') '?/GLOBALROOT/Volume3' >>> san('\\\\.\\PhysicalDrive1\\root') 'PhysicalDrive1/root' Retain any trailing slash. >>> san('abc/') 'abc/' Raises a ValueError if the result is empty. >>> san('../..') Traceback (most recent call last): ... ValueError: Empty filename c S s | o| dvS )N> ...r )partr r r allowedf z)SanitizedNames._sanitize.
.allowedz ^([A-Z]):z\1)flags\/zEmpty filename) resub IGNORECASEreplacer joinfilter ValueErrorendswith)namer barecleanpartsjoinedr r r r B s $ zSanitizedNames._sanitize)__name__ __module____qualname____doc__r staticmethodr __classcell__r r r r r : s r c @ s e Zd ZdZdZd,ddZedd Zedd Z ed d Z dd Zdd Zdd Z dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! ZeZed"d# Zed$d% Zed&d' Zd(d) Zejd*k rleZd+S d+S )-Pathu A pathlib-compatible interface for zip files. Consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── d └── e.txt >>> data = io.BytesIO() >>> zf = zipfile.ZipFile(data, 'w') >>> zf.writestr('a.txt', 'content of a') >>> zf.writestr('b/c.txt', 'content of c') >>> zf.writestr('b/d/e.txt', 'content of e') >>> zf.filename = 'abcde.zip' Path accepts the zipfile object itself or a filename >>> root = Path(zf) From there, several path operations are available. Directory iteration (including the zip file itself): >>> a, b = root.iterdir() >>> a Path('abcde.zip', 'a.txt') >>> b Path('abcde.zip', 'b/') name property: >>> b.name 'b' join with divide operator: >>> c = b / 'c.txt' >>> c Path('abcde.zip', 'b/c.txt') >>> c.name 'c.txt' Read text: >>> c.read_text() 'content of c' existence: >>> c.exists() True >>> (b / 'missing.txt').exists() False Coercion to string: >>> str(c) 'abcde.zip/b/c.txt' z>{self.__class__.__name__}({self.root.filename!r}, {self.at!r}) c C s, t |tjr|nt| || _|| _d S r ) isinstancezipfileZipFile_pathlib_compatrootat)r r= r> r r r __init__ s z Path.__init__c C s&