This project was inspired by spf13/viper.
pip install py-viper
import tempfile
import viper
yaml_example = b'''
hello:
name: foo
'''
class Hello:
name = ''
class Config:
hello = Hello
if __name__ == '__main__':
with tempfile.NamedTemporaryFile(suffix='.yaml') as temp:
temp.write(yaml_example)
temp.seek(0)
viper.set_config_path(temp.name)
viper.read_config()
assert viper.get('hello.name') == 'foo'
conf = Config()
viper.unmarshal(conf)
assert conf.hello.name == 'foo'
You can also use remote config instead of local config:
viper.set_config_type('yml')
viper.set_remote_provider('consul', '127.0.0.1', 8500, 'hello')
viper.read_remote_config()
Note:
- The config type only supports yaml or yml.
- The backend of remote config only supports consul.
- Read remote config
- Unmarshal config
- Add support for JSON