#
#   python_metadatos_generar_txt.py
#
#   Pregunta los metadatos y con ellos genera un archivo de texto
#       (se usa para guardar datos de pruebas de software)
#
#   Rogelio Ferreira Escutia -  octubre 2026
#

# Bibliotecas necesarias (no requieren instalar nada a través de PyPi)
import datetime

# Función que pregunta por los metadatos
def preguntar_metadatos():
    lista = []
    lista.append("Metadatos - Rogelio Ferreira Escutia")
    print("\nPreguntar Metadatos:")
    while True:
        print("\nSeleccionar tipo de pruebas:")
        print("\t1.- Generar un dataset de Sinónimos en Español a partir de otro dataset")
        opcion = input("Elige opción (1-1): ")
        if opcion == "1":
           lista.append("Prueba: Generar un dataset de Sinónimos en Español a partir de otro dataset")
           break
        else:
            print("\nOpción no válida. Por favor, introduce 1")
    while True:
        print("\nSeleccionar Dispositivo:")
        print("\t1.- MacBook Pro M3 con 18 GB RAM")
        opcion = input("Elige opción (1-1): ")
        if opcion == "1":
            lista.append("Dispositivo: MacBook Pro M3 con 18 GB RAM")
            break
        else:
            print("\nOpción no válida. Por favor, introduce 1")
    while True:
        print("\nSeleccionar Algoritmo Utilizado:")
        print("\t1.- No se utilizó ningún Algoritmo específico")
        opcion = input("Elige opción (1-1): ")
        if opcion == "1":
            lista.append("Algoritmo: No se utilizó ningún Algoritmo específico")
            break
        else:
            print("\nOpción no válida. Por favor, introduce 1")
    while True:
        print("\nSeleccionar Modelo Utilizado (LLM):")
        print("\t1.- No se utilizó ningún Modelo")
        opcion = input("Elige opción (1-1): ")
        if opcion == "1":
            lista.append("LLM: No se utilizó ningún Modelo")
            break
        else:
            print("\nOpción no válida. Por favor, introduce 1")
    return lista

# Recibe una lista y con ella genera un archivo de texto
def generar_archivo_txt(lista, nombre_archivo):
    with open(nombre_archivo, "w", encoding="utf-8") as f:
       for i, elemento in enumerate(lista):
          f.write(str(elemento))
          if i < len(lista) - 1:
             f.write("\n")
    return

#
#   PROGRAMA PRINCIPAL
#

# Inicializar los Metadatos
metadatos = []

# Preguntar Metadatos
metadatos = preguntar_metadatos()

# Agregando los Metadatos de Fecha, Hora y Tiempo de Ejecución
fecha_actual = datetime.datetime.now().strftime("%Y-%m-%d")
cadena = "Fecha: " + fecha_actual
metadatos.append(cadena)
hora_actual = datetime.datetime.now().strftime("%H:%M:%S.%f")
cadena = "Hora: " + hora_actual
metadatos.append(cadena)
tiempo_ejecucion = 5      # Dato de prueba que debe ser remplazado por un tiempo real
cadena = "Tiempo: " + str(tiempo_ejecucion)   
metadatos.append(cadena)

# Generando archivo TXT
nombre_archivo_txt = str(fecha_actual) + "-" + str(hora_actual) + ".txt"
generar_archivo_txt(metadatos, nombre_archivo_txt)

# Impresión de Metadatos
print("\nMetadatos Recolectados:\n\n", metadatos)
print("\nNombre del archivo generado: ", nombre_archivo_txt, "\n")