"""Path utilities for experiment outputs.""" import os from pathlib import Path from datetime import datetime # Base directories BASE_DIR = Path(__file__).parent.parent RESULTS_DIR = BASE_DIR / "results" def ensure_dir(path: Path) -> Path: """Create directory if it doesn't exist.""" path.mkdir(parents=True, exist_ok=True) return path def get_results_dir() -> Path: """Get base results directory.""" return ensure_dir(RESULTS_DIR) def get_task_results_dir(task_name: str) -> Path: """Get results directory for a specific task.""" return ensure_dir(RESULTS_DIR / task_name) def create_experiment_dir(task_name: str, experiment_name: str | None = None) -> Path: """Create a timestamped directory for an experiment. Args: task_name: Name of the task (e.g., 'cta_1d', 'stock_15m') experiment_name: Optional experiment name (default: timestamp) Returns: Path to the created directory """ if experiment_name is None: experiment_name = datetime.now().strftime('%Y%m%d_%H%M%S') exp_dir = RESULTS_DIR / task_name / experiment_name return ensure_dir(exp_dir)