def _get_experiment_directory_zipfile_entries()

in airavata_django_portal_sdk/views.py [0:0]


def _get_experiment_directory_zipfile_entries(request, experiment_id, path, directory="", zipfile_prefix="", includes=None, excludes=None):
    directories, files = user_storage.list_experiment_dir(request, experiment_id, os.path.join(path, directory))
    for file in files:
        matches, rename = _matches_filters(file['name'], includes=includes, excludes=excludes)
        if matches:
            archive_name = os.path.join(zipfile_prefix, directory, rename if rename is not None else file['name'])
            yield archive_name, file["data-product-uri"], file["size"]
    for d in directories:
        yield from _get_experiment_directory_zipfile_entries(
            request, experiment_id, path, directory=os.path.join(directory, d['name']),
            zipfile_prefix=zipfile_prefix)