From cd7b74271a85d5f415b85bb5465a1186bfcead29 Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Thu, 27 Feb 2014 19:47:03 -0800 Subject: [PATCH] avoid repr() on paths in filesystem errors --- beets/util/__init__.py | 15 +++++++++------ docs/changelog.rst | 2 ++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/beets/util/__init__.py b/beets/util/__init__.py index 0665429b9..f5810ff35 100644 --- a/beets/util/__init__.py +++ b/beets/util/__init__.py @@ -94,16 +94,19 @@ class FilesystemError(HumanReadableException): def get_message(self): # Use a nicer English phrasing for some specific verbs. if self.verb in ('move', 'copy', 'rename'): - clause = 'while {0} {1} to {2}'.format( - self._gerund(), repr(self.paths[0]), repr(self.paths[1]) + clause = u'while {0} {1} to {2}'.format( + self._gerund(), + displayable_path(self.paths[0]), + displayable_path(self.paths[1]) ) elif self.verb in ('delete', 'write', 'create', 'read'): - clause = 'while {0} {1}'.format( - self._gerund(), repr(self.paths[0]) + clause = u'while {0} {1}'.format( + self._gerund(), + displayable_path(self.paths[0]) ) else: - clause = 'during {0} of paths {1}'.format( - self.verb, u', '.join(repr(p) for p in self.paths) + clause = u'during {0} of paths {1}'.format( + self.verb, u', '.join(displayable_path(p) for p in self.paths) ) return u'{0} {1}'.format(self._reasonstr(), clause) diff --git a/docs/changelog.rst b/docs/changelog.rst index aecd83056..85949166b 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -6,6 +6,8 @@ Changelog * Internally, beets has laid the groundwork for supporting multi-valued fields. Thanks to geigerzaehler. +* Error messages involving paths no longer escape non-ASCII characters (for + legibility). 1.3.3 (February 26, 2014)