跳转到主要内容

自动发现配置以方便内联使用

项目描述

[![构建状态](https://travis-ci.org/internap/python-config-probe.svg?branch=master)](https://travis-ci.org/internap/python-config-probe)
[![PyPI版本](https://badge.fury.io/py/config-probe.svg)](http://badge.fury.io/py/config-probe)


使命
=======

提供一种简单的代码使用配置自动发现过程。给定一个路径和一个模式列表,
结果配置将是一个指向任何配置的快捷方式。

## 使用方法

设置

config = probe(
path="path/to/my/files",
patterns=["path/(*)/file.yaml"]
)

使用它

print config.mynamespace.key

## 参数

- **path**

初始探测路径。模式将与路径下的文件结构进行测试,
并且它将在确定命名空间时被忽略。

- **patterns**

包含(或不包含)占位符 "(\*)" 的文件路径列表,以找到配置文件的位置。
模式的定义顺序定义了哪些键有优先级,最后一个是最相关的。

路径中的每个占位符都将导致结果配置中的命名空间。

例如,你有这样的模式

dir1/(*)/dir2/(*).yaml
如果这个模式找到文件: "dir1/**ns1**/dir2/**file**.yaml" 包含 "key: 'value'",则结果

配置将是

config.ns1.file.key == "value"

现在如果模式是

dir1/ns1/dir2/file.yaml

对于相同的文件,结果配置将简单地是

config.key == "value"
因此,您可以使用占位符 "(\*)" 命名空间结果配置,使用没有括号的 "\*" 来具有无命名空间的变量路径

dir1/(*)/dir2/*.yaml
config.ns1.key == "value"

## 模拟探测

您的单元测试可以使用 fake_probe 替代,传递一个字典,它将像刚刚被探测过一样。
示例

config = fake_probe({
"ns1": {
"file": {
"key": "value"
}
}
})
# 然后
配置将是

贡献
============

欢迎提出问题和发送一些 pull request,我们将很高兴查看它们!

项目详情


下载文件

下载适用于您平台的自定义文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源分布

config-probe-0.2.0.tar.gz (11.1 kB 查看散列值)

上传时间

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面