File size: 1,783 Bytes
ab66d4e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85fd14e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# main.py
from flask import Flask, jsonify, request
from flask_cors import CORS
import os
import sys
from dotenv import load_dotenv
load_dotenv()

# Add the 'routers' and 'utils' directories to the Python path
# This allows direct imports like 'from routers.preprocess_routes import preprocess_bp'
script_dir = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(script_dir, 'routers'))
sys.path.insert(0, os.path.join(script_dir, 'utils'))

# Import Blueprints
from routers.preprocess_routes import preprocess_bp
from routers.discover_routes import discover_bp
from routers.intervene_routes import intervene_bp
from routers.treatment_routes import treatment_bp
from routers.visualize_routes import visualize_bp
from routers.prediction_routes import prediction_bp
from routers.timeseries_routes import timeseries_bp
from routers.chatbot_routes import chatbot_bp

app = Flask(__name__)
CORS(app) # Enable CORS for frontend interaction

# Register Blueprints
app.register_blueprint(preprocess_bp, url_prefix='/preprocess')
app.register_blueprint(discover_bp, url_prefix='/discover')
app.register_blueprint(intervene_bp, url_prefix='/intervene')
app.register_blueprint(treatment_bp, url_prefix='/treatment')
app.register_blueprint(visualize_bp, url_prefix='/visualize')
app.register_blueprint(prediction_bp, url_prefix='/prediction')
app.register_blueprint(timeseries_bp, url_prefix='/timeseries')
app.register_blueprint(chatbot_bp, url_prefix='/chatbot')

@app.route('/')
def home():
    return "Welcome to CausalBox Backend API!"

if __name__ == '__main__':
    # Ensure the 'data' directory exists for storing datasets
    os.makedirs('data', exist_ok=True)
    # Run the Flask app
    app.run(debug=True, host='0.0.0.0', port=5000)