Database Configuration
Le module DatabaseConfigManager
gère tous les paramètres liés à l’accès aux données, incluant la base de données locale SQLite et les sources de données CSV externes.
Usage
DatabaseConfigManager
est instancié par le ConfigManager central. L’application accède ensuite à la configuration via ConfigManager.database
, qui contient une instance du dataclass DatabaseConfig
.
Fonctionnalités
Gestion des chemins : construit et gère les chemins vers la base de données SQLite, le cache des fichiers CSV, et le schéma de données.
Configuration des sources de données : récupère les URLs des fichiers CSV de référence (piscines, mairies, médiathèques) et l’URL du fichier principal depuis les variables d’environnement.
Structure de données : utilise le dataclass
DatabaseConfig
pour stocker de manière structurée tous les paramètres de configuration.Validation : la méthode
validate
vérifie l’existence du fichier de schéma, s’assure que le répertoire de données peut être créé, et contrôle la validité des URLs configurées.
Modules
- class src.smart_watch.config.database_config.DatabaseConfig(db_file: Path, csv_file: Path, csv_file_ref: Dict[str, str], schema_file: Path, csv_url: str)[source]
Bases :
object
Configuration de la base de données et des sources de données.
Cette classe de données stocke les chemins vers les fichiers locaux, les URL de téléchargement et les schémas nécessaires à l’application.
- db_file
chemin vers le fichier de base de données SQLite.
- Type:
Path
- csv_file
chemin vers le fichier CSV principal mis en cache localement.
- Type:
Path
- schema_file
chemin vers le fichier de schéma JSON.
- Type:
Path
- class src.smart_watch.config.database_config.DatabaseConfigManager(env_file: Path | None = None)[source]
Bases :
BaseConfig
Gère la configuration de la base de données.
Cette classe hérite de BaseConfig pour charger les variables d’environnement et initialiser les paramètres spécifiques à la base de données.
- __init__(env_file: Path | None = None) None [source]
Initialise le gestionnaire de configuration de la base de données.
- Paramètres:
env_file (Path, optional) – chemin optionnel vers un fichier .env personnalisé.
- _init_database_config() DatabaseConfig [source]
Initialise la configuration de la base de données.
Cette méthode lit les variables d’environnement pour construire les chemins vers les fichiers et les URL nécessaires.
- Renvoie:
une instance de DatabaseConfig contenant la configuration.
- Type renvoyé:
- validate() bool [source]
Valide la configuration de la base de données.
Cette méthode vérifie que les fichiers et répertoires critiques existent et que les URL de sources de données sont valides.
- Renvoie:
True si la configuration est valide.
- Lève:
ValueError – si la validation échoue, avec une liste des erreurs.
- _load_environment()
Charge les variables d’environnement depuis le fichier .env.
Réinitialise d’abord les variables (sauf en environnement conteneurisé) puis charge celles du fichier .env. Si le fichier n’existe pas, utilise les variables système existantes.
- _reset_environment()
Réinitialise les variables d’environnement du fichier .env.
Supprime les variables chargées depuis le fichier .env pour éviter les conflits avec les variables système ou conteneurisées. Ne s’exécute pas dans un environnement conteneurisé.
- get_env_var(key: str, default: str | None = None, required: bool = False) str | None
Récupère une variable d’environnement de manière sécurisée.
- Paramètres:
- Renvoie:
la valeur de la variable d’environnement, ou None.
- Type renvoyé:
Optional[str]
- Lève:
ValueError – si la variable est requise mais non définie.