Module `settings` - Hexoplanete/Projet-Furet GitHub Wiki

Correspond au module src/furet/settings

Ce module comporte deux fichiers :

  • __init__.py qui permet se set/get des paramètres
  • configs.py qui liste l'ensemble des paramètres de l'application

__init__.py

Ce fichier permet aux autres modules de stocker de manière durable des paramètres de configuration.

Ils sont sauvegardés dans %APPDATA%\Hexoplanete/FURET.ini sous Windows ou ~/.config/Hexoplanete/FURET.ini sous Linux.

Tout paramètre doit être déclaré avant d’être utilisé.

Il est possible de récupérer les valeurs d'une configuration individuellement avec value(key)

Ajout d'une configuration (setDefaultConfig(config))

Permet d'enregistrer la configuration config.

  • config: un type python annoté @dataclass

config doit être une dataclass et tous ses champs doivent avoir une valeur par défaut

Récupération d'une configuration (config])

Permet de récupérer la valeur de config.

Renvoie une instance de config avec les valeurs des paramètres

Modification d'une configuration (settings.setConfig(config))

Permet de changer la valeur de tout les champs de config.

Ajout d'un paramètre (setDefaultValue(key, defaultValue [, type]))

Permet d'enregistrer le paramètre key:

  • key : le nom du paramètre (e.g. app.scale)
  • defaultValue : la valeur initiale de paramètre (e.g. 1)
  • type (optionnel) : le type du paramètre. Il est déterminé automatiquement à partir de defaultValue si non spécifié (e.g. float)

Récupération d'un paramètre (value(key))

Permet de récupérer la valeur de key.

Renvoie une valeur du même type que celui sélectionné lors de l'initialisation

Modification d'un paramètre (settings.setValue(key, value))

Permet de changer la valeur de key à value.

configs.py

Ce fichier contient l'intégralité des configurations de l'application.

Chaque module à sa propre config qu'il enregistre au lancement avec settings.setDefaultConfig().

Dans le cas ou les champs sont créés dynamiquement, des commentaires indiquent leur nom et leur type de contenu