Heim >Backend-Entwicklung >Python-Tutorial >pyya – Die Möglichkeit, die YAML-Konfiguration in Ihrem Python-Projekt zu verwalten

pyya – Die Möglichkeit, die YAML-Konfiguration in Ihrem Python-Projekt zu verwalten

Linda Hamilton
Linda HamiltonOriginal
2024-12-15 04:28:13512Durchsuche

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

Stellen Sie sich vor, Sie haben eine Datei wie diese in Ihrem Projekt:

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

Um diese Dot-Yaml-Konfigurationsdatei in Python zu analysieren, gehen Sie normalerweise wie folgt vor:

import yaml # pip install PyYAML

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

Um Javascript-ähnliche Objekte aus dem resultierenden Wörterbuch zu erstellen, fügen Sie wahrscheinlich Folgendes hinzu:

from munch import munchify # pip install munch

config = munchify(config_yaml)

Pyya macht das automatisch mit einer Funktion:

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

Was ist mit all diesen Flaggen?

merge_configs vergleicht bei Einstellung „True“ config.yaml mit default.config.yaml (oder den von Ihnen angegebenen Namen oder Pfaden) und fügt dem ersteren alle Felder hinzu, die im letzteren nicht vorhanden sind. Wenn es auf „Falsch“ gesetzt ist, werden alle Zusammenführungen und Formatierungen deaktiviert, die von den übrigen Flags durchgeführt werden.

convert_keys_to_snake_case ist einigermaßen selbsterklärend, weil es Konfigurationsschlüssel einfach pythonisch aussehen lässt. Dieses Flag kann jedoch einige Einstellungen wie die Protokollierungskonfiguration beeinträchtigen.

add_underscore_prefix_to_keywords Wenn der Konfigurationsschlüssel auch ein Python-Schlüsselwort ist, wird davor ein Unterstrich eingefügt (class wird zu _class). Dadurch kann der Attributzugriff besser funktionieren.

raise_error_non_identifiers Wenn der Konfigurationsschlüssel auch ein ungültiger Python-Identifikator ist, wird ein Fehler ausgelöst.

Sie können Pyya wie folgt installieren:

pip install pyya

Beiträge und Vorschläge sind willkommen: https://github.com/shadowy-pycoder/pyya

Das obige ist der detaillierte Inhalt vonpyya – Die Möglichkeit, die YAML-Konfiguration in Ihrem Python-Projekt zu verwalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn