跳转到主要内容

用于配置Python包的Python包

项目描述

https://github.com/pytroll/donfig/workflows/CI/badge.svg?branch=main https://codecov.io/gh/pytroll/donfig/branch/main/graph/badge.svg?token=xmvNtxzdoB https://anaconda.org/conda-forge/donfig/badges/version.svg pre-commit.ci status

Donfig 是一个旨在简化其他 Python 包配置的 Python 库。Donfig 可以通过程序方式、环境变量或从标准位置中的 YAML 文件进行配置。以下示例展示了使用 donfig 的基本方法。更多详情请参阅官方 文档

安装

Donfig 可以通过 pip 从 PyPI 进行安装

pip install donfig

或者使用 conda 和 conda-forge 频道

conda install -c conda-forge donfig

使用 Donfig

为您的包 mypkg 创建一个包级别的配置对象

# mypkg/__init__.py
from donfig import Config
config = Config('mypkg')

使用配置对象

from mypkg import config
important_val = config.get('important_key')
if important_val:
    # do something
else:
    # something else

在 Python 中设置配置

在调用使用它的代码之前,可以在 Python 中修改配置

# mypkg/work.py
from mypkg import config
config.set(important_key=5)

# use the configuration

Donfig 配置还可以作为上下文管理器进行更改

config.set(other_key=True)

with config.set(other_key=False):
    print(config.get('other_key'))  # False

print(config.get('other_key'))  # True

从环境变量配置

当创建 Config 对象时,会自动加载环境变量。任何以配置对象名称(全部大写并带下划线)开头的环境变量都将加载到配置对象中

export MYPKG_MY_KEY="a value"

并在 Python 中访问

from mypkg import config
print(config.get('my_key'))

从 YAML 文件配置

Donfig 还会自动加载在特定路径中找到的任何 YAML 配置文件。默认路径

  • ~/.config/<config name>/

  • /etc/<config name>/

  • <sys.prefix>/etc/<config name>/

注意,/etc/<config name>/ 目录也可以通过环境变量 DASK_ROOT_CONFIG 指定。另外,~/.config/<package name>(或通过 DASK_CONFIG 指定的其他位置)可以作为自定义用户配置文件创建,以方便用户进行自定义(请参阅文档以获取详细信息)。

历史

Donfig 基于原始的 dask 库配置逻辑。代码已被修改,以使用配置对象而不是全局配置字典。这使得 dask 的配置逻辑对每个人可用。名称“donfig”是“dask.config”的缩写,原始 dask 模块实现了此功能。

许可证

原始代码在 DASK_LICENSE.txt 中指定的许可下分发。2018 年 11 月,此代码迁移到 Donfig 项目下,在 LICENSE.txt 中描述的 MIT 许可下。因此,此项目的完整版权

Copyright (c) 2018 Donfig Developers
Copyright (c) 2014-2018, Anaconda, Inc. and contributors

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

donfig-0.8.1.post1.tar.gz (19.5 kB 查看哈希值)

上传时间

构建分发

donfig-0.8.1.post1-py3-none-any.whl (21.6 kB 查看哈希值)

上传时间 Python 3

由以下支持