Config API[source]

Helper to load config defaults in same way across core and extensions

Config section schemas

class mopidy.config.schemas.ConfigSchema(name)[source]

Logical group of config values that correspond to a config section.

Schemas are set up by assigning config keys with config values to instances. Once setup deserialize() can be called with a dict of values to process. For convienience we also support format() method that can used for converting the values to a dict that can be printed and serialize() for converting the values to a form suitable for persistence.


Validates the given values using the config schema.

Returns a tuple with cleaned values and errors.

serialize(values, display=False)[source]

Converts the given values to a format suitable for persistence.

If display is True secret config values, like passwords, will be masked out.

Returns a dict of config keys and values.

class mopidy.config.schemas.LogLevelConfigSchema(name)[source]

Special cased schema for handling a config section with loglevels.

Expects the config keys to be logger names and the values to be log levels as understood by the LogLevel config value. Does not sub-class ConfigSchema, but implements the same serialize/deserialize interface.

Config value types

class mopidy.config.types.Boolean(optional=False)[source]

Boolean value.

Accepts 1, yes, true, and on with any casing as True.

Accepts 0, no, false, and off with any casing as False.

class mopidy.config.types.ConfigValue[source]

Represents a config key’s value and how to handle it.

Normally you will only be interacting with sub-classes for config values that encode either deserialization behavior and/or validation.

Each config value should be used for the following actions:

  1. Deserializing from a raw string and validating, raising ValueError on failure.
  2. Serializing a value back to a string that can be stored in a config.
  3. Formatting a value to a printable form (useful for masking secrets).

None values should not be deserialized, serialized or formatted, the code interacting with the config should simply skip None config values.


Cast raw string to appropriate type.

serialize(value, display=False)[source]

Convert value back to string for saving.

class mopidy.config.types.Deprecated[source]

Deprecated value

Used for ignoring old config values that are no longer in use, but should not cause the config parser to crash.

class mopidy.config.types.Hostname(optional=False)[source]

Network hostname value.

class mopidy.config.types.Integer(minimum=None, maximum=None, choices=None, optional=False)[source]

Integer value.

class mopidy.config.types.List(optional=False)[source]

List value.

Supports elements split by commas or newlines. Newlines take presedence and empty list items will be filtered out.

class mopidy.config.types.LogLevel[source]

Log level value.

Expects one of critical, error, warning, info, debug with any casing.

class mopidy.config.types.Path(optional=False)[source]

File system path

The following expansions of the path will be done:

  • ~ to the current user’s home directory
  • $XDG_CACHE_DIR according to the XDG spec
  • $XDG_CONFIG_DIR according to the XDG spec
  • $XDG_DATA_DIR according to the XDG spec
  • $XDG_MUSIC_DIR according to the XDG spec
class mopidy.config.types.Port(choices=None, optional=False)[source]

Network port value.

Expects integer in the range 0-65535, zero tells the kernel to simply allocate a port for us.

class mopidy.config.types.Secret(optional=False, choices=None)[source]

Secret string value.

Is decoded as utf-8 and n t escapes should work and be preserved.

Should be used for passwords, auth tokens etc. Will mask value when being displayed.

class mopidy.config.types.String(optional=False, choices=None)[source]

String value.

Is decoded as utf-8 and n t escapes should work and be preserved.

Config value validators

mopidy.config.validators.validate_choice(value, choices)[source]

Validate that value is one of the choices

Normally called in deserialize().

mopidy.config.validators.validate_maximum(value, maximum)[source]

Validate that value is at most maximum

Normally called in deserialize().

mopidy.config.validators.validate_minimum(value, minimum)[source]

Validate that value is at least minimum

Normally called in deserialize().

mopidy.config.validators.validate_required(value, required)[source]

Validate that value is set if required

Normally called in deserialize() on the raw string, _not_ the converted value.