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
Libérer: 2024-12-15 04:28:13
original
508 Les gens l'ont consulté

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
Copier après la connexion

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)
Copier après la connexion

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)

Copier après la connexion

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"})

Copier après la connexion

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
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal