ホームページ >バックエンド開発 >Python チュートリアル >pyya - Python プロジェクトで YAML 構成を管理する方法

pyya - Python プロジェクトで YAML 構成を管理する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-15 04:28:13512ブラウズ

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

プロジェクトに次のようなファイルがあると想像してください:

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

このドット yaml 設定ファイルを Python で解析するには、通常次のようにします:

import yaml # pip install PyYAML

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

結果の辞書から Javascript のようなオブジェクトを作成するには、おそらく次のコードを追加します:

from munch import munchify # pip install munch

config = munchify(config_yaml)

pyya は 1 つの関数で自動的にそれを行います:

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

これらの旗はどうでしょうか?

merge_configs が True に設定されている場合、config.yaml とdefault.config.yaml (または指定した名前またはパス) を比較し、後者に存在しないすべてのフィールドを前者に追加します。 False に設定すると、残りのフラグによって行われるすべてのマージとすべての書式設定が無効になります。

convert_keys_to_snake_case は、構成キーを Python っぽく見せるだけなので、一目瞭然です。ただし、このフラグはログ構成などの一部の設定を壊す可能性があります。

add_underscore_prefix_to_keywords 構成キーが Python キーワードでもある場合、その前にアンダースコアが追加されます (class_class になります)。これにより、属性アクセスがより適切に機能するようになります。

raise_error_non_identifiers 構成キーも無効な Python 識別子である場合、エラーが発生します。

pyya は次のようにインストールできます:

pip install pyya

貢献と提案を歓迎します: https://github.com/shadowy-pycoder/pyya

以上がpyya - Python プロジェクトで YAML 構成を管理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。