Working with Folders
Folders organise data inside a project. They can be nested arbitrarily deep and support relative-path navigation.
Get the root folder
root_folder = agora.get_myagora().get_root_folder()
print(f'Root folder ID: {root_folder.id}')
Get a folder by ID
folder = agora.get_folder(45)
List sub-folders
for f in folder.get_folders():
print(f.name)
Get a sub-folder by name
Returns None when the folder does not exist.
my_folder = folder.get_folder('MySubFolder')
Create a folder
Raises an exception if a folder with the same name already exists.
new_folder = root_folder.create_folder('TestFolder')
print(f'Created folder with ID {new_folder.id}')
Get or create a folder
Safe to call from automation scripts — returns the existing folder if found.
folder = root_folder.get_or_create('TestFolder')
Create a nested path in one call
from pathlib import Path
deep_folder = agora.get_or_create_folder(
Path('Results/2024/Q1'),
base_folder=root_folder,
)
List folder contents
An item can be an exam, series, dataset or a link to another object.
for item in folder.get_items():
print(item)
Get all exams in a folder
Pass recursive=True to include exams in sub-folders:
exams = folder.get_exams(recursive=True)
Get all datasets in a folder
datasets = folder.get_datasets(recursive=False)
Get a dataset by name
Returns None when not found:
ds = folder.get_dataset('my_dataset')
Delete a folder
Warning
Deletion is recursive — all items inside the folder are deleted. Links are not followed during deletion.
folder.delete()