diff options
Diffstat (limited to 'devel/py-confuse/pkg-descr')
| -rw-r--r-- | devel/py-confuse/pkg-descr | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/devel/py-confuse/pkg-descr b/devel/py-confuse/pkg-descr index d59fe64ad9c9..7324cec7bc6d 100644 --- a/devel/py-confuse/pkg-descr +++ b/devel/py-confuse/pkg-descr @@ -1,7 +1,26 @@ -Confuse is a configuration library for Python that uses YAML. +Confuse is a configuration library for Python that uses YAML. It takes care of +defaults, overrides, type checking, command-line integration, environment +variable support, human-readable errors, and standard OS-specific locations. -It takes care of defaults, overrides, type checking, command-line -integration, human-readable errors, and standard OS-specific locations. - -Confuse was made to power beets. Like beets, it is available under the MIT -license. +Here is what Confuse brings to the table: +- An utterly sensible API resembling dictionary-and-list structures but + providing transparent validation without lots of boilerplate code. Type + config['num_goats'].get(int) to get the configured number of goats and ensure + that it is an integer. +- Combine configuration data from multiple sources. Using layering, Confuse + allows user-specific configuration to seamlessly override system-wide + configuration, which in turn overrides built-in defaults. An in-package + config_default.yaml can be used to provide bottom-layer defaults using the + same syntax that users will see. A runtime overlay allows the program to + programmatically override and add configuration values. +- Look for configuration files in platform-specific paths. Like $XDG_CONFIG_HOME + or ~/.config on Unix; "Application Support" on macOS; %APPDATA% on Windows. + Your program gets its own directory, which you can use to store additional + data. You can transparently create this directory on demand if, for example, + you need to initialize the configuration file on first run. And an environment + variable can be used to override the directory's location. +- Integration with command-line arguments via argparse or optparse from the + standard library. Use argparse's declarative API to allow command-line options + to override configured defaults. +- Include configuration values from environment variables. Values undergo + automatic type conversion, and nested dicts and lists are supported. |
