Trackio documentation
Python API для управления запусками
Python API для управления запусками
Trackio предоставляет класс Python API (trackio.Api()), который позволяет программно управлять запусками в ваших проектах. Этот API похож на wandb.Api() и предоставляет методы для удаления запусков, перемещения запусков между проектами и доступа к информации о запусках.
Примечание: Это отличается от Trackio в качестве API-сервера, который запускает дашборд Trackio как веб-сервер с API-эндпоинтами. Python API (trackio.Api()) — это клиентский интерфейс для управления запусками в вашей локальной базе данных Trackio.
Базовое использование
import trackio
# Initialize the API
api = trackio.Api()
# Get all runs in a project
runs = api.runs("my_project")
# Access individual runs
for run in runs:
print(f"Run: {run.name}, Project: {run.project}")
print(f"Config: {run.config}")
# Or access by index
first_run = runs[0]Удаление запусков
api = trackio.Api()
runs = api.runs("my_project")
# Delete a specific run
run = runs[0]
success = run.delete() # Returns True if successfulПеремещение запусков между проектами
api = trackio.Api()
runs = api.runs("source_project")
# Move a run to a different project
run = runs[0]
success = run.move("target_project") # Returns True if successful
# After moving, the run object's project is updated
print(run.project) # "target_project"При перемещении запуска все связанные данные переносятся:
- Все метрики и журналы
- Конфигурация запуска
- Системные метрики
- Медиафайлы (изображения, видео, аудио)
Запуск полностью удаляется из исходного проекта и добавляется в целевой проект.
Справочник API
Api
Основная точка входа для Python API Trackio.
api = trackio.Api()
Методы
runs(project: str) -> Runs: Возвращает коллекцию запусков для указанного проекта. ВызываетValueError, если проект не существует.
Запуски
Коллекция запусков, поддерживающая итерацию и индексацию.
runs = api.runs("my_project")
len(runs) # Number of runs
runs[0] # First run
for run in runs: # Iterate over runs
...Запустить
Представляет один запуск в проекте.
Свойства
id: стабильный идентификатор запуска, используемый внутри Trackioname: Имя запуска, понятное человеку. Несколько запусков могут иметь одинаковое имя.project: проект, к которому относится этот запускconfig: словарь конфигурации запуска (загружается лениво)
Примечание: Несколько запусков могут иметь одинаковое name, так как Trackio использует идентификатор id для их внутренней дифференциации.
Методы
delete() -> bool: Удаляет run из проекта. ВозвращаетTrueпри успешном выполнении,Falseв противном случае.move(new_project: str) -> bool: Перемещает run в другой проект. ВозвращаетTrueпри успешном выполнении,Falseв противном случае. Обновляет свойствоprojectrun после успешного перемещения.
Примеры
Список всех запусков во всех проектах
import trackio
from trackio.sqlite_storage import SQLiteStorage
api = trackio.Api()
# Get all projects
projects = SQLiteStorage.get_projects()
# List runs in each project
for project in projects:
print(f"\nProject: {project}")
runs = api.runs(project)
for run in runs:
print(f" - {run.name}")Удаление старых запусков
api = trackio.Api()
runs = api.runs("my_project")
# Delete runs older than a certain date
from datetime import datetime
cutoff_date = datetime(2024, 1, 1)
for run in runs:
if run.config and "_Created" in run.config:
created = datetime.fromisoformat(run.config["_Created"])
if created < cutoff_date:
run.delete()
print(f"Deleted old run: {run.name}")Организуйте эксперименты, перемещая их
api = trackio.Api()
# Move all runs from "experiments" to "archive"
source_runs = api.runs("experiments")
for run in source_runs:
run.move("archive")
print(f"Moved {run.name} to archive")