Преглед на файлове

Fix for Py3.3 __qualname__. Closes #1356

Ask Solem преди 12 години
родител
ревизия
fc33c2cdd6
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5 3
      celery/utils/imports.py

+ 5 - 3
celery/utils/imports.py

@@ -28,15 +28,17 @@ class NotAPackage(Exception):
 if sys.version_info >= (3, 3):  # pragma: no cover
 
     def qualname(obj):
-        return obj.__qualname__
+        if not hasattr(obj, '__name__') and hasattr(obj, '__class__'):
+            return qualname(obj.__class__)
+        return '.'.join((obj.__module__,
+                        getattr(obj, '__qualname__', None) or obj.__name__))
 
 else:
 
     def qualname(obj):  # noqa
         if not hasattr(obj, '__name__') and hasattr(obj, '__class__'):
             return qualname(obj.__class__)
-
-        return '%s.%s' % (obj.__module__, obj.__name__)
+        return '.'.join((obj.__module__, obj.__name__))
 
 
 def instantiate(name, *args, **kwargs):