Selaa lähdekoodia

Proxy: finally may mask evaluate errors

Ask Solem 12 vuotta sitten
vanhempi
commit
8a92a1951b
1 muutettua tiedostoa jossa 9 lisäystä ja 4 poistoa
  1. 9 4
      celery/local.py

+ 9 - 4
celery/local.py

@@ -295,15 +295,20 @@ class PromiseProxy(Proxy):
     def __maybe_evaluate__(self):
         return self._get_current_object()
 
-    def __evaluate__(self):
+    def __evaluate__(self,
+                     _clean=('_Proxy__local',
+                             '_Proxy__args',
+                             '_Proxy__kwargs')):
         try:
             thing = Proxy._get_current_object(self)
             object.__setattr__(self, '__thing', thing)
             return thing
         finally:
-            object.__delattr__(self, '_Proxy__local')
-            object.__delattr__(self, '_Proxy__args')
-            object.__delattr__(self, '_Proxy__kwargs')
+            for attr in _clean:
+                try:
+                    object.__delattr__(self, attr)
+                except AttributeError:  # May mask errors so ignore
+                    pass
 
 
 def maybe_evaluate(obj):