Adequação
Módulo de integração assíncrona para gestão de adequações hidrológicas e mudanças de referência nodal (RN), com mecanismos de cache e autenticação segura.
Índice
- Visão Geral
- Configuração
- Fetch Adequações Pendentes
- Fetch Mudança RN Pendente
- Fetch Mudança RN
- Fetch cota adequada
- Send adequações
- Send mudança RN
- Send revisão
- Send Supervisao RN
Visão Geral
Sistema especializado em:
- Operações assíncronas para gestão de dados hidrológicos
- Cache inteligente com TTL e tamanho máximo configuráveis
- Integração com serviços externos via API REST
- Gerenciamento seguro de tokens de acesso
- Validação de dados com modelos estruturados
Principais operações:
- Consulta de adequações pendentes
- Submissão de revisões técnicas
- Gestão de mudanças de referência nodal
- Supervisão de qualidade de dados
Configuração
Variáveis de ambiente e constantes críticas:
COTA_HORARIA_URL = {
"regua": "URL_API_REGUA",
"pcd": "URL_API_PCD"
} # Endpoints para cada tipo de estação
CACHE_MAXSIZE = 100 # Capacidade máxima do cache
CACHE_TTL = 3600 # Tempo de vida do cache em segundos
Fetch Adequações Pendentes
Obtém as adequações pendentes de uma estação com caching.
Parâmetros: codigo_estacao (int): O código da estação.tipo (StationType): O tipo ad estação (regua/pcd).
token_manager (TokenManager): O token manager.
Raises:HTTPClientError: Se a autenticação falhar (401).
Returns:
pd.DataFrame: DataFrame com os dados das adequações pendentes.
Fetch Mudança RN Pendente
Obtém as mudanças de RN pendentes de uma estação com caching.
Parâmetros:
codigo_estacao (int): O código da estação.
tipo (StationType): O tipo da estação (regua/pcd).
token_manager (TokenManager): O token manager.
Raises: HTTPClientError: Se a autenticação falhar (401).
Returns:
pd.DataFrame: DataFrame com os dados das mudanças de RN pendentes
Fetch Mudança RN
Obtém a mudança de RN a partir de seu ID com caching.
Parâmetros:
id_adequacao (int): O ID da adequação.
tipo (StationType): O tipo da estação.
token_manager (TokenManager): O token manager.
Raises:
HTTPClientError: Se a autenticação falhar (401).
Returns:
pd.DataFrame: DataFrame com os dados da mudança de RN.
Fetch cota adequada
Obtém as cotas adequadas a partir do ID da adequação com caching.
Parâmetros:
id_adequacao (int): O ID da adequação.
tipo (StationType): O tipo da estação (regua/pcd).
token_manager (TokenManager): O token manager.
Raises:
HTTPClientError: Se a autenticação falhar (401).
Returns:
pd.DataFrame: DataFrame com os dados das cotas adequadas.
Send adequações
Envia um conjunto de adequações e invalida o cache relacionado.
Parâmetros:
codigo_estacao (int): O código da estação.
tecnica (str): A técnica utilizada.
parametros (str | None): Os parâmetros da adequação.
cotas_adequadas (list[dict]): As cotas adequadas.
tipo (StationType): O tipo da estação (regua/pcd).
token_manager (TokenManager): O token manager.
Raises:
HTTPClientError: Se a autenticação falhar (401).
Send mudança RN
Envia mudanças de RN e invalida o cache relacionado.
Parâmetros:
data (Dict[str, Any]): Os dados das mudanças de RN.
tipo (StationType): O tipo da estação (regua/pcd).
token_manager (TokenManager): O token manager.
Raises:
HTTPClientError: Se a autenticação falhar (401).
Send revisão
Envia a revisão das adequações e invalida o cache relacionado.
Parâmetros:
ids_adequacao (list[int]): Os IDs das adequações.
revisao (str): O resultado da revisão (aceita ou recusado).
tipo (StationType): O tipo da estação (regua/pcd).
token_manager (TokenManager): O token manager.
Raises:
HTTPClientError: Se a autenticação falhar (401).
Send Supervisao RN
Envia uma ou várias supervisões de RN e invalida o cache relacionado.
Parâmetros:
data (list): Os dados das supervisões.
tipo (StationType): O tipo da estação (regua/pcd).
token_manager (TokenManager): O token manager.
Raises:
HTTPClientError: Se a autenticaçãoo falhar (401).