diff --git a/docs/conf.py b/docs/conf.py index e37f5713..d02303df 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -97,7 +97,7 @@ copyright = u'2010-2012, Stein Magnus Jodal and contributors' # built documents. # # The full version, including alpha/beta/rc tags. -from mopidy import get_version +from mopidy.utils.versioning import get_version release = get_version() # The short X.Y version. version = '.'.join(release.split('.')[:2]) diff --git a/mopidy/__init__.py b/mopidy/__init__.py index ec2f4147..dc782db9 100644 --- a/mopidy/__init__.py +++ b/mopidy/__init__.py @@ -5,7 +5,6 @@ if not (2, 6) <= sys.version_info < (3,): from distutils.version import StrictVersion import os import platform -from subprocess import PIPE, Popen import glib @@ -21,23 +20,6 @@ SETTINGS_PATH = os.path.join(str(glib.get_user_config_dir()), 'mopidy') SETTINGS_FILE = os.path.join(SETTINGS_PATH, 'settings.py') -def get_version(): - try: - return get_git_version() - except EnvironmentError: - return __version__ - - -def get_git_version(): - process = Popen(['git', 'describe'], stdout=PIPE, stderr=PIPE) - if process.wait() != 0: - raise EnvironmentError('Execution of "git describe" failed') - version = process.stdout.read().strip() - if version.startswith('v'): - version = version[1:] - return version - - def get_platform(): return platform.platform() diff --git a/mopidy/__main__.py b/mopidy/__main__.py index aa108f2c..e712fc63 100644 --- a/mopidy/__main__.py +++ b/mopidy/__main__.py @@ -31,7 +31,8 @@ sys.path.insert( import mopidy from mopidy import audio, core, exceptions, settings from mopidy.utils import ( - deps, importing, log, path, process, settings as settings_utils) + deps, importing, log, path, process, settings as settings_utils, + versioning) logger = logging.getLogger('mopidy.main') @@ -66,7 +67,8 @@ def main(): def parse_options(): - parser = optparse.OptionParser(version=u'Mopidy %s' % mopidy.get_version()) + parser = optparse.OptionParser( + version=u'Mopidy %s' % versioning.get_version()) parser.add_option( '--help-gst', action='store_true', dest='help_gst', diff --git a/mopidy/backends/spotify/session_manager.py b/mopidy/backends/spotify/session_manager.py index 99859abd..2ca7d673 100644 --- a/mopidy/backends/spotify/session_manager.py +++ b/mopidy/backends/spotify/session_manager.py @@ -4,13 +4,13 @@ import threading from spotify.manager import SpotifySessionManager as PyspotifySessionManager -from mopidy import get_version, settings +from mopidy import settings from mopidy.backends.spotify import BITRATES from mopidy.backends.spotify.container_manager import SpotifyContainerManager from mopidy.backends.spotify.playlist_manager import SpotifyPlaylistManager from mopidy.backends.spotify.translator import SpotifyTranslator from mopidy.models import Playlist -from mopidy.utils.process import BaseThread +from mopidy.utils import process, versioning logger = logging.getLogger('mopidy.backends.spotify.session_manager') @@ -18,15 +18,15 @@ logger = logging.getLogger('mopidy.backends.spotify.session_manager') # SpotifySessionManager: Too many ancestors (9/7) -class SpotifySessionManager(BaseThread, PyspotifySessionManager): +class SpotifySessionManager(process.BaseThread, PyspotifySessionManager): cache_location = settings.SPOTIFY_CACHE_PATH settings_location = cache_location appkey_file = os.path.join(os.path.dirname(__file__), 'spotify_appkey.key') - user_agent = 'Mopidy %s' % get_version() + user_agent = 'Mopidy %s' % versioning.get_version() def __init__(self, username, password, audio, backend_ref): PyspotifySessionManager.__init__(self, username, password) - BaseThread.__init__(self) + process.BaseThread.__init__(self) self.name = 'SpotifyThread' self.audio = audio diff --git a/mopidy/utils/log.py b/mopidy/utils/log.py index 9b9495d5..d5c9a14d 100644 --- a/mopidy/utils/log.py +++ b/mopidy/utils/log.py @@ -1,7 +1,8 @@ import logging import logging.handlers -from mopidy import get_version, get_platform, get_python, settings +from mopidy import get_platform, get_python, settings +from . import versioning def setup_logging(verbosity_level, save_debug_log): @@ -10,7 +11,7 @@ def setup_logging(verbosity_level, save_debug_log): if save_debug_log: setup_debug_logging_to_file() logger = logging.getLogger('mopidy.utils.log') - logger.info(u'Starting Mopidy %s', get_version()) + logger.info(u'Starting Mopidy %s', versioning.get_version()) logger.info(u'Platform: %s', get_platform()) logger.info(u'Python: %s', get_python()) diff --git a/mopidy/utils/versioning.py b/mopidy/utils/versioning.py new file mode 100644 index 00000000..b25761e9 --- /dev/null +++ b/mopidy/utils/versioning.py @@ -0,0 +1,20 @@ +from subprocess import PIPE, Popen + +from mopidy import __version__ + + +def get_version(): + try: + return get_git_version() + except EnvironmentError: + return __version__ + + +def get_git_version(): + process = Popen(['git', 'describe'], stdout=PIPE, stderr=PIPE) + if process.wait() != 0: + raise EnvironmentError('Execution of "git describe" failed') + version = process.stdout.read().strip() + if version.startswith('v'): + version = version[1:] + return version