Some checks failed
Security & Dependency Updates / Dependency Security Scan (push) Successful in 29s
Security & Dependency Updates / Docker Security Scan (push) Failing after 53s
Security & Dependency Updates / License Compliance (push) Successful in 13s
Security & Dependency Updates / Check for Dependency Updates (push) Successful in 19s
Security & Dependency Updates / Code Quality Metrics (push) Successful in 11s
Security & Dependency Updates / Security Summary (push) Successful in 7s
Features: - Real-time water level monitoring for Ping River Basin (16 stations) - Coverage from Chiang Dao to Nakhon Sawan in Northern Thailand - FastAPI web interface with interactive dashboard and station management - Multi-database support (SQLite, MySQL, PostgreSQL, InfluxDB, VictoriaMetrics) - Comprehensive monitoring with health checks and metrics collection - Docker deployment with Grafana integration - Production-ready architecture with enterprise-grade observability CI/CD & Automation: - Complete Gitea Actions workflows for CI/CD, security, and releases - Multi-Python version testing (3.9-3.12) - Multi-architecture Docker builds (amd64, arm64) - Daily security scanning and dependency monitoring - Automated documentation generation - Performance testing and validation Production Ready: - Type safety with Pydantic models and comprehensive type hints - Data validation layer with range checking and error handling - Rate limiting and request tracking for API protection - Enhanced logging with rotation, colors, and performance metrics - Station management API for dynamic CRUD operations - Comprehensive documentation and deployment guides Technical Stack: - Python 3.9+ with FastAPI and Pydantic - Multi-database architecture with adapter pattern - Docker containerization with multi-stage builds - Grafana dashboards for visualization - Gitea Actions for CI/CD automation - Enterprise monitoring and alerting Ready for deployment to B4L infrastructure!
32 lines
816 B
Python
32 lines
816 B
Python
#!/usr/bin/env python3
|
|
"""
|
|
Custom exceptions for water monitoring system
|
|
"""
|
|
|
|
class WaterMonitorException(Exception):
|
|
"""Base exception for water monitoring system"""
|
|
pass
|
|
|
|
class DatabaseConnectionError(WaterMonitorException):
|
|
"""Raised when database connection fails"""
|
|
pass
|
|
|
|
class APIConnectionError(WaterMonitorException):
|
|
"""Raised when API connection fails"""
|
|
pass
|
|
|
|
class DataValidationError(WaterMonitorException):
|
|
"""Raised when data validation fails"""
|
|
pass
|
|
|
|
class ConfigurationError(WaterMonitorException):
|
|
"""Raised when configuration is invalid"""
|
|
pass
|
|
|
|
class DataParsingError(WaterMonitorException):
|
|
"""Raised when data parsing fails"""
|
|
pass
|
|
|
|
class RetryExhaustedError(WaterMonitorException):
|
|
"""Raised when all retry attempts are exhausted"""
|
|
pass |