Base Configuration
Le module BaseConfig
est le socle du système de configuration de l’application. Il fournit les fonctionnalités fondamentales pour charger et valider les variables d’environnement, servant de classe de base à tous les gestionnaires de configuration spécialisés.
Usage
BaseConfig
n’est pas instanciée directement. Elle est héritée par les gestionnaires de configuration spécifiques (comme DatabaseConfigManager, LLMConfigManager, etc.) qui s’appuient sur ses fonctionnalités pour construire leur propre configuration.
Fonctionnalités
Chargement d’environnement : charge les variables depuis un fichier
.env
, ou directement depuis l’environnement système.Détection de conteneur : identifie si l’application s’exécute dans un environnement conteneurisé (Docker, Kubernetes) pour adapter son comportement.
Gestion d’erreurs : intègre un gestionnaire d’erreurs pour capturer et signaler les problèmes de configuration de manière centralisée.
Accès sécurisé aux variables : fournit la méthode
get_env_var
pour récupérer des variables, en spécifiant si elles sont requises ou en fournissant une valeur par défaut.
Modules
- src.smart_watch.config.base_config._is_containerized() bool [source]
Détecte si l’application s’exécute dans un conteneur (Docker/Kubernetes).
- Renvoie:
True si dans un conteneur, sinon False.
- Type renvoyé:
- class src.smart_watch.config.base_config.BaseConfig(env_file: Path | None = None)[source]
Bases :
object
Gère la configuration de base de l’application.
Charge les variables d’environnement depuis un fichier .env, et fournit un accès sécurisé à ces variables.
- __init__(env_file: Path | None = None)[source]
Initialise une instance de BaseConfig.
- Paramètres:
env_file (Path[Optional], optional) – chemin vers le fichier .env. Si non fourni, sera recherché à la racine du projet.
- _reset_environment()[source]
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é.
- _load_environment()[source]
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.
- get_env_var(key: str, default: str | None = None, required: bool = False) str | None [source]
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.