import os import pandas as pd from flask import Flask, request, jsonify, render_template_string app = Flask(__name__) # Simulación de la función de cálculo del KCDI # Reemplaza esta función con tu lógica real de cálculo del KCDI def calculate_kcdi(df): """ Calcula el KCDI a partir de un DataFrame de pandas. """ try: # Aquí iría tu código para procesar el DataFrame de Scopus # y calcular los valores de KCDI, entropía, etc. # Por ejemplo, basándote en la estructura de tu análisis. # Valores simulados para fines de demostración kcdi = 0.916 h_shannon = 1.668 w_bar = 0.12 description = "Resultado simulado para demostración" return { 'kcdi_value': kcdi, 'H_shannon': h_shannon, 'W_bar': w_bar, 'description': description } except Exception as e: return {'error': f'Error en el cálculo: {str(e)}'} # Plantilla HTML y JavaScript directamente en el código de Python html_template = """ Calculadora KCDI

Calculadora de Índice KCDI

Sube tu archivo CSV exportado de Scopus para calcular el KCDI.

""" @app.route('/') def index(): return render_template_string(html_template) @app.route('/calculate', methods=['POST']) def calculate(): if 'file' not in request.files: return jsonify({'error': 'No se encontró el archivo'}), 400 file = request.files['file'] if file.filename == '': return jsonify({'error': 'No se seleccionó ningún archivo'}), 400 if file: try: df = pd.read_csv(file) results = calculate_kcdi(df) return jsonify(results), 200 except Exception as e: return jsonify({'error': f'Error en el procesamiento del archivo: {str(e)}'}), 500 if __name__ == '__main__': app.run(debug=True)