"""Shared path constants for the Cupido tracking project.""" import os from pathlib import Path # Where this code repository lives (the directory containing scripts/, notebooks/, ...). PROJECT_ROOT = Path(__file__).resolve().parent.parent DATA_METADATA = PROJECT_ROOT / "data" / "metadata" DATA_PROCESSED = PROJECT_ROOT / "data" / "processed" FIGURES = PROJECT_ROOT / "figures" LOGS_DIR = PROJECT_ROOT / "data" / "logs" # Where the source videos live (read-only NFS mount). VIDEOS_ROOT = Path("/mnt/ethoscope_data/videos") # Where the project's bulky data lives — outside the cloud-synced repo so # it doesn't churn the sync. This single root holds everything that's big # or regenerable: tracking DBs, target-point JSONs, and the metadata # spreadsheet (xlsx + TSV). DATA_VOLUME = Path("/mnt/data/projects/cupido") TARGETS_DIR = DATA_VOLUME / "targets" TRACKING_OUTPUT_DIR = DATA_VOLUME / "tracked" VIDEO_INFO_XLSX = DATA_VOLUME / "all_video_info_merged.xlsx" VIDEO_INFO_TSV = DATA_VOLUME / "all_video_info_merged.tsv" # A small CSV listing every video file we know about (built locally). INVENTORY_CSV = DATA_METADATA / "video_inventory.csv" # Hand-annotated barrier-opening times (output of the picker app). One # row per testing session; columns: machine_name, session_date, # session_time, opening_s, trim_first_s, bad_rois, analyst, notes. BARRIER_OPENING_CSV = DATA_METADATA / "barrier_opening.csv" # Where the ethoscope source tree is checked out (used by track_videos.py # and auto_detect_targets.py — host-side scripts that import ethoscope # from a local clone rather than from pip). Default assumes the standard # layout `~/Code/ethoscope_project/ethoscope/src/ethoscope`; override with # the ETHOSCOPE_SRC environment variable if your clone lives elsewhere. ETHOSCOPE_SRC = Path(os.environ.get( "ETHOSCOPE_SRC", str(Path.home() / "Code" / "ethoscope_project" / "ethoscope" / "src" / "ethoscope"), ))