Browse Source

kombu renamed promise -> lazy

Ask Solem 11 years ago
parent
commit
1587df175f

+ 2 - 2
celery/app/annotations.py

@@ -13,7 +13,7 @@
 from __future__ import absolute_import
 from __future__ import absolute_import
 
 
 from celery.five import string_t
 from celery.five import string_t
-from celery.utils.functional import firstmethod, mpromise
+from celery.utils.functional import firstmethod, mlazy
 from celery.utils.imports import instantiate
 from celery.utils.imports import instantiate
 
 
 _first_match = firstmethod('annotate')
 _first_match = firstmethod('annotate')
@@ -46,7 +46,7 @@ def prepare(annotations):
         if isinstance(annotation, dict):
         if isinstance(annotation, dict):
             return MapAnnotation(annotation)
             return MapAnnotation(annotation)
         elif isinstance(annotation, string_t):
         elif isinstance(annotation, string_t):
-            return mpromise(instantiate, annotation)
+            return mlazy(instantiate, annotation)
         return annotation
         return annotation
 
 
     if annotations is None:
     if annotations is None:

+ 2 - 2
celery/app/routes.py

@@ -12,7 +12,7 @@ from __future__ import absolute_import
 from celery.exceptions import QueueNotFound
 from celery.exceptions import QueueNotFound
 from celery.five import string_t
 from celery.five import string_t
 from celery.utils import lpmerge
 from celery.utils import lpmerge
-from celery.utils.functional import firstmethod, mpromise
+from celery.utils.functional import firstmethod, mlazy
 from celery.utils.imports import instantiate
 from celery.utils.imports import instantiate
 
 
 _first_route = firstmethod('route_for_task')
 _first_route = firstmethod('route_for_task')
@@ -80,7 +80,7 @@ def prepare(routes):
         if isinstance(route, dict):
         if isinstance(route, dict):
             return MapRoute(route)
             return MapRoute(route)
         if isinstance(route, string_t):
         if isinstance(route, string_t):
-            return mpromise(instantiate, route)
+            return mlazy(instantiate, route)
         return route
         return route
 
 
     if routes is None:
     if routes is None:

+ 2 - 2
celery/beat.py

@@ -19,7 +19,7 @@ from threading import Event, Thread
 
 
 from billiard import Process, ensure_multiprocessing
 from billiard import Process, ensure_multiprocessing
 from kombu.utils import cached_property, reprcall
 from kombu.utils import cached_property, reprcall
-from kombu.utils.functional import maybe_promise
+from kombu.utils.functional import maybe_evaluate
 
 
 from . import __version__
 from . import __version__
 from . import platforms
 from . import platforms
@@ -152,7 +152,7 @@ class Scheduler(object):
     def __init__(self, app, schedule=None, max_interval=None,
     def __init__(self, app, schedule=None, max_interval=None,
                  Publisher=None, lazy=False, **kwargs):
                  Publisher=None, lazy=False, **kwargs):
         self.app = app
         self.app = app
-        self.data = maybe_promise({} if schedule is None else schedule)
+        self.data = maybe_evaluate({} if schedule is None else schedule)
         self.max_interval = (max_interval
         self.max_interval = (max_interval
                              or app.conf.CELERYBEAT_MAX_LOOP_INTERVAL
                              or app.conf.CELERYBEAT_MAX_LOOP_INTERVAL
                              or self.max_interval)
                              or self.max_interval)

+ 2 - 2
celery/tests/app/test_routes.py

@@ -3,7 +3,7 @@ from __future__ import absolute_import
 from contextlib import contextmanager
 from contextlib import contextmanager
 
 
 from kombu import Exchange
 from kombu import Exchange
-from kombu.utils.functional import maybe_promise
+from kombu.utils.functional import maybe_evaluate
 
 
 from celery.app import routes
 from celery.app import routes
 from celery.exceptions import QueueNotFound
 from celery.exceptions import QueueNotFound
@@ -156,7 +156,7 @@ class test_prepare(AppCase):
              'celery.utils.functional.LRUCache', o]
              'celery.utils.functional.LRUCache', o]
         p = routes.prepare(R)
         p = routes.prepare(R)
         self.assertIsInstance(p[0], routes.MapRoute)
         self.assertIsInstance(p[0], routes.MapRoute)
-        self.assertIsInstance(maybe_promise(p[1]), LRUCache)
+        self.assertIsInstance(maybe_evaluate(p[1]), LRUCache)
         self.assertIs(p[2], o)
         self.assertIs(p[2], o)
 
 
         self.assertEqual(routes.prepare(o), [o])
         self.assertEqual(routes.prepare(o), [o])

+ 6 - 6
celery/tests/utils/test_functional.py

@@ -2,14 +2,14 @@ from __future__ import absolute_import
 
 
 import pickle
 import pickle
 
 
