mirror of
https://github.com/morpheus65535/bazarr
synced 2024-12-22 15:54:26 +00:00
32 lines
783 B
Python
32 lines
783 B
Python
"""
|
|
Generate zip test data files.
|
|
"""
|
|
|
|
import contextlib
|
|
import os
|
|
import pathlib
|
|
import zipfile
|
|
|
|
import zipp
|
|
|
|
|
|
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)
|
|
zipp.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
|