diff options
author | Ask Solem <ask@celeryproject.org> | 2014-06-02 17:18:24 +0100 |
---|---|---|
committer | Ask Solem <ask@celeryproject.org> | 2014-06-02 17:18:24 +0100 |
commit | 1dddd80a6e1f2c6d1f654567266a45cd5ba90a1a (patch) | |
tree | f975094e916a5cd72ab25eb89f27d6b6650e4cd1 | |
parent | 3624a37170847d1872b30bd863add51983a54599 (diff) | |
download | kombu-1dddd80a6e1f2c6d1f654567266a45cd5ba90a1a.tar.gz |
beanstalk can now be imported without beanstalkc dependency
-rw-r--r-- | kombu/transport/beanstalk.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/kombu/transport/beanstalk.py b/kombu/transport/beanstalk.py index 9dff8b49..4e73bbca 100644 --- a/kombu/transport/beanstalk.py +++ b/kombu/transport/beanstalk.py @@ -10,7 +10,6 @@ Beanstalk transport. """ from __future__ import absolute_import -import beanstalkc import socket from anyjson import loads, dumps @@ -20,6 +19,11 @@ from kombu.utils.encoding import bytes_to_str from . import virtual +try: + import beanstalkc +except ImportError: # pragma: no cover + beanstalkc = None # noqa + DEFAULT_PORT = 11300 __author__ = 'David Ziegler <david.ziegler@gmail.com>' @@ -127,16 +131,25 @@ class Transport(virtual.Transport): default_port = DEFAULT_PORT connection_errors = ( virtual.Transport.connection_errors + ( - socket.error, beanstalkc.SocketError, IOError) + socket.error, IOError, + getattr(beanstalkc, 'SocketError', None), + ) ) channel_errors = ( virtual.Transport.channel_errors + ( socket.error, IOError, - beanstalkc.SocketError, - beanstalkc.BeanstalkcException) + getattr(beanstalkc, 'SocketError', None), + getattr(beanstalkc, 'BeanstalkcException', None), + ) ) driver_type = 'beanstalk' driver_name = 'beanstalkc' + def __init__(self, *args, **kwargs): + if beanstalkc is None: + raise ImportError( + 'Missing beanstalkc library (pip install beanstalkc)') + super(Transport, self).__init__(*args, **kwargs) + def driver_version(self): return beanstalkc.__version__ |