Исходный код pushme.mq

# -*- coding: utf-8 -*-
"""
Очередь сообщений.
Предоставляет единый интерфейс для различных реализаций очередей.
"""
from uuid import uuid4
import importlib


def _import_thing(module, thing):
    try:
        m = importlib.import_module('pushme.mq.backend_%s' % module)
    except ImportError:
        raise
        raise RuntimeError(u'Unknown MQ backend: %r' % module)
    try:
        return getattr(m, thing)
    except AttributeError:
        raise RuntimeError(u'Bad MQ backend: %r' % module)


[документация]def get_queue(backend, *args, **kwargs): """ Возвращает реализацию сервера очереди :backend - имя конкретной реализации очереди """ return _import_thing(backend, 'Queue')(*args, **kwargs)
[документация]def get_sender(backend, *args, **kwargs): """ Возвращает реализацию клиента - отправителя сообщений :backend - имя конкретной реализации очереди """ return _import_thing( backend, 'Sender' )( str(uuid4()), *args, **kwargs )
[документация]def get_receiver(backend, *args, **kwargs): """ Возвращает реализацию клиента - получателя сообщений :backend - имя конкретной реализации очереди """ return _import_thing( backend, 'Receiver' )( # все получатели имеют имя "receiver" 'receiver', *args, **kwargs )