feat: Implement the initial IPSExtractor project structure, including application logic, GUI, core utilities, and documentation.
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
"""Entrada para la interfaz gráfica.
|
||||
|
||||
Crea el servicio con el extractor por defecto y lanza la ventana principal.
|
||||
"""
|
||||
import logging
|
||||
|
||||
import customtkinter as ctk
|
||||
|
||||
from application.service import InvoiceProcessingService
|
||||
from application.strategies import OllamaExtractor
|
||||
from gui.view import InvoiceAppView
|
||||
from gui.controller import AppController
|
||||
from application.logging_config import configure_logging
|
||||
from application.config import settings
|
||||
|
||||
|
||||
def main():
|
||||
"""Inicializa logging y arranca la aplicación GUI."""
|
||||
configure_logging()
|
||||
|
||||
# Log effective settings *after* logging is configured
|
||||
_cfg_logger = logging.getLogger("application.config")
|
||||
try:
|
||||
_cfg_logger.info(
|
||||
"effective_api_settings",
|
||||
extra={
|
||||
"component": "config",
|
||||
"base_url": settings.api.base_url,
|
||||
"model": settings.api.model,
|
||||
"timeout_s": getattr(settings.api, "request_timeout_s", None),
|
||||
},
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
extractor = OllamaExtractor(
|
||||
api_key=settings.api.api_key,
|
||||
base_url=settings.api.base_url,
|
||||
model=settings.api.model
|
||||
)
|
||||
service = InvoiceProcessingService(extractor)
|
||||
|
||||
app = InvoiceAppView()
|
||||
AppController(app, service)
|
||||
app.mainloop()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user