""" ScriptsManager Metadata: @description: Analyzes CSV data and generates statistical reports @description_long: docs/data_analyzer.md @description_es: Analiza datos CSV y genera reportes estadísticos @description_it: Analizza dati CSV e genera report statistici @description_fr: Analyse les données CSV et génère des rapports statistiques @required_level: user @category: analysis @tags: csv,statistics,reports @parameters: [ { "name": "input_file", "type": "file", "description": "CSV file to analyze", "required": true, "accept": ".csv" }, { "name": "report_type", "type": "select", "description": "Type of report to generate", "required": true, "options": ["summary", "detailed", "charts"] } ] @execution_timeout: 300 @flask_port: 5001 """ from flask import Flask, render_template, request, jsonify import sys import os import pandas as pd import json app = Flask(__name__) # Get parameters from ScriptsManager data_dir = sys.argv[1] if len(sys.argv) > 1 else "./data" user_level = sys.argv[2] if len(sys.argv) > 2 else "user" port = int(sys.argv[3]) if len(sys.argv) > 3 else 5001 @app.route("/") def index(): return render_template( "data_analyzer.html", data_dir=data_dir, user_level=user_level ) @app.route("/analyze", methods=["POST"]) def analyze_data(): try: input_file = request.form.get("input_file") report_type = request.form.get("report_type") # Simulate data analysis result = { "status": "success", "message": f"Analysis completed for {input_file} with {report_type} report", "data": {"rows": 1000, "columns": 15, "report_type": report_type}, } # Save result to data directory result_path = os.path.join(data_dir, "analysis_result.json") with open(result_path, "w") as f: json.dump(result, f, indent=2) return jsonify(result) except Exception as e: return jsonify({"status": "error", "message": str(e)}), 500 if __name__ == "__main__": print(f"Starting Data Analyzer on port {port}") print(f"Data directory: {data_dir}") print(f"User level: {user_level}") app.run(host="0.0.0.0", port=port, debug=True)