granula 2018.2.8

Creator: bradpython12

Last updated:

Add to Cart

Description:

granula 2018.2.8

Granula is a tool that aims to help maintain multi-file configurations for
Python applications (with environments and more).

Installation
$ pipenv install granula
or just use pip (though you should definitely take a look at pipenv)
🌈🌈🌈


Features

Gathers configurations from multiple files or directories.
Supports widely used file formats (YAML, JSON).
Offers a small DSL that allows to load environment variables into config files.
Manages different configuration environments (e.g. testing, production).



Usage
Create a config object from a directory with multiple configuration files:
>> import granula
>> config = granula.Config.from_directory('examples/multi-file/settings')
>> config
Config({'name': 'Darth Vader', ...})
>> config.name
'Darth Vader'
>> config.family
Config({'fiancee': 'Padme Amidala', 'children': ['Luke Skywalker', 'Leia Organa']})
Files are parsed in lexicographic order. The values specified in the preceding files can be overwritten in the succeeding files.
Do the same in a recursive manner:
>> config = granula.Config.from_directory(..., recursive=True)
Match YAML files using filename pattern:
>> config = granula.Config.from_directory(..., pattern=granula.Extension('yaml'))
Do the same with a shell-style wildcard pattern:
>> config = granula.Config.from_directory(..., pattern=granula.Wildcard('*.yaml'))
Match configuration files for different environments:
>> directory = 'examples/environments/settings'
>> testing = granula.Config.from_directory(directory, pattern=granula.Environment('testing'))
>> production = granula.Config.from_directory(directory, pattern=granula.Environment('production'))
Combine patterns in arbitrary ways:
>> pattern = granula.All(granula.Environment('testing'), granula.Extension('yaml'))
>> config = granula.Config.from_directory(..., pattern=pattern)
Load environment variables into config files using a DSL, for example, in YAML:
variable: ${env VARIABLE}
Do the same with a default value:
variable: ${env VARIABLE | val 10}

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.