Skip to main content

App Factory

Este módulo, AppFactory, atua como uma fábrica de aplicações, centralizando a lógica para a criação e configuração de diferentes páginas interativas baseadas em técnicas específicas de processamento de dados hidrológicos.

Índice

  1. Visão Geral
  2. AppFactory

Visão Geral

A classe AppFactory desempenha um papel crucial na modularização e extensibilidade do sistema, permitindo:

  • Centralização da Criação: Gerencia a criação de instâncias de páginas Bokeh com base na técnica de processamento de dados desejada.
  • Mapeamento de Fábricas: Utiliza um dicionário interno para associar nomes de técnicas a suas respectivas fábricas de páginas (e.g., ManualPageFactory, InterpolacaoPageFactory).
  • Flexibilidade na Geração de Páginas: Cria instâncias de TabPage ou TabPageWithDatepicker dinamicamente, adaptando a página ao tipo de técnica e suas necessidades (como a presença de um seletor de data).
  • Tratamento de Erros: Garante que apenas técnicas conhecidas possam ser utilizadas, levantando um ValueError para entradas inválidas.

AppFactory

Classe responsável por criar e configurar instâncias de páginas (TabPages) com base na técnica de processamento de dados especificada.

Pages

Um dicionário estático que mapeia os nomes das técnicas para as respectivas fábricas de páginas.

Create app

Método estático que cria uma instância de TabPage (ou sua subclasse) com base na técnica fornecida e nos parâmetros da estação e dados.

Parâmetros: tecnica (str): O nome da técnica de processamento de dados (e.g., "manual", "interpolation"). doc (Document): O documento Bokeh ao qual a página será adicionada. codigo (int): O código da estação hidrológica. tipo (int): O tipo da estação (provavelmente um enumerador ou inteiro que representa StationType). date (date): A data de referência para a página. token_manager (TokenManager): Uma instância do gerenciador de tokens para autenticação da API.

Raises: ValueError: Se a tecnica fornecida for desconhecida.

Returns: TabPage: Uma instância da classe TabPage ou TabPageWithDatepicker, configurada para a técnica especificada.