"""
probe_combo.py - find saved backtest results files
  python src/research/probe_combo.py
"""
from pathlib import Path
import pandas as pd

BASE_PATH = Path(__file__).resolve().parents[2]

print("Searching for saved backtest/trade result files...")
print()

# Search all likely locations
search_dirs = [
    BASE_PATH / "data" / "processed",
    BASE_PATH / "data" / "processed" / "trades",
    BASE_PATH / "data" / "results",
    BASE_PATH / "data",
    BASE_PATH / "results",
    BASE_PATH / "output",
]

found = []
for d in search_dirs:
    if not d.exists():
        continue
    for f in d.iterdir():
        if f.suffix in ['.csv', '.parquet', '.pkl', '.feather', '.xlsx']:
            try:
                if f.suffix == '.csv':
                    df = pd.read_csv(f, nrows=3)
                elif f.suffix == '.parquet':
                    df = pd.read_parquet(f).head(3)
                else:
                    continue
                rows = len(pd.read_csv(f)) if f.suffix=='.csv' else len(pd.read_parquet(f))
                found.append((f, rows, list(df.columns)))
                print(f"  {f.name}")
                print(f"    rows={rows:,}  cols={list(df.columns)[:6]}")
                print()
            except Exception as e:
                print(f"  {f.name} — could not read: {e}")

if not found:
    print("No data files found in processed directories.")
    print()
    print("Checking all CSV files in project...")
    for f in BASE_PATH.rglob("*.csv"):
        if "raw" not in str(f) and "15M" not in f.name and "1H" not in f.name:
            try:
                df = pd.read_csv(f, nrows=2)
                size = f.stat().st_size // 1024
                print(f"  {f.relative_to(BASE_PATH)}  ({size}KB)  cols={list(df.columns)[:5]}")
            except:
                pass
