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!