0
0
ppeterhorvat
The function returns a zip file of different types of files.
Shortcut: cre
Filename pattern: .py
import io
import zipfile
def get_zip(datasets: list, filenames: list[str]):
"""
Description
---------
The function generate a ZIP file from the list of datasets
Parameters
----------
datasets: list[(bytes, str, str)], required
- list structured like [(dataset, file_extension, mimetype), ...]
filenames: list[str], required
- names, used for ZIP files and all files inside the ZIP file
Returns
-------
bytes
- buffer content in bytes
"""
zip_buffer = io.BytesIO()
with zipfile.ZipFile(zip_buffer, "a", zipfile.ZIP_DEFLATED, False) as zip_file:
for i, (dataset, extension, mimetype) in enumerate(datasets):
if isinstance(dataset, str):
zip_file.writestr(f"{filenames[i]}.{extension}", io.StringIO(dataset).getvalue())
elif isinstance(dataset, bytes):
zip_file.writestr(f"{filenames[i]}.{extension}", io.BytesIO(dataset).getvalue())
return zip_buffer.getvalue()