# -*- coding: utf-8 -*- """ Modulo principal para ejecutar el modelo de subasta """ import logging from logging.handlers import RotatingFileHandler import queue import shutil import sys from simsdt.model import ModeloSubasta from qhandler import QueueHandler # log_queue = queue.Queue() # qh = QueueHandler(log_queue) # formatter = logging.Formatter( # '%(asctime)s: %(message)s', datefmt='%Y-%m-%dT%H:%M:%S') # qh.setFormatter(formatter) fh = RotatingFileHandler( 'log/simsdt_run_monitor.log', maxBytes=1024*50, backupCount=10) fmt = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%dT%H:%M:%S') fh.setFormatter(fmt) ch = logging.StreamHandler() ch.setFormatter(fmt) run_logger = logging.getLogger('simsdt.run') run_logger.setLevel(logging.INFO) run_logger.addHandler(fh) # run_logger.addHandler(qh) # run_logger.addHandler(ch) def main(file, solver_path='', q=None): """Ejecuta la Simulación de Subastas de Derechos de Transmisión.""" if not file: run_logger.error('No se incluyo un archivo para la ejecucion') return # Check if solver 'ipopt' is on path run_logger.info('Verificando que exista el solver ipopt') solver_path = shutil.which('ipopt') if(solver_path): run_logger.info('Ubicación del solver: {}'.format(solver_path)) else: run_logger.error('El solver no se encuentra en el PATH') return run_logger.info("Inicio de la ejecucion del modelo de subasta") modelo_subasta = ModeloSubasta(file, solver_path) try: modelo_subasta.setmodel() except Exception as e: run_logger.error(e) return if __name__ == "__main__": if len(sys.argv) < 2: print("Se debe incluir un archivo") else: main(sys.argv[1])