简单的配置工具。从yaml、json或xml获取配置。
figgyp的Python项目详细描述
figgypy
=
[![在Gitter上聊天](https://badges.gitter.im/theherk/figgypy.svg)](https://gitter.im/theherk/figgypy?utm_source=badge&utm_medium=badge&utm_campaign=pr badge&utm_content=badge)
[![构建状态](https://travis ci.org/theherk/figgypy.svg)(https://travis ci.org/theherk/figgypy)
它将在安装时安装python gnupg。如果默认情况下系统上没有gnupg(可能是),则需要安装它。如果缺少这两个选项中的任何一个,配置工具仍然可以工作,它只是不会解密机密。
usage
----
或者
cfg.values['somevalue']
;或者
cfg.values.get('somevalue',可选的默认值)
;或者
figgypy py.getfigypypypy.get('somevalue','somevalue',可选的默认值)
`````
`` python
ypy导入配置,set_config
cfg=config(config_file='config.yaml')
figgypy.set_config(cfg)
b.py
import figgypy
figgypy.get_value('somevalue')
````
你甚至不需要使用文件。例如:
```python
import figgypypy
cfg=figgypypypypypypypypypypypypypypypypypypypypypypypy.config()
cfg.set'u value('somedict',{'a':'aye','b':'bee'}
`````
虽然默认情况下是开启解密功能的,但可以关闭解密功能,尽管在默认情况下是开启解密功能的:
````python
import figgypypypypypypypypypypypypypypypypypypypypypypypy假的,decrypt_kms=false)
cfg.decrypt_kms=true
像这样:
`` python
``在shashared.py
import figgypy
cfg=figgypy.config()
figgypy.set_config(cfg)
``在worker.py
import figgypy
figgypy
cfg=get_config()
``在worker.py
>
这些更改还应使应用程序中的测试更容易,因为在测试中,您可以在同一个对象上重新加载不同的配置:
``python
import figgypy
from mylib import totest
totest.config_file='tests/resources/config.yaml'
```
figgypy<;1.0.0(仍受支持)
```python
from figgypy import config
cfg=config(conf_file)
````
config对象只能用文件名、相对路径或绝对路径创建。
如果只提供名称或相对路径,请按以下顺序查找:
1。当前目录
2。` ~/.config/<;文件名>;`
3。`/etc/<;文件名>;`
以及`/etc/your_package/config.yaml`.
每个属性都是一个具有剩余嵌套结构的字典。
请参阅下面的示例。
--
\json
``json
{
"db":{
"url":"mydburl.com",
"name":"mydbname",
"user":"myusername",
"pass":"correctHorseBatteryStable"
"log":{
"file":"/var/log/cool廑project.log",
"level":"info"
}
}
`````
cfg=config('theabove.json')
xml version="1.0"encoding="utf-8"?>;
<;config>;
<;db>;
<;url>;mydburl.com<;/url>;
<;name>;mydbname<;/name>;
<;user>;myusername<;/user>;
<;pass>;correctHorseBatteryStable<;/pass>;
<;db>;
<;log>;
<;file>;
<;level>;info<;level>;
<;/log>;
<;/log>;
<;/config>;
``````
cfg=config('theave.xml')
/>
``yaml
db:
url:mydburl.com
name:mydbname
user:myusername
pass:correctHorseBatteryStable
log:
file:/var/log/cool_project.log
level:info
````
cfg=config('theabove.yaml')
这将生成具有"db"属性的对象"cfg"`和"log",每个都是字典。这与json是完全相同的行为,考虑到yaml和json的密切关系,这是有意义的。
secrets
--
可以使用gpg在配置文件中存储pgp和kms加密的机密。
``yaml
db:
host:db.heck.ya
pass:
-开始PGP消息-----
>版本:gnupg v2
hqimazf92zrouzl3raagwexav8+pc2lqisequfqqqy0pu3xcumxnfzp+hpu
gb0lsaexz136p436p430p430p430p94hfxxx7gqoqit/2fububuucsugeq122xyzdtv
ep/24wpvqpcvv9pdtk82a41bqb82a8jjjb13zzzzzzzyhappvyhappntcwkwk4/gfr
/gfr
jmqqax5qx5qqqqqqqqqq是的CCJ886ueqi2V7+VXNK+QQQQQQQQQQQQQQQQQQQQSW0DCVD792/Si/CTZNSJBMWWR81CSEQJJ++4O5WWJOP3Y
ZQVG/FXEDDRI2AX2CX7JKX2DCSRQQQQQQQQ5L6LJ16LJQX2YKX2YK+NI
LBJ55CP2LHLX9QFB+Kglue9GDKU9GGQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQDDMX0V7YGYTAMZ3
3za+ogi+hl/+4wx2gm+bom2ww对一个国家来说,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家,一个国家是一个国家,一个国家是一个国家,一个国家,一个国家是一个国家,一个国家,一个国家,一个国家是一个国家,一个国家,一个国家,一个国家,一个国家是一个国家,一个国家,一个国家是一个国家,一个国家br/>saer9ykqbp0y85lbhuwnwppphq2zy8wb71tfye6vbp5qjoxiqp/qgwjt/3jhcy+t
5k7r6xqvdvbsu1avflegapknzn94i+gswq===
=qude
----结束pgp消息-----
`````
如果使用json,则需要换行。我用"cat the above.yaml seria-j-`.
`` json
{
"db":{
"host":"db.heck.ya",
"pass":"-开始pgp消息-----中国人在94HFX7GQOZGT/2号机组上的QOZD22XYZDTV\NEP/24WPVQPCVIP9PDTK82A41BQWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWJJJJJ13ZZZZZZZZYHAPWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWJJJJJJJJJJJJ2ACXH7JK2XDCSRQZXKTNG2QZMWWQATB5LB6LJ型X2YK+NI+NI\NLBY5CP2LHLNXA9QFB+KgluemnH9GDKU9GDKU5QBDOS6RCEUQK/ATDDMX0V7YYGYGYTAMZ3\N3ZA+OGI+HL/+4WX2GM+BOM2WWRIYYISU9K1HMI1/ONUI/3HR1H10I/3HR1NCL8RGB4Q液化石油气\NYRRT7LulRu4VGYYXLuII3UTUUU3UJNPO3D8LFX8N8P1LLS9VV9VQ\nVRVVVVVxRNWSRNWWWWWWWWWWWWWWWWW9GGG6YG6ogcyjyrems3ih6h2obi3gavj2x0mg75\nm9jstu/yytd8gcm3s+3r三峡库区ZK1GBDZ0PJB+U6G43QQ8/VQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ配置文件的键。
``` yaml
db:
host:db.heck.ya
pass:
kms:kms加密值
````
S值。
这很简单,对吧?现在,这个值将被解密并可用,就像您在配置文件中键入的值一样。
默认为"gpg"。
+`figgypy_gpg_homedir'是gpg home。基本上在哪里找钥匙圈。默认为`~/.gnupg/`.
+`figgypy_gpg_keyring`保存密钥的文件。默认为"pubring.gpg";可能需要为"pubring.kbx"。
-1}
gpg<
gpg{'homedir':'noplace/like/home',
'keyring':'publibing.kbx'}
cfg=figgypy.config('config.yaml',aws_-aws_-config,gpg_-config=gpg_-config)
```
echo-n"您的超级机密密码"gpg--encrypt--armor-r key_id
必要时将生成的护甲添加到配置中。如果你用的是yaml,这很简单。下面是一个示例:
kms
aws kms encrypt--密钥id'别名/密钥'--明文"您的秘密"--查询密文blob--输出文本
或者别名/密钥别名,可选的aws配置)
```
如果您想将json、xml或yaml转换为相同的三种格式,seria是一个很好的工具。
=
[![在Gitter上聊天](https://badges.gitter.im/theherk/figgypy.svg)](https://gitter.im/theherk/figgypy?utm_source=badge&utm_medium=badge&utm_campaign=pr badge&utm_content=badge)
[![构建状态](https://travis ci.org/theherk/figgypy.svg)(https://travis ci.org/theherk/figgypy)
它将在安装时安装python gnupg。如果默认情况下系统上没有gnupg(可能是),则需要安装它。如果缺少这两个选项中的任何一个,配置工具仍然可以工作,它只是不会解密机密。
usage
----
或者
cfg.values['somevalue']
;或者
cfg.values.get('somevalue',可选的默认值)
;或者
figgypy py.getfigypypypy.get('somevalue','somevalue',可选的默认值)
`````
`` python
ypy导入配置,set_config
cfg=config(config_file='config.yaml')
figgypy.set_config(cfg)
b.py
import figgypy
figgypy.get_value('somevalue')
````
你甚至不需要使用文件。例如:
```python
import figgypypy
cfg=figgypypypypypypypypypypypypypypypypypypypypypypypy.config()
cfg.set'u value('somedict',{'a':'aye','b':'bee'}
`````
虽然默认情况下是开启解密功能的,但可以关闭解密功能,尽管在默认情况下是开启解密功能的:
````python
import figgypypypypypypypypypypypypypypypypypypypypypypypy假的,decrypt_kms=false)
cfg.decrypt_kms=true
像这样:
`` python
``在shashared.py
import figgypy
cfg=figgypy.config()
figgypy.set_config(cfg)
``在worker.py
import figgypy
figgypy
cfg=get_config()
``在worker.py
>
这些更改还应使应用程序中的测试更容易,因为在测试中,您可以在同一个对象上重新加载不同的配置:
``python
import figgypy
from mylib import totest
totest.config_file='tests/resources/config.yaml'
```
figgypy<;1.0.0(仍受支持)
```python
from figgypy import config
cfg=config(conf_file)
````
config对象只能用文件名、相对路径或绝对路径创建。
如果只提供名称或相对路径,请按以下顺序查找:
1。当前目录
2。` ~/.config/<;文件名>;`
3。`/etc/<;文件名>;`
以及`/etc/your_package/config.yaml`.
每个属性都是一个具有剩余嵌套结构的字典。
请参阅下面的示例。
--
\json
``json
{
"db":{
"url":"mydburl.com",
"name":"mydbname",
"user":"myusername",
"pass":"correctHorseBatteryStable"
"log":{
"file":"/var/log/cool廑project.log",
"level":"info"
}
}
`````
cfg=config('theabove.json')
xml version="1.0"encoding="utf-8"?>;
<;config>;
<;db>;
<;url>;mydburl.com<;/url>;
<;name>;mydbname<;/name>;
<;user>;myusername<;/user>;
<;pass>;correctHorseBatteryStable<;/pass>;
<;db>;
<;log>;
<;file>;
<;level>;info<;level>;
<;/log>;
<;/log>;
<;/config>;
``````
cfg=config('theave.xml')
/>
``yaml
db:
url:mydburl.com
name:mydbname
user:myusername
pass:correctHorseBatteryStable
log:
file:/var/log/cool_project.log
level:info
````
cfg=config('theabove.yaml')
这将生成具有"db"属性的对象"cfg"`和"log",每个都是字典。这与json是完全相同的行为,考虑到yaml和json的密切关系,这是有意义的。
secrets
--
可以使用gpg在配置文件中存储pgp和kms加密的机密。
``yaml
db:
host:db.heck.ya
pass:
-开始PGP消息-----
>版本:gnupg v2
hqimazf92zrouzl3raagwexav8+pc2lqisequfqqqy0pu3xcumxnfzp+hpu
gb0lsaexz136p436p430p430p430p94hfxxx7gqoqit/2fububuucsugeq122xyzdtv
ep/24wpvqpcvv9pdtk82a41bqb82a8jjjb13zzzzzzzyhappvyhappntcwkwk4/gfr
/gfr
jmqqax5qx5qqqqqqqqqq是的CCJ886ueqi2V7+VXNK+QQQQQQQQQQQQQQQQQQQQSW0DCVD792/Si/CTZNSJBMWWR81CSEQJJ++4O5WWJOP3Y
ZQVG/FXEDDRI2AX2CX7JKX2DCSRQQQQQQQQ5L6LJ16LJQX2YKX2YK+NI
LBJ55CP2LHLX9QFB+Kglue9GDKU9GGQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQDDMX0V7YGYTAMZ3
3za+ogi+hl/+4wx2gm+bom2ww对一个国家来说,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家是一个国家,一个国家,一个国家是一个国家,一个国家是一个国家,一个国家,一个国家是一个国家,一个国家,一个国家,一个国家是一个国家,一个国家,一个国家,一个国家,一个国家是一个国家,一个国家,一个国家是一个国家,一个国家br/>saer9ykqbp0y85lbhuwnwppphq2zy8wb71tfye6vbp5qjoxiqp/qgwjt/3jhcy+t
5k7r6xqvdvbsu1avflegapknzn94i+gswq===
=qude
----结束pgp消息-----
`````
如果使用json,则需要换行。我用"cat the above.yaml seria-j-`.
`` json
{
"db":{
"host":"db.heck.ya",
"pass":"-开始pgp消息-----中国人在94HFX7GQOZGT/2号机组上的QOZD22XYZDTV\NEP/24WPVQPCVIP9PDTK82A41BQWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWJJJJJ13ZZZZZZZZYHAPWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWJJJJJJJJJJJJ2ACXH7JK2XDCSRQZXKTNG2QZMWWQATB5LB6LJ型X2YK+NI+NI\NLBY5CP2LHLNXA9QFB+KgluemnH9GDKU9GDKU5QBDOS6RCEUQK/ATDDMX0V7YYGYGYTAMZ3\N3ZA+OGI+HL/+4WX2GM+BOM2WWRIYYISU9K1HMI1/ONUI/3HR1H10I/3HR1NCL8RGB4Q液化石油气\NYRRT7LulRu4VGYYXLuII3UTUUU3UJNPO3D8LFX8N8P1LLS9VV9VQ\nVRVVVVVxRNWSRNWWWWWWWWWWWWWWWWW9GGG6YG6ogcyjyrems3ih6h2obi3gavj2x0mg75\nm9jstu/yytd8gcm3s+3r三峡库区ZK1GBDZ0PJB+U6G43QQ8/VQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ配置文件的键。
``` yaml
db:
host:db.heck.ya
pass:
kms:kms加密值
````
S值。
这很简单,对吧?现在,这个值将被解密并可用,就像您在配置文件中键入的值一样。
默认为"gpg"。
+`figgypy_gpg_homedir'是gpg home。基本上在哪里找钥匙圈。默认为`~/.gnupg/`.
+`figgypy_gpg_keyring`保存密钥的文件。默认为"pubring.gpg";可能需要为"pubring.kbx"。
-1}
gpg<
gpg{'homedir':'noplace/like/home',
'keyring':'publibing.kbx'}
cfg=figgypy.config('config.yaml',aws_-aws_-config,gpg_-config=gpg_-config)
```
echo-n"您的超级机密密码"gpg--encrypt--armor-r key_id
必要时将生成的护甲添加到配置中。如果你用的是yaml,这很简单。下面是一个示例:
kms
aws kms encrypt--密钥id'别名/密钥'--明文"您的秘密"--查询密文blob--输出文本
或者别名/密钥别名,可选的aws配置)
```
如果您想将json、xml或yaml转换为相同的三种格式,seria是一个很好的工具。