mopidy.ext – Extension API

If you want to learn how to make Mopidy extensions, read Extension development.

class mopidy.ext.Extension[source]

Base class for Mopidy extensions

dist_name = None

The extension’s distribution name, as registered on PyPI

Example: Mopidy-Soundspot

ext_name = None

The extension’s short name, as used in setup.py and as config section name

Example: soundspot

classmethod get_cache_dir(config)[source]

Get or create cache directory for the extension.

Use this directory to cache data that can safely be thrown away.

Parameters:config – the Mopidy config object
Returns:string
get_command()[source]

Command to expose to command line users running mopidy.

Returns:Instance of a Command class.
classmethod get_config_dir(config)[source]

Get or create configuration directory for the extension.

Parameters:config – the Mopidy config object
Returns:string
get_config_schema()[source]

The extension’s config validation schema

Returns:ConfigSchema
classmethod get_data_dir(config)[source]

Get or create data directory for the extension.

Use this directory to store data that should be persistent.

Parameters:config – the Mopidy config object
Returns:string
get_default_config()[source]

The extension’s default config as a bytestring

Returns:bytes or unicode
setup(registry)[source]

Register the extension’s components in the extension Registry.

For example, to register a backend:

def setup(self, registry):
    from .backend import SoundspotBackend
    registry.add('backend', SoundspotBackend)

See Registry for a list of registry keys with a special meaning. Mopidy will instantiate and start any classes registered under the frontend and backend registry keys.

This method can also be used for other setup tasks not involving the extension registry.

Parameters:registry (Registry) – the extension registry
validate_environment()[source]

Checks if the extension can run in the current environment.

Dependencies described by setup.py are checked by Mopidy, so you should not check their presence here.

If a problem is found, raise ExtensionError with a message explaining the issue.

Raises:ExtensionError
Returns:None
version = None

The extension’s version

Should match the __version__ attribute on the extension’s main Python module and the version registered on PyPI.

class mopidy.ext.ExtensionData(extension, entry_point, config_schema, config_defaults, command)
command

Alias for field number 4

config_defaults

Alias for field number 3

config_schema

Alias for field number 2

entry_point

Alias for field number 1

extension

Alias for field number 0

class mopidy.ext.Registry[source]

Registry of components provided by Mopidy extensions.

Passed to the setup() method of all extensions. The registry can be used like a dict of string keys and lists.

Some keys have a special meaning, including, but not limited to:

  • backend is used for Mopidy backend classes.
  • frontend is used for Mopidy frontend classes.
  • local:library is used for Mopidy-Local libraries.

Extensions can use the registry for allow other to extend the extension itself. For example the Mopidy-Local use the local:library key to allow other extensions to register library providers for Mopidy-Local to use. Extensions should namespace custom keys with the extension’s ext_name, e.g. local:foo or http:bar.

add(name, cls)[source]

Add a component to the registry.

Multiple classes can be registered to the same name.

mopidy.ext.load_extensions()[source]

Find all installed extensions.

Returns:list of installed extensions
mopidy.ext.validate_extension_data(data)[source]

Verify extension’s dependencies and environment.

Parameters:extensions – an extension to check
Returns:if extension should be run