"""AMQP Messaging Framework for Python""" from __future__ import absolute_import VERSION = (2, 0, 0) __version__ = ".".join(map(str, VERSION[0:3])) + "".join(VERSION[3:]) __author__ = "Ask Solem" __contact__ = "ask@celeryproject.org" __homepage__ = "http://github.com/ask/kombu/" __docformat__ = "restructuredtext en" # -eof meta- import os import sys if sys.version_info < (2, 5): # pragma: no cover if sys.version_info >= (2, 4): raise Exception( "Python 2.4 is not supported by this version. " "Please use Kombu versions 1.x.") else: raise Exception("Kombu requires Python versions 2.5 or later.") # Lazy loading. # - See werkzeug/__init__.py for the rationale behind this. from types import ModuleType all_by_module = { "kombu.connection": ["BrokerConnection", "Connection"], "kombu.entity": ["Exchange", "Queue"], "kombu.messaging": ["Consumer", "Producer"], "kombu.pools": ["connections", "producers"], } object_origins = {} for module, items in all_by_module.iteritems(): for item in items: object_origins[item] = module class module(ModuleType): def __getattr__(self, name): if name in object_origins: module = __import__(object_origins[name], None, None, [name]) for extra_name in all_by_module[module.__name__]: setattr(self, extra_name, getattr(module, extra_name)) return getattr(module, name) return ModuleType.__getattribute__(self, name) def __dir__(self): result = list(new_module.__all__) result.extend(("__file__", "__path__", "__doc__", "__all__", "__docformat__", "__name__", "__path__", "VERSION", "__package__", "__version__", "__author__", "__contact__", "__homepage__", "__docformat__")) return result # keep a reference to this module so that it's not garbage collected old_module = sys.modules[__name__] new_module = sys.modules[__name__] = module(__name__) new_module.__dict__.update({ "__file__": __file__, "__path__": __path__, "__doc__": __doc__, "__all__": tuple(object_origins), "__version__": __version__, "__author__": __author__, "__contact__": __contact__, "__homepage__": __homepage__, "__docformat__": __docformat__, "VERSION": VERSION}) if os.environ.get("KOMBU_LOG_DEBUG"): os.environ.update(KOMBU_LOG_CHANNEL="1", KOMBU_LOG_CONNECTION="1") from .utils import debug debug.setup_logging()