Readers

Functions to read values directly from a staticconf.config.ConfigNamespace. Values will be validated and cast to the requested type.

Examples

import staticconf

# read an int
max_cycles = staticconf.read_int('max_cycles')
start_id = staticconf.read_int('poller.init.start_id', default=0)

# start_date will be a datetime.date
start_date = staticconf.read_date('start_date')

# matcher will be a regex object
matcher = staticconf.read_regex('matcher_pattern')

# Read a value from a different namespace
intervals = staticconf.read_float('intervals', namespace='something')

Readers can be attached to a namespace using a NamespaceReaders object.

import staticconf

bling_reader = staticconf.NamespaceReaders('bling')

# These values are read from the `bling` ConfigNamespace
currency = bling_reader.read_string('currency')
value = bling_reader.read_float('value')

Arguments

Readers accept the following kwargs:

config_key
string configuration key using dotted notation
default
if no default is given, the key must be present in the configuration. If the key is missing a staticconf.errors.ConfigurationError is raised.
namespace
get the value from this namespace instead of DEFAULT.

Building custom readers

build_reader() is a factory function which can be used for creating custom readers from a validation function. A validation function should handle all exceptions and raise a staticconf.errors.ValidationError if there is a problem.

First create a validation function

def validate_currency(value):
    try:
        # Assume a tuple or a list
        name, decimal_points = value
        return Currency(name, decimal_points)
    except Exception, e:
        raise ValidationErrror(...)

Example of a custom reader:

from staticconf import readers

read_currency = readers.build_reader(validate_currency)

# Returns a Currency object using the data from the config namespace
# at they key `currencies.usd`.
usd_currency = read_currency('currencies.usd')
staticconf.readers.NamespaceReaders(name)

An object with all reader functions which retrieve configuration from a named namespace, instead of DEFAULT.

staticconf.readers.build_reader(validator, reader_namespace='DEFAULT')[source]

A factory method for creating a custom config reader from a validation function.

Parameters:
  • validator – a validation function which acceptance one argument (the configuration value), and returns that value casted to the appropriate type.
  • reader_namespace – the default namespace to use. Defaults to DEFAULT.