简单的Python应用程序配置文件助手
项目描述
pyflexconfig
-
你更喜欢使用直接Python文件来为你的Python应用程序提供配置数据,只因为你可以在配置文件中提供你喜欢的任何对象类型。
-
你希望将自定义配置文件放置在任何你喜欢的位置,例如传统的
/etc
或其他你喜欢的位置。 -
你希望你的应用程序为某些或所有配置数据提供一些默认值。
-
但如果你不希望是Python文件(YAML、JSON、XML等),只需提供你自己的解析器。
pyflexconfig
只是配置/选项/配置数据管理游戏中众多角色之一,满足这些要求。
功能
-
以程序方式提供默认配置,使用包中的默认文件或通过环境变量。
-
使用自定义配置文件覆盖默认配置选项。你可以覆盖一个、两个或所有默认配置选项。
-
如果你不喜欢Python配置文件,即使是在沙箱中执行,也没有关系。好吧,提供你自己的解析器。
-
配置容器只是一个全局对象,你可以在其上添加属性。我建议使用
types.SimpleNamespace
对象,但任何东西都可以完成任务。 -
您可以通过传统位置(例如
/etc/my_custom_config.py
)、专门的命令行选项或环境变量来提供自定义配置文件。 -
默认过滤器仅保留不以下划线开头的大写选项。这允许您在配置文件中使用小写命名的临时变量,这些变量在生成的配置对象中不可见。如果您想提供其他规则或添加其他规则到默认规则中,可以提供自己的过滤器。
-
如果需要检查某些或所有配置选项的类型/值,您最终可以提供验证器。
安装
使用pyflexconfig
pyflexconfig
需要Python 3.6或更高版本。使用pip安装它,就像平常一样。
pip install pyflexconfig
请注意,pyflexconfig
在任何操作系统上都可以运行,不需要stdlib之外的包。
在pyflexconfig的分支上开发
当然,提供一个带有Python 3.6或更高版本的专用虚拟环境,然后fork pyflexconfig
,接着
git clone <your fork URL>
cd pyflexconfig
pip install -e .[dev]
请从develop
分支开始工作,该分支应包含最新的已验证开发。
请在向原始Git仓库的develop
分支发出pull / merge请求之前,将您的fork重新基于develop
分支并修复单元测试(运行pytest
)。
当然,提交一个说明您更改的问题。
使用pyflexconfig
基本用法
您的默认配置文件 defaultsettings.py
# Warning: do not import here somethong that's not in the stdlib
ONE = 1
TWO = 2
# ...
同一目录下的 settings.py
模块
import pathlib
from types import SimpleNamespace
from pyflexconfig import bootstrap
config = SimpleNamespace(
# "hardcoded" default options
THREE = 3,
# ...
)
# Load the default config that ships in the package
_default_config_path = pathlib.Path(__file__).resolve().parent / "defaultsettings.py"
bootstrap(config, default_path=_default_config_path)
以及您的主应用程序
from .settings import config
def main():
print(config.ONE)
print(config.TWO)
print(config.THREE)
if __name__ == "__main__":
main()
有关更多示例,请浏览存储库的demo/
目录以及tests.py
模块。
在控制台中查看完整的API输出
python -c "import pyflexconfig; help(pyflexconfig)"
许可
本软件根据MIT许可条款提供。请参阅Git仓库中的LICENSE
文件或这里。
作者
本软件来自Gilles Lenfant的受损大脑。
pyflexconfig
的开发由Caisse des Depots
赞助。
链接
历史
1.0.2 - 2020/7/5
- 修复:接受pathlib.Path对象以及str路径。
1.0.1 - 2020/6/19
- 从需求中删除了
python-dotenv
(未使用) - README.md中的一些错误
- 历史文件
1.0.0 - 2020/6/18
- 初始版本
项目详情
pyflexconfig-1.0.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 703952674a3e579d77253a2310615094b81dc4979c7f8a30f5ff92b701112b28 |
|
MD5 | a118a2fd060f6ef012c8e37929c25fe8 |
|
BLAKE2b-256 | b211c6885330d17dd4bed898d71742aa52c20b2b0d184ac39dfa0d0a431f1030 |