|
@@ -19,27 +19,30 @@ version_info_t = namedtuple(
|
|
|
|
|
|
SERIES = '0today8'
|
|
|
VERSION = version_info_t(4, 0, 0, 'a1', '')
|
|
|
+
|
|
|
__version__ = '{0.major}.{0.minor}.{0.micro}{0.releaselevel}'.format(VERSION)
|
|
|
__author__ = 'Ask Solem'
|
|
|
__contact__ = 'ask@celeryproject.org'
|
|
|
__homepage__ = 'http://celeryproject.org'
|
|
|
__docformat__ = 'restructuredtext'
|
|
|
+
|
|
|
+# -eof meta-
|
|
|
+
|
|
|
__all__ = [
|
|
|
'Celery', 'bugreport', 'shared_task', 'task',
|
|
|
'current_app', 'current_task', 'maybe_signature',
|
|
|
'chain', 'chord', 'chunks', 'group', 'signature',
|
|
|
'xmap', 'xstarmap', 'uuid', 'version', '__version__',
|
|
|
]
|
|
|
+
|
|
|
VERSION_BANNER = '{0} ({1})'.format(__version__, SERIES)
|
|
|
|
|
|
-# -eof meta-
|
|
|
|
|
|
if os.environ.get('C_IMPDEBUG'): # pragma: no cover
|
|
|
from .five import builtins
|
|
|
- real_import = builtins.__import__
|
|
|
|
|
|
def debug_import(name, locals=None, globals=None,
|
|
|
- fromlist=None, level=-1):
|
|
|
+ fromlist=None, level=-1, real_import=builtins.__import__):
|
|
|
glob = globals or getattr(sys, 'emarfteg_'[::-1])(1).f_globals
|
|
|
importer_name = glob and glob.get('__name__') or 'unknown'
|
|
|
print('-- {0} imports {1}'.format(importer_name, name))
|
|
@@ -88,21 +91,20 @@ def _find_option_with_arg(argv, short_opts=None, long_opts=None):
|
|
|
def _patch_eventlet():
|
|
|
import eventlet
|
|
|
import eventlet.debug
|
|
|
- eventlet.monkey_patch()
|
|
|
- EVENTLET_DBLOCK = int(os.environ.get('EVENTLET_NOBLOCK', 0))
|
|
|
- if EVENTLET_DBLOCK:
|
|
|
- eventlet.debug.hub_blocking_detection(EVENTLET_DBLOCK)
|
|
|
|
|
|
+ eventlet.monkey_patch()
|
|
|
+ blockdetect = float(os.environ.get('EVENTLET_NOBLOCK', 0))
|
|
|
+ eventlet.debug.hub_blocking_detection(blockdetect, blockdetect)
|
|
|
|
|
|
def _patch_gevent():
|
|
|
- from gevent import monkey, version_info
|
|
|
+ from gevent import monkey, signal as gsignal, version_info
|
|
|
+
|
|
|
monkey.patch_all()
|
|
|
if version_info[0] == 0: # pragma: no cover
|
|
|
# Signals aren't working in gevent versions <1.0,
|
|
|
# and are not monkey patched by patch_all()
|
|
|
- from gevent import signal as _gevent_signal
|
|
|
_signal = __import__('signal')
|
|
|
- _signal.signal = _gevent_signal
|
|
|
+ _signal.signal = gsignal
|
|
|
|
|
|
|
|
|
def maybe_patch_concurrency(argv=sys.argv,
|
|
@@ -124,7 +126,8 @@ def maybe_patch_concurrency(argv=sys.argv,
|
|
|
pass
|
|
|
else:
|
|
|
patcher()
|
|
|
- # set up eventlet/gevent environments ASAP.
|
|
|
+
|
|
|
+ # set up eventlet/gevent environments ASAP
|
|
|
from celery import concurrency
|
|
|
concurrency.get_implementation(pool)
|
|
|
|
|
@@ -137,9 +140,11 @@ old_module, new_module = five.recreate_module( # pragma: no cover
|
|
|
'celery.app': ['Celery', 'bugreport', 'shared_task'],
|
|
|
'celery.app.task': ['Task'],
|
|
|
'celery._state': ['current_app', 'current_task'],
|
|
|
- 'celery.canvas': ['chain', 'chord', 'chunks', 'group',
|
|
|
- 'signature', 'maybe_signature', 'subtask',
|
|
|
- 'xmap', 'xstarmap'],
|
|
|
+ 'celery.canvas': [
|
|
|
+ 'chain', 'chord', 'chunks', 'group',
|
|
|
+ 'signature', 'maybe_signature', 'subtask',
|
|
|
+ 'xmap', 'xstarmap',
|
|
|
+ ],
|
|
|
'celery.utils': ['uuid'],
|
|
|
},
|
|
|
direct={'task': 'celery.task'},
|