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