配置变得简单:json、encrypted、envvars等。
jsonconfig-tool的Python项目详细描述
配置没有比这更容易…
pip install jsonconfig-tool
它是用来干什么的?
- 管理设置、配置信息、应用程序数据等
- 管理机密、令牌、密钥、密码等。
- 管理环境设置。
基本示例
with Config('myapp') as cfg: cfg.data = 'Any JSON serializable object ...' cfg.pwd.a_secret = 'Encrypted data ...' cfg.env.a_variable = 'Environment variables.'
其他示例可以在documentation[1]中找到。
只是头脑清醒
no magic here…
在上面的上下文管理器中:
- data存储在用户的本地应用程序目录中。
- pwd数据被加密并存储在密钥环保险库中。
- env数据存储在环境变量中
配置文件位置
默认行为是返回最适合 操作系统。为了给你一个主意,一个名为Foo Bar的应用程序 可能返回以下内容:
Mac OS X: ~/Library/Application Support/Foo Bar Mac OS X (POSIX): ~/.foo-bar Unix: ~/.config/foo-bar Unix (POSIX): ~/.foo-bar Win XP (roaming): C:\Documents and Settings\<user>\Local Settings\Application Data\Foo Bar Win XP (not roaming): C:\Documents and Settings\<user>\Application Data\Foo Bar Win 7+ (roaming): C:\Users\<user>\AppData\Roaming\Foo Bar Win 7+ (not roaming): C:\Users\<user>\AppData\Local\Foo Bar
当然,您或用户可以自由重写此行为并设置 去你想去的地方。
加密后端
默认行为是选择 用户平台为了给你一个主意,下面的钥匙圈后端将 可能被退回:
- Mac OS X:
- Keychain[5]
- Unix(安装了secretstorage):
- Secret Service[6]
- Unix(已安装DBU):
- kwallet[7]
- 窗口:
- Windows Credential Locker[8]
当然,您或用户可以自由覆盖默认值用户可以 同时从系统范围内更改其keyring后端首选项 命令行或通过配置文件。然后json配置将使用 用户首选的密钥环后端,除非另有说明
您希望如何提供您的数据?
数据转换
- BOXED、FROZEN和NESTED都是dicts或 默认指令你可以在他们之间来回转换 时间。
- 如果您的数据对象不是 一个映射然后使用PLAIN来释放所有的装饰。 有了PLAIN,就只有你和你的伙伴python了;我们让开。
JSON配置让您可以做自己最擅长的事情
花更多的时间解决现实世界的问题,更少的时间编码,测试和; 解决配置问题
参考文献
[1] | https://jsonconfig.readthedocs.io/en/latest/config/examples.html |
[2] | http://github.com/pallets/click |
[3] | https://github.com/jaraco/keyring |
[4] | (1, 2)http://github.com/cdgriffith/Box |
[5] | https://en.wikipedia.org/wiki/Keychain_%28software%29 |
[6] | http://standards.freedesktop.org/secret-service |
[7] | https://en.wikipedia.org/wiki/KWallet |
[8] | https://technet.microsoft.com/en-us/library/jj554668.aspx |