Add --list-deps command with Pykka adapter
This commit is contained in:
parent
2262bf91d5
commit
5fcc4e67aa
@ -22,6 +22,7 @@ from mopidy import (get_version, settings, OptionalDependencyError,
|
||||
SettingsError, DATA_PATH, SETTINGS_PATH, SETTINGS_FILE)
|
||||
from mopidy.gstreamer import GStreamer
|
||||
from mopidy.utils import get_class
|
||||
from mopidy.utils.deps import list_deps_optparse_callback
|
||||
from mopidy.utils.log import setup_logging
|
||||
from mopidy.utils.path import get_or_create_folder, get_or_create_file
|
||||
from mopidy.utils.process import (exit_handler, stop_remaining_actors,
|
||||
@ -77,6 +78,9 @@ def parse_options():
|
||||
parser.add_option('--list-settings',
|
||||
action='callback', callback=list_settings_optparse_callback,
|
||||
help='list current settings')
|
||||
parser.add_option('--list-deps',
|
||||
action='callback', callback=list_deps_optparse_callback,
|
||||
help='list dependencies and their versions')
|
||||
return parser.parse_args(args=mopidy_args)[0]
|
||||
|
||||
def check_old_folders():
|
||||
|
||||
43
mopidy/utils/deps.py
Normal file
43
mopidy/utils/deps.py
Normal file
@ -0,0 +1,43 @@
|
||||
import sys
|
||||
|
||||
import pykka
|
||||
|
||||
|
||||
def list_deps_optparse_callback(*args):
|
||||
"""
|
||||
Prints a list of all dependencies.
|
||||
|
||||
Called by optparse when Mopidy is run with the :option:`--list-deps`
|
||||
option.
|
||||
"""
|
||||
print format_dependency_list()
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def format_dependency_list(adapters=None):
|
||||
if adapters is None:
|
||||
adapters = [
|
||||
pykka_info,
|
||||
]
|
||||
|
||||
lines = []
|
||||
for adapter in adapters:
|
||||
dep_info = adapter()
|
||||
lines.append('%(name)s: %(version)s' % dep_info)
|
||||
if 'path' in dep_info:
|
||||
lines.append(' Imported from: %(path)s' % dep_info)
|
||||
return '\n'.join(lines)
|
||||
|
||||
|
||||
def pykka_info():
|
||||
if hasattr(pykka, '__version__'):
|
||||
# Pykka >= 0.14
|
||||
version = pykka.__version__
|
||||
else:
|
||||
# Pykka < 0.14
|
||||
version = pykka.get_version()
|
||||
return {
|
||||
'name': 'Pykka',
|
||||
'version': version,
|
||||
'path': pykka.__file__,
|
||||
}
|
||||
27
tests/utils/deps_test.py
Normal file
27
tests/utils/deps_test.py
Normal file
@ -0,0 +1,27 @@
|
||||
import pykka
|
||||
|
||||
from mopidy.utils import deps
|
||||
|
||||
from tests import unittest
|
||||
|
||||
|
||||
class DepsTest(unittest.TestCase):
|
||||
def test_format_dependency_list(self):
|
||||
adapters = [
|
||||
lambda: dict(name='Python', version='FooPython 2.7.3'),
|
||||
lambda: dict(name='Platform', version='Loonix 4.0.1'),
|
||||
lambda: dict(name='Pykka', version='0.1337', path='/foo/bar/baz')
|
||||
]
|
||||
|
||||
result = deps.format_dependency_list(adapters)
|
||||
|
||||
self.assertIn('Python: FooPython 2.7.3', result)
|
||||
self.assertIn('Platform: Loonix 4.0.1', result)
|
||||
self.assertIn('Imported from: /foo/bar/baz', result)
|
||||
|
||||
def test_pykka_info(self):
|
||||
result = deps.pykka_info()
|
||||
|
||||
self.assertEquals('Pykka', result['name'])
|
||||
self.assertEquals(pykka.__version__, result['version'])
|
||||
self.assertIn('pykka', result['path'])
|
||||
Loading…
Reference in New Issue
Block a user