in src/loading_manifest/common_manifest.py [0:0]
def get_zipfile_filenamelist(input_path, zip_filename):
namelist = []
def add_inner_zipfile_filenamelist(parent_zip, child_zip_path, parent_zip_path, name_list):
childzip_filename = parent_zip_path + child_zip_path
childzip_filename_as_folder = childzip_filename[:childzip_filename.rfind(".")].strip() + "/"
memory_zip = BytesIO()
memory_zip.write(parent_zip.open(child_zip_path).read())
memory_zipfile = ZipFile(memory_zip)
childnames = memory_zipfile.namelist()
for childname in childnames:
if not memory_zipfile.getinfo(childname).is_dir():
if childname.lower().endswith(".zip"):
add_inner_zipfile_filenamelist(memory_zipfile, childname, childzip_filename_as_folder, name_list)
else:
namelist.append(childzip_filename_as_folder + childname)
full_path = os.path.join(input_path, zip_filename)
zip_filename_as_folder = zip_filename[:zip_filename.rfind(".")].strip()+"/"
with ZipFile(full_path, 'r') as f_zip:
names = f_zip.namelist()
for name in names:
if not f_zip.getinfo(name).is_dir():
if name.lower().endswith(".zip"):
add_inner_zipfile_filenamelist(f_zip, name, zip_filename_as_folder, namelist)
else:
namelist.append(zip_filename_as_folder + name)
return namelist