Spaces:
Sleeping
Sleeping
# routers/timeseries_routes.py | |
from flask import Blueprint, request, jsonify | |
import pandas as pd | |
from utils.time_series_causal import perform_granger_causality | |
timeseries_bp = Blueprint('timeseries_bp', __name__) | |
def discover_timeseries_causality(): | |
""" | |
API endpoint to perform time-series causal discovery (Granger Causality). | |
""" | |
data = request.json.get('data') | |
timestamp_col = request.json.get('timestamp_col') | |
variables_to_analyze = request.json.get('variables_to_analyze') | |
max_lags = request.json.get('max_lags', 1) # Default to 1 lag | |
if not all([data, timestamp_col, variables_to_analyze]): | |
return jsonify({"detail": "Missing required parameters for time-series causal discovery."}), 400 | |
if not isinstance(max_lags, int) or max_lags <= 0: | |
return jsonify({"detail": "max_lags must be a positive integer."}), 400 | |
try: | |
results = perform_granger_causality(data, timestamp_col, variables_to_analyze, max_lags) | |
return jsonify({"results": results}), 200 | |
except ValueError as e: | |
return jsonify({"detail": str(e)}), 400 | |
except Exception as e: | |
return jsonify({"detail": f"An error occurred during time-series causal discovery: {str(e)}"}), 500 |