From e7676bc0b4c9caec031e1f7313be11b2c412fa0b Mon Sep 17 00:00:00 2001 From: Felix Schwarz Date: Thu, 9 Aug 2012 11:20:25 +0000 Subject: [PATCH] resort to hard-coded message extractors/checkers if pkg_resources is installed but no egg-info was found (#230) --- ChangeLog | 2 ++ babel/messages/checkers.py | 11 ++++++++--- babel/messages/extract.py | 11 +++++++---- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 299dd921..9fd2e8c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -49,6 +49,8 @@ http://svn.edgewall.org/repos/babel/tags/1.0.0/ * no warnings when running setup.py without installed setuptools (#262) * modified Locale.__eq__ method so Locales are only equal if all of their attributes (language, territory, script, variant) are equal + * resort to hard-coded message extractors/checkers if pkg_resources is + installed but no egg-info was found (#230) Version 0.9.6 diff --git a/babel/messages/checkers.py b/babel/messages/checkers.py index fd3f6941..2b8fa4fa 100644 --- a/babel/messages/checkers.py +++ b/babel/messages/checkers.py @@ -160,13 +160,18 @@ def _validate_format(format, alternative): def _find_checkers(): + checkers = [] try: from pkg_resources import working_set except ImportError: + pass + else: + for entry_point in working_set.iter_entry_points('babel.checkers'): + checkers.append(entry_point.load()) + if len(checkers) == 0: + # if pkg_resources is not available or no usable egg-info was found + # (see #230), just resort to hard-coded checkers return [num_plurals, python_format] - checkers = [] - for entry_point in working_set.iter_entry_points('babel.checkers'): - checkers.append(entry_point.load()) return checkers diff --git a/babel/messages/extract.py b/babel/messages/extract.py index d0fba801..60612e7a 100644 --- a/babel/messages/extract.py +++ b/babel/messages/extract.py @@ -255,15 +255,18 @@ def extract(method, fileobj, keywords=DEFAULT_KEYWORDS, comment_tags=(), try: from pkg_resources import working_set except ImportError: - # pkg_resources is not available, so we resort to looking up the - # builtin extractors directly - builtin = {'ignore': extract_nothing, 'python': extract_python} - func = builtin.get(method) + pass else: for entry_point in working_set.iter_entry_points(GROUP_NAME, method): func = entry_point.load(require=True) break + if func is None: + # if pkg_resources is not available or no usable egg-info was found + # (see #230), we resort to looking up the builtin extractors + # directly + builtin = {'ignore': extract_nothing, 'python': extract_python} + func = builtin.get(method) if func is None: raise ValueError('Unknown extraction method %r' % method) -- 2.47.3