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

csv_file_ref

dictionnaire des URL des fichiers CSV de référence.

Type:

Dict[str, str]

schema_file

chemin vers le fichier de schéma JSON.

Type:

Path

csv_url

URL du fichier CSV principal à télécharger.

Type:

str

db_file: Path
csv_file: Path
csv_file_ref: Dict[str, str]
schema_file: Path
csv_url: str
__init__(db_file: Path, csv_file: Path, csv_file_ref: Dict[str, str], schema_file: Path, csv_url: str) None
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é:

DatabaseConfig

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:
  • key (str) – la clé de la variable d’environnement à récupérer.

  • default (Optional[str], optional) – la valeur par défaut si la variable n’est pas trouvée.

  • required (bool) – si True, lèvera une exception si la valeur est manquante.

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.