changeset 593:99983baf1067 trunk

resort to hard-coded message extractors/checkers if pkg_resources is installed but no egg-info was found (#230)
author fschwarz
date Thu, 09 Aug 2012 11:20:25 +0000
parents e6b1efa9a255
children 5ba68e40d1d0
files ChangeLog babel/messages/checkers.py babel/messages/extract.py
diffstat 3 files changed, 17 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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
 
 
--- 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)
 
Copyright (C) 2012-2017 Edgewall Software