Closed bassimat closed 1 year ago
¡La idea me parece muy buena! Me gusta cómo vamos logrando encapsular widgets o fragmentos de la interfaz en clases independientes. Lo que sí, estoy teniendo problemas para probar su funcionamiento.
Venía probando la gui desde el directorio gui/. Esto hace que el directorio local ya no sea el base del repositorio, sino uno distinto. Luego, al tirar la búsqueda, se me imprime este log de error:
[91mpython: can't open file 'D:\...\repository-reviewer\gui\querier.py': [Errno 2] No such file or directory
[0m
No me parece un error grave, de última se soluciona invocando la gui desde el raíz del repositorio. No sé me ocurre una forma de arreglarlo por código, además.
Al ejecutar la gui desde la ruta de base, me salta un error de que no se encuentra la lib de yaml.
[91mTraceback (most recent call last):
File "D:\...\repository-reviewer\querier.py", line 5, in <module>
import yaml
ModuleNotFoundError: No module named 'yaml'
[0m
No se me ocurre a qué puede deberse este error. ¿Se te ocurre alguna idea?
@bassimat creé los issues #29 y #30 para no olvidarme de las cosas que no pude resolver en este Pull Request.
El issue #29 es un problema de desempeño en la interfaz. Por su parte, el issue #30 es un problema que tuve al hacer la maquetación de las pestañas de Búsqueda básica y avanzada en la página del Querier.
Se genera un nuevo frame con el textbox donde direccionar los resultados y logs del programa. El mismo está encapsulado en la clase LogsFrame. Cuando está activo implementa otra nueva clase (
StdoutRedirector
) que gestiona la redirección de la salida estandar de la GUI y la API. Actualmente también imprime el stderr, aunque es un punto a conversar y mejorar (Nota: desligar stderr del stdout).La visualización y activación de este frame se realiza mediante un checkbox asociado (y generado por la misma clase) que momentaneamente se agrega en el sidebar existente. Luego, si rompe el esquema pensado, podemos ver cual sería el mejor lugar para realizar esta activación. Cuando no está activado, la impresión se sigue haciendo al stdout/err original --> terminal.
En última instancia se agrega un método global para la ejecución de comandos/scripts como demo para comprobar la funcionalidad. Cuando se realice una búsqueda vacía (todos los entrys vacios) se ejecutará la siguiente línea:
python querier.py -h
Su resultado se imprimirá en el TextBox o en Terminal dependiendo de la activación o no, del CheckBox "Show results and logs".