Maison >développement back-end >Tutoriel Python >pyya - La façon de gérer la configuration YAML dans votre projet Python

pyya - La façon de gérer la configuration YAML dans votre projet Python

Linda Hamilton
Linda Hamiltonoriginal
2024-12-15 04:28:13509parcourir

pyya - The way to manage YAML config in your Python project

Imaginez que vous ayez un fichier comme celui-ci dans votre projet :

# config.yaml
database:   
    host: localhost
    port: 5432
    username: postgres
    password: postgres

Pour analyser ce fichier de configuration dot yaml en Python, vous faites habituellement ceci :

import yaml # pip install PyYAML

with open("config.yaml", encoding='utf-8') as fstream:
    config_yaml = yaml.safe_load(fstream)

Pour créer des objets de type Javascript à partir du dictionnaire résultant, vous ajoutez probablement ce qui suit :

from munch import munchify # pip install munch

config = munchify(config_yaml)

pyya le fait automatiquement avec une seule fonction :

from pyya import init_config

config = init_config(
    'config.yaml', 'default.config.yaml', 
    merge_configs = False,
    convert_keys_to_snake_case = False,
    add_underscore_prefix_to_keywords = False
    raise_error_non_identifiers = False)
print(config.database)

# Output:
# Munch({"host": "localhost", "port": 5432, "username": "postgres", "password": "postgres"})

Et tous ces drapeaux ?

merge_configs s'il est défini sur True, compare config.yaml avec default.config.yaml (ou quels que soient les noms ou chemins que vous spécifiez) et ajoute au premier tous les champs qui ne sont pas présents dans le second. S'il est défini sur False, désactive toute fusion et tout formatage effectué par le reste des indicateurs.

convert_keys_to_snake_case est assez explicite car il donne simplement un aspect pythonique aux clés de configuration. Cependant, cet indicateur peut briser certains paramètres tels que la configuration de la journalisation.

add_underscore_prefix_to_keywords si la clé de configuration est également un mot-clé Python, elle ajoutera un trait de soulignement devant elle (class devient _class). Cela permet un meilleur fonctionnement de l'accès aux attributs.

raise_error_non_identifiers si la clé de configuration est également un identifiant Python non valide, cela générera une erreur.

Vous pouvez installer pyya comme ceci :

pip install pyya

Les contributions et suggestions sont les bienvenues : https://github.com/shadowy-pycoder/pyya

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn