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ètresconfigs.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é.
- Pour un paramètre connu au préalable, en l'ajoutant dans la configuration du module puis appellant
settings.setDefaultConfig(config)
à l'initialisation. - Pour un paramètre dynamique (la position des fenêtres), en appelant
settings.setDefaultValue(key, defaultValue [, type])
Il est possible de récupérer les valeurs d'une configuration individuellement avec
value(key)
setDefaultConfig(config)
)
Ajout d'une configuration (Permet d'enregistrer la configuration config
.
config
: un type python annoté@dataclass
config
doit être unedataclass
et tous ses champs doivent avoir une valeur par défaut
config]
)
Récupération d'une configuration (Permet de récupérer la valeur de config
.
Renvoie une instance de
config
avec les valeurs des paramètres
settings.setConfig(config)
)
Modification d'une configuration (Permet de changer la valeur de tout les champs de config
.
setDefaultValue(key, defaultValue [, type])
)
Ajout d'un paramètre (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 dedefaultValue
si non spécifié (e.g.float
)
value(key)
)
Récupération d'un paramètre (Permet de récupérer la valeur de key
.
Renvoie une valeur du même type que celui sélectionné lors de l'initialisation
settings.setValue(key, value)
)
Modification d'un paramètre (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