# HG changeset patch # User fschwarz # Date 1344511225 0 # Node ID 99983baf106734b3cecff0781384c2b90ea27485 # Parent e6b1efa9a2557ca2d0e1a591f135d8c3a0b49e10 resort to hard-coded message extractors/checkers if pkg_resources is installed but no egg-info was found (#230) diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -49,6 +49,8 @@ * 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 --- a/babel/messages/checkers.py +++ b/babel/messages/checkers.py @@ -160,13 +160,18 @@ 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 --- a/babel/messages/extract.py +++ b/babel/messages/extract.py @@ -255,15 +255,18 @@ 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)