Ejemplo n.º 1
0
def apply_target(target,
                 args=(),
                 kwargs=None,
                 callback=None,
                 accept_callback=None,
                 pid=None,
                 getpid=os.getpid,
                 propagate=(),
                 monotonic=time.monotonic,
                 **_):
    """Apply function within pool context."""
    kwargs = {} if not kwargs else kwargs
    if accept_callback:
        accept_callback(pid or getpid(), monotonic())
    try:
        ret = target(*args, **kwargs)
    except propagate:
        raise
    except Exception:
        raise
    except (WorkerShutdown, WorkerTerminate):
        raise
    except BaseException as exc:
        try:
            reraise(WorkerLostError, WorkerLostError(repr(exc)),
                    sys.exc_info()[2])
        except WorkerLostError:
            callback(ExceptionInfo())
    else:
        callback(ret)
Ejemplo n.º 2
0
def reraise_errors(msg='{0!r}', errors=None):
    """Context reraising crypto errors as :exc:`SecurityError`."""
    errors = (cryptography.exceptions, ) if errors is None else errors
    try:
        yield
    except errors as exc:
        reraise(SecurityError, SecurityError(msg.format(exc)),
                sys.exc_info()[2])
Ejemplo n.º 3
0
Archivo: base.py Proyecto: mahak/celery
 def _import_config_module(self, name):
     try:
         self.find_module(name)
     except NotAPackage as exc:
         if name.endswith('.py'):
             reraise(NotAPackage, NotAPackage(CONFIG_WITH_SUFFIX.format(
                     module=name, suggest=name[:-3])), sys.exc_info()[2])
         raise NotAPackage(CONFIG_INVALID_NAME.format(module=name)) from exc
     else:
         return self.import_from_cwd(name)
Ejemplo n.º 4
0
def by_name(backend=None, loader=None,
            extension_namespace='celery.result_backends'):
    """Get backend class by name/alias."""
    backend = backend or 'disabled'
    loader = loader or current_app.loader
    aliases = dict(BACKEND_ALIASES, **loader.override_backends)
    aliases.update(load_extension_class_names(extension_namespace))
    try:
        cls = symbol_by_name(backend, aliases)
    except ValueError as exc:
        reraise(ImproperlyConfigured, ImproperlyConfigured(
            UNKNOWN_BACKEND.strip().format(backend, exc)), sys.exc_info()[2])
    if isinstance(cls, types.ModuleType):
        raise ImproperlyConfigured(UNKNOWN_BACKEND.strip().format(
            backend, 'is a Python module, not a backend class.'))
    return cls