-from kombu.utils.functional import promise
+from kombu.utils.functional import lazy
 
 
 from celery.five import THREAD_TIMEOUT_MAX, items, range, nextfun
 from celery.five import THREAD_TIMEOUT_MAX, items, range, nextfun
 from celery.utils.functional import (
 from celery.utils.functional import (
     LRUCache,
     LRUCache,
     firstmethod,
     firstmethod,
     first,
     first,
-    mpromise,
+    mlazy,
     padlist,
     padlist,
     maybe_list,
     maybe_list,
 )
 )
@@ -131,7 +131,7 @@ class test_utils(Case):
     def test_firstmethod_AttributeError(self):
     def test_firstmethod_AttributeError(self):
         self.assertIsNone(firstmethod('foo')([object()]))
         self.assertIsNone(firstmethod('foo')([object()]))
 
 
-    def test_firstmethod_promises(self):
+    def test_firstmethod_handles_lazy(self):
 
 
         class A(object):
         class A(object):
 
 
@@ -144,7 +144,7 @@ class test_utils(Case):
         self.assertEqual('four', firstmethod('m')([
         self.assertEqual('four', firstmethod('m')([
             A(), A(), A(), A('four'), A('five')]))
             A(), A(), A(), A('four'), A('five')]))
         self.assertEqual('four', firstmethod('m')([
         self.assertEqual('four', firstmethod('m')([
-            A(), A(), A(), promise(lambda: A('four')), A('five')]))
+            A(), A(), A(), lazy(lambda: A('four')), A('five')]))
 
 
     def test_first(self):
     def test_first(self):
         iterations = [0]
         iterations = [0]
@@ -168,12 +168,12 @@ class test_utils(Case):
         self.assertIsNone(maybe_list(None))
         self.assertIsNone(maybe_list(None))
 
 
 
 
-class test_mpromise(Case):
+class test_mlazy(Case):
 
 
     def test_is_memoized(self):
     def test_is_memoized(self):
 
 
         it = iter(range(20, 30))
         it = iter(range(20, 30))
-        p = mpromise(nextfun(it))
+        p = mlazy(nextfun(it))
         self.assertEqual(p(), 20)
         self.assertEqual(p(), 20)
         self.assertTrue(p.evaluated)
         self.assertTrue(p.evaluated)
         self.assertEqual(p(), 20)
         self.assertEqual(p(), 20)

+ 8 - 7
celery/utils/functional.py

@@ -15,7 +15,7 @@ from functools import wraps
 from itertools import islice
 from itertools import islice
 
 
 from kombu.utils import cached_property
 from kombu.utils import cached_property
-from kombu.utils.functional import promise, maybe_promise
+from kombu.utils.functional import lazy, maybe_evaluate
 from kombu.utils.compat import OrderedDict
 from kombu.utils.compat import OrderedDict
 
 
 from celery.five import UserDict, UserList, items, keys, string_t
 from celery.five import UserDict, UserList, items, keys, string_t
@@ -161,15 +161,15 @@ def memoize(maxsize=None, Cache=LRUCache):
     return _memoize
     return _memoize
 
 
 
 
-class mpromise(promise):
-    """Memoized promise.
+class mlazy(lazy):
+    """Memoized lazy evaluation.
 
 
     The function is only evaluated once, every subsequent access
     The function is only evaluated once, every subsequent access
     will return the same value.
     will return the same value.
 
 
     .. attribute:: evaluated
     .. attribute:: evaluated
 
 
-        Set to to :const:`True` after the promise has been evaluated.
+        Set to to :const:`True` after the object has been evaluated.
 
 
     """
     """
     evaluated = False
     evaluated = False
@@ -177,7 +177,7 @@ class mpromise(promise):
 
 
     def evaluate(self):
     def evaluate(self):
         if not self.evaluated:
         if not self.evaluated:
-            self._value = super(mpromise, self).evaluate()
+            self._value = super(mlazy, self).evaluate()
             self.evaluated = True
             self.evaluated = True
         return self._value
         return self._value
 
 
@@ -208,14 +208,15 @@ def firstmethod(method):
     """Returns a function that with a list of instances,
     """Returns a function that with a list of instances,
     finds the first instance that returns a value for the given method.
     finds the first instance that returns a value for the given method.
 
 
-    The list can also contain promises (:class:`promise`.)
+    The list can also contain lazy instances
+    (:class:`~kombu.utils.functional.lazy`.)
 
 
     """
     """
 
 
     def _matcher(it, *args, **kwargs):
     def _matcher(it, *args, **kwargs):
         for obj in it:
         for obj in it:
             try:
             try:
-                answer = getattr(maybe_promise(obj), method)(*args, **kwargs)
+                answer = getattr(maybe_evaluate(obj), method)(*args, **kwargs)
             except AttributeError:
             except AttributeError:
                 pass
                 pass
             else:
             else: