Bibliothèque Python : Everett 3.0.0 réconcilie espaces de nommage et composants

Everett, une bibliothèque de configuration pour les applications Python, est sortie dans sa version 3.0.0. La bibliothèque est conçue pour permettre aux développeurs de configurer leurs applications de manière flexible à partir de différents environnements. La nouvelle version principale corrige un problème d’interaction entre les espaces de noms et les composants Everett.

Dans les versions précédentes de la bibliothèque Python publiées en 2019 dans la version 1.0, la possibilité d’appliquer un espace de noms à une configuration restait bloquée si celle-ci était déjà liée à un composant Everett. Avec la version 3.0, les développeurs ont désormais la possibilité d’attribuer un namespace ultérieurement, comme le montre l’exemple ci-dessous :

class MyComponent:
    class Config:
        http_host = Option(default="localhost")
        http_port = Option(default="8000", parser=int)

        db_host = Option(default="localhost")
        db_port = Option(default="5432", parser=int)

config = ConfigManager.basic_config()

# Bind the configuration to a specific component so you can only use
# options defined in that component
component_config = config.with_options(MyComponent)

# Apply a namespace which acts as a prefix for options defined in
# the component
http_config = component_config.with_namespace("http")

db_config = component_config.with_namespace("db")

Une autre nouveauté importante doit rendre la documentation des configurations plus simple et plus confortable. Pour cela, les développeurs d’Everett ont remanié l’extension Sphinx. Elle permet désormais non seulement de documenter les options et les composants, mais aussi d’automatiser la saisie des options définies dans les classes et les modules Python. En outre, toutes les options et tous les composants ont été ajoutés à l’index et ont reçu des liens uniques, ce qui permet de les retrouver plus facilement dans la documentation.

Avec la sortie de la troisième version majeure, Everett est désormais adapté à Python 3.10, mais ne prend plus en charge Python 3.6 ou les versions antérieures du langage de programmation.

Un article de blog donne un aperçu complet de toutes les modifications apportées à la version 3.0.0. Le projet est disponible sur GitHub sous licence MPL 2.0.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici