From d2e32a6b2056ec4237dc327c38194a50c4b27893 Mon Sep 17 00:00:00 2001 From: Adam Jakab Date: Sun, 23 Feb 2020 23:29:15 +0100 Subject: [PATCH 1/7] Raising error on missing configuration file inclusion --- beets/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/beets/__init__.py b/beets/__init__.py index 20075073c..20aed95e3 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -35,6 +35,8 @@ class IncludeLazyConfig(confuse.LazyConfig): filename = view.as_filename() if os.path.isfile(filename): self.set_file(filename) + else: + raise FileNotFoundError("Warning! Configuration file({0}) does not exist!".format(filename)) except confuse.NotFoundError: pass From dfa45f62a59b7bc431af2084fe35d84c2c2d08bd Mon Sep 17 00:00:00 2001 From: Adam Jakab Date: Mon, 24 Feb 2020 00:07:24 +0100 Subject: [PATCH 2/7] fixed flake8 long line warning --- beets/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/beets/__init__.py b/beets/__init__.py index 20aed95e3..c9863ee66 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -36,7 +36,8 @@ class IncludeLazyConfig(confuse.LazyConfig): if os.path.isfile(filename): self.set_file(filename) else: - raise FileNotFoundError("Warning! Configuration file({0}) does not exist!".format(filename)) + raise FileNotFoundError( + "Warning! Configuration file({0}) does not exist!".format(filename)) except confuse.NotFoundError: pass From c90f7aacfcb65eef3386c29d3c146f9f0a120ee1 Mon Sep 17 00:00:00 2001 From: Adam Jakab Date: Mon, 24 Feb 2020 00:22:34 +0100 Subject: [PATCH 3/7] fixed flake8 long line warning (maybe) --- beets/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/beets/__init__.py b/beets/__init__.py index c9863ee66..ed3af5588 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -36,8 +36,8 @@ class IncludeLazyConfig(confuse.LazyConfig): if os.path.isfile(filename): self.set_file(filename) else: - raise FileNotFoundError( - "Warning! Configuration file({0}) does not exist!".format(filename)) + raise FileNotFoundError("Warning! Configuration file({0}) " + "does not exist!".format(filename)) except confuse.NotFoundError: pass From 3db55c7bf4f25c59102b4884165d2956ae80cfba Mon Sep 17 00:00:00 2001 From: Adam Jakab Date: Mon, 24 Feb 2020 10:20:54 +0100 Subject: [PATCH 4/7] Simple warning on missing (included) configuration file. --- beets/__init__.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/beets/__init__.py b/beets/__init__.py index ed3af5588..0b1048bdb 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -33,13 +33,12 @@ class IncludeLazyConfig(confuse.LazyConfig): try: for view in self['include']: filename = view.as_filename() - if os.path.isfile(filename): - self.set_file(filename) - else: - raise FileNotFoundError("Warning! Configuration file({0}) " - "does not exist!".format(filename)) + self.set_file(filename) except confuse.NotFoundError: pass + except confuse.ConfigReadError as err: + print("Warning! Missing configuration file! {}".format(err.reason)) + pass config = IncludeLazyConfig('beets', __name__) From 253d4c76d00f6fcf0e7cd6b30934aef0cf44212a Mon Sep 17 00:00:00 2001 From: Adam Jakab Date: Mon, 24 Feb 2020 10:43:03 +0100 Subject: [PATCH 5/7] removed redundant import and redundant filename variable --- beets/__init__.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/beets/__init__.py b/beets/__init__.py index 0b1048bdb..bed59d05f 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -15,8 +15,6 @@ from __future__ import division, absolute_import, print_function -import os - import confuse __version__ = u'1.5.0' @@ -32,8 +30,7 @@ class IncludeLazyConfig(confuse.LazyConfig): try: for view in self['include']: - filename = view.as_filename() - self.set_file(filename) + self.set_file(view.as_filename()) except confuse.NotFoundError: pass except confuse.ConfigReadError as err: From 131227eff44b0fa596abfcd7780b6ea81cc50829 Mon Sep 17 00:00:00 2001 From: Adam Jakab Date: Mon, 24 Feb 2020 22:38:30 +0100 Subject: [PATCH 6/7] writing warning message to stderr --- beets/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/beets/__init__.py b/beets/__init__.py index bed59d05f..e9cc10e08 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -16,6 +16,7 @@ from __future__ import division, absolute_import, print_function import confuse +from sys import stderr __version__ = u'1.5.0' __author__ = u'Adrian Sampson ' @@ -34,7 +35,8 @@ class IncludeLazyConfig(confuse.LazyConfig): except confuse.NotFoundError: pass except confuse.ConfigReadError as err: - print("Warning! Missing configuration file! {}".format(err.reason)) + stderr.write("Configuration 'import' failed: {}" + .format(err.reason)) pass From d06665413c5b871c9375c28f5544eb80e6cc0d1c Mon Sep 17 00:00:00 2001 From: Adam Jakab Date: Tue, 25 Feb 2020 15:23:52 +0100 Subject: [PATCH 7/7] minor fixes and changelog entry --- beets/__init__.py | 3 +-- docs/changelog.rst | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/beets/__init__.py b/beets/__init__.py index e9cc10e08..e3e5fdf83 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -35,9 +35,8 @@ class IncludeLazyConfig(confuse.LazyConfig): except confuse.NotFoundError: pass except confuse.ConfigReadError as err: - stderr.write("Configuration 'import' failed: {}" + stderr.write("configuration `import` failed: {}" .format(err.reason)) - pass config = IncludeLazyConfig('beets', __name__) diff --git a/docs/changelog.rst b/docs/changelog.rst index 97cc7ca12..9a4ad0988 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -160,6 +160,8 @@ Fixes: :bug:`3480` * :doc:`/plugins/parentwork`: Don't save tracks when nothing has changed. :bug:`3492` +* Added a warning when configuration files defined in the `include` directive + of the configuration file fail to be imported. For plugin developers: