mirror of
https://github.com/python/cpython.git
synced 2025-09-23 00:43:12 +00:00

gh-106531: Apply changes from importlib_resources 6.3.2 (GH-117054)
Apply changes from importlib_resources 6.3.2.
(cherry picked from commit 8d63c8d47b
)
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
30 lines
779 B
Python
Executable file
30 lines
779 B
Python
Executable file
"""
|
|
Generate zip test data files.
|
|
"""
|
|
|
|
import contextlib
|
|
import os
|
|
import pathlib
|
|
import zipfile
|
|
|
|
|
|
def make_zip_file(src, dst):
|
|
"""
|
|
Zip the files in src into a new zipfile at dst.
|
|
"""
|
|
with zipfile.ZipFile(dst, 'w') as zf:
|
|
for src_path, rel in walk(src):
|
|
dst_name = src.name / pathlib.PurePosixPath(rel.as_posix())
|
|
zf.write(src_path, dst_name)
|
|
zipfile._path.CompleteDirs.inject(zf)
|
|
return dst
|
|
|
|
|
|
def walk(datapath):
|
|
for dirpath, dirnames, filenames in os.walk(datapath):
|
|
with contextlib.suppress(ValueError):
|
|
dirnames.remove('__pycache__')
|
|
for filename in filenames:
|
|
res = pathlib.Path(dirpath) / filename
|
|
rel = res.relative_to(datapath)
|
|
yield res, rel
|