mirror of
https://github.com/morpheus65535/bazarr
synced 2024-12-22 15:54:26 +00:00
33 lines
783 B
Python
33 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
|