mirror of https://github.com/python/cpython
25 lines
573 B
Python
Executable File
25 lines
573 B
Python
Executable File
"""
|
|
Generate zip test data files.
|
|
"""
|
|
|
|
import zipfile
|
|
|
|
|
|
def make_zip_file(tree, dst):
|
|
"""
|
|
Zip the files in tree into a new zipfile at dst.
|
|
"""
|
|
with zipfile.ZipFile(dst, 'w') as zf:
|
|
for name, contents in walk(tree):
|
|
zf.writestr(name, contents)
|
|
zipfile._path.CompleteDirs.inject(zf)
|
|
return dst
|
|
|
|
|
|
def walk(tree, prefix=''):
|
|
for name, contents in tree.items():
|
|
if isinstance(contents, dict):
|
|
yield from walk(contents, prefix=f'{prefix}{name}/')
|
|
else:
|
|
yield f'{prefix}{name}', contents
|