跳至主要内容

为click应用程序提供配置文件支持。

项目描述

通过添加单个无参数装饰器,轻松将配置文件支持添加到您的Click应用程序。

https://img.shields.io/pypi/v/click-config-file.svg?style=flat-square https://img.shields.io/conda/vn/conda-forge/click-config-file.svg?style=flat-square https://img.shields.io/travis/phha/click_config_file/master.svg?style=flat-square https://img.shields.io/codacy/grade/a5f6262609314683bf2b2bc546bdaffe/master.svg?style=flat-square

基本用法

click-config-file被设计为只需将适当的装饰器添加到您的命令即可使用,无需提供任何必需的参数。它提供了一套合理的默认值,应该适用于大多数情况。

假设这个应用程序

@click.command()
@click.option('--name', default='World', help='Who to greet.')
@click_config_file.configuration_option()
def hello(name):
    click.echo('Hello {}!'.format(name))

运行 hello --help 将显示以下内容

Usage: hello [OPTIONS]

Options:
  --name TEXT    Who to greet.
  --config PATH  Read configuration from PATH.
  --help         Show this message and exit.

如果配置文件不存在,运行 hello 将执行您预期的操作

Hello World!

有这个配置文件

name="Universe"

调用 hello 也会执行您预期的操作

Hello Universe!

调用 hello --name Multiverse 将覆盖配置文件设置,正如预期的那样

Hello Multiverse!

配置文件选项的默认名称为 --config

命令行和环境选项将覆盖配置文件选项。配置文件选项覆盖默认选项。因此,给定选项的解析顺序为:CLI > 环境 > 配置文件 > 默认。

选项

尽管 configuration_option 被设计为无需任何必需参数即可工作,但一些可选参数是受支持的

隐式

默认值: True

默认情况下,configuration_option将会寻找配置文件,即使未提供配置选项的值,无论是通过命令行参数还是环境变量。在这种情况下,值将根据以下描述从cmd_nameconfig_file_name隐式设置。

如果设置为False,则只有在提供配置文件参数时才会应用配置文件设置。

cmd_name

默认:ctx.cmd_info

装饰命令的名称。在隐式创建配置文件参数时,通过调用click.get_app_dir(cmd_name)来解析包含配置文件的应用程序目录。

这默认为click确定的命令名称。

config_file_name

默认:config

implicit设置为True时,此参数提供应用程序目录内配置文件的名称。

除了上述参数外,还支持click.option()click.File()的所有参数。

支持的文件格式

默认情况下,click-config-file支持根据Configobj的unrepr模式格式化的文件。

您可以通过设置provider关键字参数来添加对其他配置提供者的支持。此参数期望一个可调用的函数,该函数将配置文件路径和命令名称作为参数,并返回包含提供的配置选项的字典。

传递命令名称是为了允许使用共享配置文件,该配置文件由每个命令的节分割。

例如,这将从共享JSON文件中读取配置选项

def myprovider(file_path, cmd_name):
    with open(file_path) as config_data:
        return json.load(config_data)[cmd_name]

@click.command()
@click.option('--name', default='World')
@click_config_file.configuration_option(provider=myprovider)
def hello(name):
    click.echo('Hello {}!'.format(name))

安装

pip install click-config-file

为什么?

虽然有几个现有的Click配置文件支持实现,但它们似乎缺少以下一个或多个功能

  • 合理的默认值

  • 正确处理解析顺序

  • 支持多值选项、多个选项或两者的组合

相比之下,此模块可能缺乏其他实现的一些更复杂的特性。这是一个故意的选择,因为此模块旨在是一个简单且合理默认值的选项。

项目细节


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分发

click_config_file-0.6.0.tar.gz (5.8 kB 查看哈希值)

上传时间:

构建分发

click_config_file-0.6.0-py2.py3-none-any.whl (6.0 kB 查看哈希值)

上传时间: Python 2 Python 3

支持者