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
pathlib.Path
-
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
pathlib.Path
-
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
pathlib.Path
-
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 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
()[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.
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
.