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
- ext_name: str
The extension’s short name, as used in setup.py and as config section name
Example:
soundspot
- classmethod get_cache_dir(config: Config) Path [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:
pathlib.Path
- get_command() Command | None [source]
Command to expose to command line users running
mopidy
.- Returns:
Instance of a
Command
class.
- classmethod get_config_dir(config: Config) Path [source]
Get or create configuration directory for the extension.
- Parameters:
config – the Mopidy config object
- Returns:
pathlib.Path
- get_config_schema() ConfigSchema [source]
The extension’s config validation schema
- Returns:
- classmethod get_data_dir(config: Config) Path [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:
pathlib.Path
- setup(registry: Registry) None [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 thefrontend
andbackend
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() None [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
- class mopidy.ext.ExtensionData(extension, entry_point, config_schema, config_defaults, command)[source]
-
- config_defaults: Any
Alias for field number 3
- config_schema: ConfigSchema
Alias for field number 2
- entry_point: Any
Alias for field number 1
- extension: '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.
Extensions can use the registry for allow other to extend the extension itself. For example the
Mopidy-Local
historically used thelocal:library
key to allow other extensions to register library providers forMopidy-Local
to use. Extensions should namespace custom keys with the extension’sext_name
, e.g.local:foo
orhttp:bar
.
- mopidy.ext.load_extensions() List[ExtensionData] [source]
Find all installed extensions.
- Returns:
list of installed extensions
- mopidy.ext.validate_extension_data(data: ExtensionData) bool [source]
Verify extension’s dependencies and environment.
- Parameters:
extensions – an extension to check
- Returns:
if extension should be run