diff --git a/mopidy/backends/local/__init__.py b/mopidy/backends/local/__init__.py index a6c96a3a..161506e3 100644 --- a/mopidy/backends/local/__init__.py +++ b/mopidy/backends/local/__init__.py @@ -14,7 +14,7 @@ class Extension(ext.Extension): def get_default_config(self): conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf') - return open(conf_file).read() + return config.read(conf_file) def get_config_schema(self): schema = config.ExtensionConfigSchema() diff --git a/mopidy/backends/spotify/__init__.py b/mopidy/backends/spotify/__init__.py index 2860b593..2833c4c4 100644 --- a/mopidy/backends/spotify/__init__.py +++ b/mopidy/backends/spotify/__init__.py @@ -14,7 +14,7 @@ class Extension(ext.Extension): def get_default_config(self): conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf') - return open(conf_file).read() + return config.read(conf_file) def get_config_schema(self): schema = config.ExtensionConfigSchema() diff --git a/mopidy/backends/stream/__init__.py b/mopidy/backends/stream/__init__.py index 732fd3f2..3f116eed 100644 --- a/mopidy/backends/stream/__init__.py +++ b/mopidy/backends/stream/__init__.py @@ -14,7 +14,7 @@ class Extension(ext.Extension): def get_default_config(self): conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf') - return open(conf_file).read() + return config.read(conf_file) def get_config_schema(self): schema = config.ExtensionConfigSchema() diff --git a/mopidy/config/__init__.py b/mopidy/config/__init__.py index b04bcc44..48334942 100644 --- a/mopidy/config/__init__.py +++ b/mopidy/config/__init__.py @@ -35,10 +35,15 @@ config_schemas['proxy']['password'] = String(optional=True, secret=True) #config_schemas['audio.outputs'] = config.AudioOutputConfigSchema() +def read(config_file): + """Helper to load defaults in same way across core and extensions.""" + with io.open(config_file, 'rb') as filehandle: + return filehandle.read() + + def load(files, overrides, extensions=None): - default_config_file = os.path.join( - os.path.dirname(__file__), 'default.conf') - defaults = [open(default_config_file).read()] + config_dir = os.path.dirname(__file__) + defaults = [read(os.path.join(config_dir, 'default.conf'))] if extensions: defaults.extend(e.get_default_config() for e in extensions) return _load(files, defaults, overrides) diff --git a/mopidy/frontends/http/__init__.py b/mopidy/frontends/http/__init__.py index 34fa065a..07b9285d 100644 --- a/mopidy/frontends/http/__init__.py +++ b/mopidy/frontends/http/__init__.py @@ -14,7 +14,7 @@ class Extension(ext.Extension): def get_default_config(self): conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf') - return open(conf_file).read() + return config.read(conf_file) def get_config_schema(self): schema = config.ExtensionConfigSchema() diff --git a/mopidy/frontends/mpd/__init__.py b/mopidy/frontends/mpd/__init__.py index f108aec5..5b45a9c1 100644 --- a/mopidy/frontends/mpd/__init__.py +++ b/mopidy/frontends/mpd/__init__.py @@ -14,7 +14,7 @@ class Extension(ext.Extension): def get_default_config(self): conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf') - return open(conf_file).read() + return config.read(conf_file) def get_config_schema(self): schema = config.ExtensionConfigSchema() diff --git a/mopidy/frontends/mpris/__init__.py b/mopidy/frontends/mpris/__init__.py index a2a6edf3..fcb9a634 100644 --- a/mopidy/frontends/mpris/__init__.py +++ b/mopidy/frontends/mpris/__init__.py @@ -14,7 +14,7 @@ class Extension(ext.Extension): def get_default_config(self): conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf') - return open(conf_file).read() + return config.read(conf_file) def get_config_schema(self): schema = config.ExtensionConfigSchema() diff --git a/mopidy/frontends/scrobbler/__init__.py b/mopidy/frontends/scrobbler/__init__.py index 0aa0bdc6..f4208824 100644 --- a/mopidy/frontends/scrobbler/__init__.py +++ b/mopidy/frontends/scrobbler/__init__.py @@ -14,7 +14,7 @@ class Extension(ext.Extension): def get_default_config(self): conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf') - return open(conf_file).read() + return config.read(conf_file) def get_config_schema(self): schema = config.ExtensionConfigSchema()