added celery and tasks but most important added tag_list
This commit is contained in:
@@ -0,0 +1,332 @@
|
||||
.. _kombu-index:
|
||||
|
||||
========================================
|
||||
kombu - Messaging library for Python
|
||||
========================================
|
||||
|
||||
:Version: 3.0.37
|
||||
|
||||
`Kombu` is a messaging library for Python.
|
||||
|
||||
The aim of `Kombu` is to make messaging in Python as easy as possible by
|
||||
providing an idiomatic high-level interface for the AMQ protocol, and also
|
||||
provide proven and tested solutions to common messaging problems.
|
||||
|
||||
`AMQP`_ is the Advanced Message Queuing Protocol, an open standard protocol
|
||||
for message orientation, queuing, routing, reliability and security,
|
||||
for which the `RabbitMQ`_ messaging server is the most popular implementation.
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
* Allows application authors to support several message server
|
||||
solutions by using pluggable transports.
|
||||
|
||||
* AMQP transport using the `py-amqp`_, `librabbitmq`_, or `qpid-python`_ client libraries.
|
||||
|
||||
* High performance AMQP transport written in C - when using `librabbitmq`_
|
||||
|
||||
This is automatically enabled if librabbitmq is installed::
|
||||
|
||||
$ pip install librabbitmq
|
||||
|
||||
* Virtual transports makes it really easy to add support for non-AMQP
|
||||
transports. There is already built-in support for `Redis`_,
|
||||
`Beanstalk`_, `Amazon SQS`_, `CouchDB`_, `MongoDB`_, `ZeroMQ`_,
|
||||
`ZooKeeper`_, `SoftLayer MQ`_ and `Pyro`_.
|
||||
|
||||
* You can also use the SQLAlchemy and Django ORM transports to
|
||||
use a database as the broker.
|
||||
|
||||
* In-memory transport for unit testing.
|
||||
|
||||
* Supports automatic encoding, serialization and compression of message
|
||||
payloads.
|
||||
|
||||
* Consistent exception handling across transports.
|
||||
|
||||
* The ability to ensure that an operation is performed by gracefully
|
||||
handling connection and channel errors.
|
||||
|
||||
* Several annoyances with `amqplib`_ has been fixed, like supporting
|
||||
timeouts and the ability to wait for events on more than one channel.
|
||||
|
||||
* Projects already using `carrot`_ can easily be ported by using
|
||||
a compatibility layer.
|
||||
|
||||
For an introduction to AMQP you should read the article `Rabbits and warrens`_,
|
||||
and the `Wikipedia article about AMQP`_.
|
||||
|
||||
.. _`RabbitMQ`: http://www.rabbitmq.com/
|
||||
.. _`AMQP`: http://amqp.org
|
||||
.. _`py-amqp`: http://pypi.python.org/pypi/amqp/
|
||||
.. _`qpid-python`: http://pypi.python.org/pypi/qpid-python/
|
||||
.. _`Redis`: http://code.google.com/p/redis/
|
||||
.. _`Amazon SQS`: http://aws.amazon.com/sqs/
|
||||
.. _`MongoDB`: http://www.mongodb.org/
|
||||
.. _`CouchDB`: http://couchdb.apache.org/
|
||||
.. _`ZeroMQ`: http://zeromq.org/
|
||||
.. _`Zookeeper`: https://zookeeper.apache.org/
|
||||
.. _`Beanstalk`: http://kr.github.com/beanstalkd/
|
||||
.. _`Rabbits and warrens`: http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/
|
||||
.. _`amqplib`: http://barryp.org/software/py-amqplib/
|
||||
.. _`Wikipedia article about AMQP`: http://en.wikipedia.org/wiki/AMQP
|
||||
.. _`carrot`: http://pypi.python.org/pypi/carrot/
|
||||
.. _`librabbitmq`: http://pypi.python.org/pypi/librabbitmq
|
||||
.. _`Pyro`: http://pythonhosting.org/Pyro
|
||||
.. _`SoftLayer MQ`: http://www.softlayer.com/services/additional/message-queue
|
||||
|
||||
|
||||
.. _transport-comparison:
|
||||
|
||||
Transport Comparison
|
||||
====================
|
||||
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| **Client** | **Type** | **Direct** | **Topic** | **Fanout** |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *amqp* | Native | Yes | Yes | Yes |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *qpid* | Native | Yes | Yes | Yes |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *redis* | Virtual | Yes | Yes | Yes (PUB/SUB) |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *mongodb* | Virtual | Yes | Yes | Yes |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *beanstalk* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *SQS* | Virtual | Yes | Yes [#f1]_ | Yes [#f2]_ |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *couchdb* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *zookeeper* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *in-memory* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *django* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *sqlalchemy* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *SLMQ* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
|
||||
|
||||
.. [#f1] Declarations only kept in memory, so exchanges/queues
|
||||
must be declared by all clients that needs them.
|
||||
|
||||
.. [#f2] Fanout supported via storing routing tables in SimpleDB.
|
||||
Disabled by default, but can be enabled by using the
|
||||
``supports_fanout`` transport option.
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Kombu is using Sphinx, and the latest documentation can be found here:
|
||||
|
||||
https://kombu.readthedocs.io/
|
||||
|
||||
Quick overview
|
||||
--------------
|
||||
|
||||
::
|
||||
|
||||
from kombu import Connection, Exchange, Queue
|
||||
|
||||
media_exchange = Exchange('media', 'direct', durable=True)
|
||||
video_queue = Queue('video', exchange=media_exchange, routing_key='video')
|
||||
|
||||
def process_media(body, message):
|
||||
print body
|
||||
message.ack()
|
||||
|
||||
# connections
|
||||
with Connection('amqp://guest:guest@localhost//') as conn:
|
||||
|
||||
# produce
|
||||
producer = conn.Producer(serializer='json')
|
||||
producer.publish({'name': '/tmp/lolcat1.avi', 'size': 1301013},
|
||||
exchange=media_exchange, routing_key='video',
|
||||
declare=[video_queue])
|
||||
|
||||
# the declare above, makes sure the video queue is declared
|
||||
# so that the messages can be delivered.
|
||||
# It's a best practice in Kombu to have both publishers and
|
||||
# consumers declare the queue. You can also declare the
|
||||
# queue manually using:
|
||||
# video_queue(conn).declare()
|
||||
|
||||
# consume
|
||||
with conn.Consumer(video_queue, callbacks=[process_media]) as consumer:
|
||||
# Process messages and handle events on all channels
|
||||
while True:
|
||||
conn.drain_events()
|
||||
|
||||
# Consume from several queues on the same channel:
|
||||
video_queue = Queue('video', exchange=media_exchange, key='video')
|
||||
image_queue = Queue('image', exchange=media_exchange, key='image')
|
||||
|
||||
with connection.Consumer([video_queue, image_queue],
|
||||
callbacks=[process_media]) as consumer:
|
||||
while True:
|
||||
connection.drain_events()
|
||||
|
||||
|
||||
Or handle channels manually::
|
||||
|
||||
with connection.channel() as channel:
|
||||
producer = Producer(channel, ...)
|
||||
consumer = Producer(channel)
|
||||
|
||||
|
||||
All objects can be used outside of with statements too,
|
||||
just remember to close the objects after use::
|
||||
|
||||
from kombu import Connection, Consumer, Producer
|
||||
|
||||
connection = Connection()
|
||||
# ...
|
||||
connection.release()
|
||||
|
||||
consumer = Consumer(channel_or_connection, ...)
|
||||
consumer.register_callback(my_callback)
|
||||
consumer.consume()
|
||||
# ....
|
||||
consumer.cancel()
|
||||
|
||||
|
||||
`Exchange` and `Queue` are simply declarations that can be pickled
|
||||
and used in configuration files etc.
|
||||
|
||||
They also support operations, but to do so they need to be bound
|
||||
to a channel.
|
||||
|
||||
Binding exchanges and queues to a connection will make it use
|
||||
that connections default channel.
|
||||
|
||||
::
|
||||
|
||||
>>> exchange = Exchange('tasks', 'direct')
|
||||
|
||||
>>> connection = Connection()
|
||||
>>> bound_exchange = exchange(connection)
|
||||
>>> bound_exchange.delete()
|
||||
|
||||
# the original exchange is not affected, and stays unbound.
|
||||
>>> exchange.delete()
|
||||
raise NotBoundError: Can't call delete on Exchange not bound to
|
||||
a channel.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
You can install `Kombu` either via the Python Package Index (PyPI)
|
||||
or from source.
|
||||
|
||||
To install using `pip`,::
|
||||
|
||||
$ pip install kombu
|
||||
|
||||
To install using `easy_install`,::
|
||||
|
||||
$ easy_install kombu
|
||||
|
||||
If you have downloaded a source tarball you can install it
|
||||
by doing the following,::
|
||||
|
||||
$ python setup.py build
|
||||
# python setup.py install # as root
|
||||
|
||||
|
||||
Terminology
|
||||
===========
|
||||
|
||||
There are some concepts you should be familiar with before starting:
|
||||
|
||||
* Producers
|
||||
|
||||
Producers sends messages to an exchange.
|
||||
|
||||
* Exchanges
|
||||
|
||||
Messages are sent to exchanges. Exchanges are named and can be
|
||||
configured to use one of several routing algorithms. The exchange
|
||||
routes the messages to consumers by matching the routing key in the
|
||||
message with the routing key the consumer provides when binding to
|
||||
the exchange.
|
||||
|
||||
* Consumers
|
||||
|
||||
Consumers declares a queue, binds it to a exchange and receives
|
||||
messages from it.
|
||||
|
||||
* Queues
|
||||
|
||||
Queues receive messages sent to exchanges. The queues are declared
|
||||
by consumers.
|
||||
|
||||
* Routing keys
|
||||
|
||||
Every message has a routing key. The interpretation of the routing
|
||||
key depends on the exchange type. There are four default exchange
|
||||
types defined by the AMQP standard, and vendors can define custom
|
||||
types (so see your vendors manual for details).
|
||||
|
||||
These are the default exchange types defined by AMQP/0.8:
|
||||
|
||||
* Direct exchange
|
||||
|
||||
Matches if the routing key property of the message and
|
||||
the `routing_key` attribute of the consumer are identical.
|
||||
|
||||
* Fan-out exchange
|
||||
|
||||
Always matches, even if the binding does not have a routing
|
||||
key.
|
||||
|
||||
* Topic exchange
|
||||
|
||||
Matches the routing key property of the message by a primitive
|
||||
pattern matching scheme. The message routing key then consists
|
||||
of words separated by dots (`"."`, like domain names), and
|
||||
two special characters are available; star (`"*"`) and hash
|
||||
(`"#"`). The star matches any word, and the hash matches
|
||||
zero or more words. For example `"*.stock.#"` matches the
|
||||
routing keys `"usd.stock"` and `"eur.stock.db"` but not
|
||||
`"stock.nasdaq"`.
|
||||
|
||||
Getting Help
|
||||
============
|
||||
|
||||
Mailing list
|
||||
------------
|
||||
|
||||
Join the `carrot-users`_ mailing list.
|
||||
|
||||
.. _`carrot-users`: http://groups.google.com/group/carrot-users/
|
||||
|
||||
Bug tracker
|
||||
===========
|
||||
|
||||
If you have any suggestions, bug reports or annoyances please report them
|
||||
to our issue tracker at http://github.com/celery/kombu/issues/
|
||||
|
||||
Contributing
|
||||
============
|
||||
|
||||
Development of `Kombu` happens at Github: http://github.com/celery/kombu
|
||||
|
||||
You are highly encouraged to participate in the development. If you don't
|
||||
like Github (for some reason) you're welcome to send regular patches.
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
This software is licensed under the `New BSD License`. See the `LICENSE`
|
||||
file in the top distribution directory for the full license text.
|
||||
|
||||
.. image:: https://d2weczhvl823v0.cloudfront.net/celery/kombu/trend.png
|
||||
:alt: Bitdeli badge
|
||||
:target: https://bitdeli.com/free
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
pip
|
||||
@@ -0,0 +1,364 @@
|
||||
Metadata-Version: 2.0
|
||||
Name: kombu
|
||||
Version: 3.0.37
|
||||
Summary: Messaging library for Python
|
||||
Home-page: https://kombu.readthedocs.io
|
||||
Author: Ask Solem
|
||||
Author-email: ask@celeryproject.org
|
||||
License: UNKNOWN
|
||||
Platform: any
|
||||
Classifier: Development Status :: 5 - Production/Stable
|
||||
Classifier: License :: OSI Approved :: BSD License
|
||||
Classifier: Operating System :: OS Independent
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.4
|
||||
Classifier: Programming Language :: Python :: 3.3
|
||||
Classifier: Programming Language :: Python :: 2.7
|
||||
Classifier: Programming Language :: Python :: 2.6
|
||||
Classifier: Programming Language :: Python :: 2
|
||||
Classifier: Programming Language :: Python :: Implementation :: CPython
|
||||
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
||||
Classifier: Programming Language :: Python :: Implementation :: Jython
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Topic :: Communications
|
||||
Classifier: Topic :: System :: Distributed Computing
|
||||
Classifier: Topic :: System :: Networking
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
Requires-Dist: anyjson >= 0.3.3
|
||||
Requires-Dist: amqp >= 1.4.9,<2.0
|
||||
Requires-Dist: importlib; python_version == "2.6"
|
||||
Requires-Dist: ordereddict; python_version == "2.6"
|
||||
|
||||
.. _kombu-index:
|
||||
|
||||
========================================
|
||||
kombu - Messaging library for Python
|
||||
========================================
|
||||
|
||||
:Version: 3.0.37
|
||||
|
||||
`Kombu` is a messaging library for Python.
|
||||
|
||||
The aim of `Kombu` is to make messaging in Python as easy as possible by
|
||||
providing an idiomatic high-level interface for the AMQ protocol, and also
|
||||
provide proven and tested solutions to common messaging problems.
|
||||
|
||||
`AMQP`_ is the Advanced Message Queuing Protocol, an open standard protocol
|
||||
for message orientation, queuing, routing, reliability and security,
|
||||
for which the `RabbitMQ`_ messaging server is the most popular implementation.
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
* Allows application authors to support several message server
|
||||
solutions by using pluggable transports.
|
||||
|
||||
* AMQP transport using the `py-amqp`_, `librabbitmq`_, or `qpid-python`_ client libraries.
|
||||
|
||||
* High performance AMQP transport written in C - when using `librabbitmq`_
|
||||
|
||||
This is automatically enabled if librabbitmq is installed::
|
||||
|
||||
$ pip install librabbitmq
|
||||
|
||||
* Virtual transports makes it really easy to add support for non-AMQP
|
||||
transports. There is already built-in support for `Redis`_,
|
||||
`Beanstalk`_, `Amazon SQS`_, `CouchDB`_, `MongoDB`_, `ZeroMQ`_,
|
||||
`ZooKeeper`_, `SoftLayer MQ`_ and `Pyro`_.
|
||||
|
||||
* You can also use the SQLAlchemy and Django ORM transports to
|
||||
use a database as the broker.
|
||||
|
||||
* In-memory transport for unit testing.
|
||||
|
||||
* Supports automatic encoding, serialization and compression of message
|
||||
payloads.
|
||||
|
||||
* Consistent exception handling across transports.
|
||||
|
||||
* The ability to ensure that an operation is performed by gracefully
|
||||
handling connection and channel errors.
|
||||
|
||||
* Several annoyances with `amqplib`_ has been fixed, like supporting
|
||||
timeouts and the ability to wait for events on more than one channel.
|
||||
|
||||
* Projects already using `carrot`_ can easily be ported by using
|
||||
a compatibility layer.
|
||||
|
||||
For an introduction to AMQP you should read the article `Rabbits and warrens`_,
|
||||
and the `Wikipedia article about AMQP`_.
|
||||
|
||||
.. _`RabbitMQ`: http://www.rabbitmq.com/
|
||||
.. _`AMQP`: http://amqp.org
|
||||
.. _`py-amqp`: http://pypi.python.org/pypi/amqp/
|
||||
.. _`qpid-python`: http://pypi.python.org/pypi/qpid-python/
|
||||
.. _`Redis`: http://code.google.com/p/redis/
|
||||
.. _`Amazon SQS`: http://aws.amazon.com/sqs/
|
||||
.. _`MongoDB`: http://www.mongodb.org/
|
||||
.. _`CouchDB`: http://couchdb.apache.org/
|
||||
.. _`ZeroMQ`: http://zeromq.org/
|
||||
.. _`Zookeeper`: https://zookeeper.apache.org/
|
||||
.. _`Beanstalk`: http://kr.github.com/beanstalkd/
|
||||
.. _`Rabbits and warrens`: http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/
|
||||
.. _`amqplib`: http://barryp.org/software/py-amqplib/
|
||||
.. _`Wikipedia article about AMQP`: http://en.wikipedia.org/wiki/AMQP
|
||||
.. _`carrot`: http://pypi.python.org/pypi/carrot/
|
||||
.. _`librabbitmq`: http://pypi.python.org/pypi/librabbitmq
|
||||
.. _`Pyro`: http://pythonhosting.org/Pyro
|
||||
.. _`SoftLayer MQ`: http://www.softlayer.com/services/additional/message-queue
|
||||
|
||||
|
||||
.. _transport-comparison:
|
||||
|
||||
Transport Comparison
|
||||
====================
|
||||
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| **Client** | **Type** | **Direct** | **Topic** | **Fanout** |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *amqp* | Native | Yes | Yes | Yes |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *qpid* | Native | Yes | Yes | Yes |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *redis* | Virtual | Yes | Yes | Yes (PUB/SUB) |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *mongodb* | Virtual | Yes | Yes | Yes |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *beanstalk* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *SQS* | Virtual | Yes | Yes [#f1]_ | Yes [#f2]_ |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *couchdb* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *zookeeper* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *in-memory* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *django* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *sqlalchemy* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
| *SLMQ* | Virtual | Yes | Yes [#f1]_ | No |
|
||||
+---------------+----------+------------+------------+---------------+
|
||||
|
||||
|
||||
.. [#f1] Declarations only kept in memory, so exchanges/queues
|
||||
must be declared by all clients that needs them.
|
||||
|
||||
.. [#f2] Fanout supported via storing routing tables in SimpleDB.
|
||||
Disabled by default, but can be enabled by using the
|
||||
``supports_fanout`` transport option.
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Kombu is using Sphinx, and the latest documentation can be found here:
|
||||
|
||||
https://kombu.readthedocs.io/
|
||||
|
||||
Quick overview
|
||||
--------------
|
||||
|
||||
::
|
||||
|
||||
from kombu import Connection, Exchange, Queue
|
||||
|
||||
media_exchange = Exchange('media', 'direct', durable=True)
|
||||
video_queue = Queue('video', exchange=media_exchange, routing_key='video')
|
||||
|
||||
def process_media(body, message):
|
||||
print body
|
||||
message.ack()
|
||||
|
||||
# connections
|
||||
with Connection('amqp://guest:guest@localhost//') as conn:
|
||||
|
||||
# produce
|
||||
producer = conn.Producer(serializer='json')
|
||||
producer.publish({'name': '/tmp/lolcat1.avi', 'size': 1301013},
|
||||
exchange=media_exchange, routing_key='video',
|
||||
declare=[video_queue])
|
||||
|
||||
# the declare above, makes sure the video queue is declared
|
||||
# so that the messages can be delivered.
|
||||
# It's a best practice in Kombu to have both publishers and
|
||||
# consumers declare the queue. You can also declare the
|
||||
# queue manually using:
|
||||
# video_queue(conn).declare()
|
||||
|
||||
# consume
|
||||
with conn.Consumer(video_queue, callbacks=[process_media]) as consumer:
|
||||
# Process messages and handle events on all channels
|
||||
while True:
|
||||
conn.drain_events()
|
||||
|
||||
# Consume from several queues on the same channel:
|
||||
video_queue = Queue('video', exchange=media_exchange, key='video')
|
||||
image_queue = Queue('image', exchange=media_exchange, key='image')
|
||||
|
||||
with connection.Consumer([video_queue, image_queue],
|
||||
callbacks=[process_media]) as consumer:
|
||||
while True:
|
||||
connection.drain_events()
|
||||
|
||||
|
||||
Or handle channels manually::
|
||||
|
||||
with connection.channel() as channel:
|
||||
producer = Producer(channel, ...)
|
||||
consumer = Producer(channel)
|
||||
|
||||
|
||||
All objects can be used outside of with statements too,
|
||||
just remember to close the objects after use::
|
||||
|
||||
from kombu import Connection, Consumer, Producer
|
||||
|
||||
connection = Connection()
|
||||
# ...
|
||||
connection.release()
|
||||
|
||||
consumer = Consumer(channel_or_connection, ...)
|
||||
consumer.register_callback(my_callback)
|
||||
consumer.consume()
|
||||
# ....
|
||||
consumer.cancel()
|
||||
|
||||
|
||||
`Exchange` and `Queue` are simply declarations that can be pickled
|
||||
and used in configuration files etc.
|
||||
|
||||
They also support operations, but to do so they need to be bound
|
||||
to a channel.
|
||||
|
||||
Binding exchanges and queues to a connection will make it use
|
||||
that connections default channel.
|
||||
|
||||
::
|
||||
|
||||
>>> exchange = Exchange('tasks', 'direct')
|
||||
|
||||
>>> connection = Connection()
|
||||
>>> bound_exchange = exchange(connection)
|
||||
>>> bound_exchange.delete()
|
||||
|
||||
# the original exchange is not affected, and stays unbound.
|
||||
>>> exchange.delete()
|
||||
raise NotBoundError: Can't call delete on Exchange not bound to
|
||||
a channel.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
You can install `Kombu` either via the Python Package Index (PyPI)
|
||||
or from source.
|
||||
|
||||
To install using `pip`,::
|
||||
|
||||
$ pip install kombu
|
||||
|
||||
To install using `easy_install`,::
|
||||
|
||||
$ easy_install kombu
|
||||
|
||||
If you have downloaded a source tarball you can install it
|
||||
by doing the following,::
|
||||
|
||||
$ python setup.py build
|
||||
# python setup.py install # as root
|
||||
|
||||
|
||||
Terminology
|
||||
===========
|
||||
|
||||
There are some concepts you should be familiar with before starting:
|
||||
|
||||
* Producers
|
||||
|
||||
Producers sends messages to an exchange.
|
||||
|
||||
* Exchanges
|
||||
|
||||
Messages are sent to exchanges. Exchanges are named and can be
|
||||
configured to use one of several routing algorithms. The exchange
|
||||
routes the messages to consumers by matching the routing key in the
|
||||
message with the routing key the consumer provides when binding to
|
||||
the exchange.
|
||||
|
||||
* Consumers
|
||||
|
||||
Consumers declares a queue, binds it to a exchange and receives
|
||||
messages from it.
|
||||
|
||||
* Queues
|
||||
|
||||
Queues receive messages sent to exchanges. The queues are declared
|
||||
by consumers.
|
||||
|
||||
* Routing keys
|
||||
|
||||
Every message has a routing key. The interpretation of the routing
|
||||
key depends on the exchange type. There are four default exchange
|
||||
types defined by the AMQP standard, and vendors can define custom
|
||||
types (so see your vendors manual for details).
|
||||
|
||||
These are the default exchange types defined by AMQP/0.8:
|
||||
|
||||
* Direct exchange
|
||||
|
||||
Matches if the routing key property of the message and
|
||||
the `routing_key` attribute of the consumer are identical.
|
||||
|
||||
* Fan-out exchange
|
||||
|
||||
Always matches, even if the binding does not have a routing
|
||||
key.
|
||||
|
||||
* Topic exchange
|
||||
|
||||
Matches the routing key property of the message by a primitive
|
||||
pattern matching scheme. The message routing key then consists
|
||||
of words separated by dots (`"."`, like domain names), and
|
||||
two special characters are available; star (`"*"`) and hash
|
||||
(`"#"`). The star matches any word, and the hash matches
|
||||
zero or more words. For example `"*.stock.#"` matches the
|
||||
routing keys `"usd.stock"` and `"eur.stock.db"` but not
|
||||
`"stock.nasdaq"`.
|
||||
|
||||
Getting Help
|
||||
============
|
||||
|
||||
Mailing list
|
||||
------------
|
||||
|
||||
Join the `carrot-users`_ mailing list.
|
||||
|
||||
.. _`carrot-users`: http://groups.google.com/group/carrot-users/
|
||||
|
||||
Bug tracker
|
||||
===========
|
||||
|
||||
If you have any suggestions, bug reports or annoyances please report them
|
||||
to our issue tracker at http://github.com/celery/kombu/issues/
|
||||
|
||||
Contributing
|
||||
============
|
||||
|
||||
Development of `Kombu` happens at Github: http://github.com/celery/kombu
|
||||
|
||||
You are highly encouraged to participate in the development. If you don't
|
||||
like Github (for some reason) you're welcome to send regular patches.
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
This software is licensed under the `New BSD License`. See the `LICENSE`
|
||||
file in the top distribution directory for the full license text.
|
||||
|
||||
.. image:: https://d2weczhvl823v0.cloudfront.net/celery/kombu/trend.png
|
||||
:alt: Bitdeli badge
|
||||
:target: https://bitdeli.com/free
|
||||
|
||||
|
||||
@@ -0,0 +1,225 @@
|
||||
kombu/__init__.py,sha256=4Uo-AOGmmH9Qqf-ZsE_YQyh-1U8wDhbAgZTIHWfW6IQ,3835
|
||||
kombu/abstract.py,sha256=CyaVymSaUmh3XyC5PQUDthZ3blRamXl_YGHCDng8eNM,3340
|
||||
kombu/clocks.py,sha256=CrecSHrpWQZwMU7195Kwl8xUMp0nH7YITPqD45dz0kU,4530
|
||||
kombu/common.py,sha256=3Cpt0qxSEjDWr3QQfCHPuTF8h9eoXdme-jxEKdwswlE,12250
|
||||
kombu/compat.py,sha256=JYfjJvLnoOlK1n4OqYkSdAvKGCKdDstts0bEIFjS77Q,6563
|
||||
kombu/compression.py,sha256=-qxOpcxuW_DPpajSDW3nqqoF4Muv0ej_CvYEGYaK4LE,1986
|
||||
kombu/connection.py,sha256=y-McoGjBU_svVyVsIlIvAdvu0gaczugG-UjZryIWTSI,39109
|
||||
kombu/entity.py,sha256=s4092Z8eoSfxUDCsXSlzN878hpdT7uYxAu9MvyKO3p0,27112
|
||||
kombu/exceptions.py,sha256=WOqPvdzEF465Ymg_Vw_YTQgprCSS1saoKcrQ8l7tVMk,1860
|
||||
kombu/five.py,sha256=-PSdzhGz5DJ2wXg-ZhwIkiw3lAhh8S4_DtLFokXQn9k,5873
|
||||
kombu/log.py,sha256=nSXBiViapaGJ6FU35O1KW6vKzTyOjE9WMPNEm2BDe5I,4168
|
||||
kombu/message.py,sha256=CllqNnMruIbeGl2uycXgtkqjm6JvU3AdI82t-H1V20E,5113
|
||||
kombu/messaging.py,sha256=dwp7L9Jjp-mQP3wIV-PRD1gmovVA9AnzDlvlvcemsgQ,21846
|
||||
kombu/mixins.py,sha256=_ifLa6bSdpR49pu9katFRwSoMYlGa8TpSNoAvcBrV2E,8087
|
||||
kombu/pidbox.py,sha256=NRIphgR-PPj3WRNuUFtwJsUETOtT9KVrJ5dneybMoYw,12704
|
||||
kombu/pools.py,sha256=AcKzrzAPaHuaaguUyQngN66Kf4L5PqtbOx5KGRcSFzE,3812
|
||||
kombu/serialization.py,sha256=K_-LkesEyp9waknMhXmHf7MmuObd4hQDpVYrbCq74OE,14866
|
||||
kombu/simple.py,sha256=hrDmKlbOaXl0fbou40mZEUX8Y-9gRrw4NzsFDHXcvyo,4113
|
||||
kombu/syn.py,sha256=fHEIVL_SvufPViQSqtS8i5cJInqjzp-nmtDZbg3zvVY,1001
|
||||
kombu/async/__init__.py,sha256=0qauaJIVtrVIMQWDQ_BTnemvMJ_FypWO-ytwFDLI16Y,307
|
||||
kombu/async/debug.py,sha256=4CeWg8Z9woR4cZz_jSO2l-KnDFq0cOwuhGKFDMXPVIE,1484
|
||||
kombu/async/hub.py,sha256=VbblpAOJ3KRshwrreHlsx_WEA5e_Xlc791uCk3Y8xQs,10743
|
||||
kombu/async/semaphore.py,sha256=47WzHsBlMfzGwMTibeYfEUjwlCVXD5yF0GA3Zyc3ctI,2890
|
||||
kombu/async/timer.py,sha256=8Uh0ooiLdw4XU5aqpIZd8wAYdU5APZz8UraqJgp8Unc,6546
|
||||
kombu/tests/__init__.py,sha256=5Yy9-kQKeWW0yEw8eAMfIj8038d4Z5j3jHeqMfvSKDE,2646
|
||||
kombu/tests/case.py,sha256=1zXsc0Fi86SFkffwcZ6SdL2goO9XW0vYc8hi8POPlpE,5508
|
||||
kombu/tests/mocks.py,sha256=RFz5ZWXNDme64xHb4_vCTfNWxLPBQaR1pjNxvkrwzpw,4238
|
||||
kombu/tests/test_clocks.py,sha256=ZjruvEqaizN5txnNdfYtvsfaru08BUo19RUqIvCW68E,2660
|
||||
kombu/tests/test_common.py,sha256=jR_1BJjBiVszpVM98g061Uky7gEtNcBPWSAeN2egw7U,13870
|
||||
kombu/tests/test_compat.py,sha256=yIpOR_54eo1IQ1HHVLcsS4AwTlMm-tRC9EWgybsyUCw,11870
|
||||
kombu/tests/test_compression.py,sha256=DUnmAi-zfE21mwPqKC31V1CGPFjm-0E3ISu-SN02TZw,1508
|
||||
kombu/tests/test_connection.py,sha256=Pn5jGG4q5gaLr1u5oVpEICRCUnTocL44W6CapGgDRpQ,22558
|
||||
kombu/tests/test_entities.py,sha256=5g5W1Wm5O_VChLblklzSD5XfZ8CC7RHMT5LflrCaGkg,12046
|
||||
kombu/tests/test_log.py,sha256=hJMvtKBl_1vStyLywMfdIB9u7skC62SbI4MOI4J-UVU,5035
|
||||
kombu/tests/test_messaging.py,sha256=f730QgFPywW-mRLWiasiXTAoNjJHSNNe0IleJQFpx3I,23343
|
||||
kombu/tests/test_mixins.py,sha256=dnW4U-LuB24RW6ErwBPImzpbKF8Mdz_RzXJe2wRQvz0,8064
|
||||
kombu/tests/test_pidbox.py,sha256=nYoeMmz1rodXCVMZkCnfFpCBGQgPas8pq-cSx48MVws,9755
|
||||
kombu/tests/test_pools.py,sha256=B0S8oqtjUeow4mketeFIXpKp-2GXvtEOCXRoTNsa0FQ,7369
|
||||
kombu/tests/test_serialization.py,sha256=x6HsYeb2rzzI-PDH5j1GzW5yCm0VlIBduRV24Req6Qc,11657
|
||||
kombu/tests/test_simple.py,sha256=J7I7Y5C3ep3-gCVL4nfCk_qvWYgGpoO5i8lhcwQg3oo,3772
|
||||
kombu/tests/test_syn.py,sha256=CWvWoM8Sc59IPbxluLwM5FBJZLgKNKOrGo1_j9t-jVI,2044
|
||||
kombu/tests/async/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
kombu/tests/async/test_hub.py,sha256=CULTPO-o9_c1yD3HTy0H-LDTJiGhevpcQWF5M01eTz8,751
|
||||
kombu/tests/async/test_semaphore.py,sha256=VIis1Llkmh8pd_uTDM07YCoGG8Gd_wyM8BhAHkmvKSg,1250
|
||||
kombu/tests/transport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
kombu/tests/transport/test_SQS.py,sha256=uggaWY9f17yy4_irgpeySpj9YkbueDzDd4BKmyG3p_8,9912
|
||||
kombu/tests/transport/test_amqplib.py,sha256=9LgFnVWz49VXYvREsTxt2p6xeMrG9Wn5ZLEDiTJNVrM,4704
|
||||
kombu/tests/transport/test_base.py,sha256=WchjrjxQn6ESllQk8btTM7CoJiB2_ICH64TuZsffkDA,4922
|
||||
kombu/tests/transport/test_filesystem.py,sha256=GdQC4Wl2M4olrN4hhTByaNAJBgA00VkKR6UP5s2YcQE,4288
|
||||
kombu/tests/transport/test_librabbitmq.py,sha256=jod0WKLpdTXNk5ZviK0q94Fehp_EGsaHp5Ue2iO78A8,4882
|
||||
kombu/tests/transport/test_memory.py,sha256=i1RirsEKqrF-VsJUefl93oDZ3pwL0ftSVcRDBKOp3YA,4918
|
||||
kombu/tests/transport/test_mongodb.py,sha256=lsi73ld5jVlk__eUlVtmwbK_NB14Nl4-GwzDVHVf_NI,3944
|
||||
kombu/tests/transport/test_pyamqp.py,sha256=KXhO9jEZdckscacjTmVOJcgdu5fhBTfDU4EIPQlOgGY,5435
|
||||
kombu/tests/transport/test_qpid.py,sha256=JFLeZW6psm8Rf5zHb0m3oGWOAVwOkiJSfZF6qngganY,72523
|
||||
kombu/tests/transport/test_redis.py,sha256=p8u5sSLlxo7vbtrkL9wQTD01V-_3VxtVr1GK63WA-3Y,40804
|
||||
kombu/tests/transport/test_sqlalchemy.py,sha256=Cl4YGtmjeLv6LuvziAO8N9vQWLO6_8iVYPp_nRGQ-jY,2249
|
||||
kombu/tests/transport/test_transport.py,sha256=fLpb9jmSlcntlNFxZX3UmED2As3InVMAaQaf6ZY7Ryg,1341
|
||||
kombu/tests/transport/virtual/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
kombu/tests/transport/virtual/test_base.py,sha256=dkVGI7iy79VK9tQcnvJ2uhcGhaoE4U3azd4ql9_e2oU,17753
|
||||
kombu/tests/transport/virtual/test_exchange.py,sha256=WSFNMLmp8XzHgZ-61Eh3cTyrdWELDdaQN-xgVD2qLhc,4859
|
||||
kombu/tests/transport/virtual/test_scheduling.py,sha256=or_y__Y4B6buIu9hF3GOVXtiLmqvL1_JXs8JscrVv6s,1835
|
||||
kombu/tests/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
kombu/tests/utils/test_amq_manager.py,sha256=S6RkDELUCAIgjhq--CcL0gOgRknFCuJqUoJqRi9w6RE,1238
|
||||
kombu/tests/utils/test_debug.py,sha256=1ZrSSqvjh1ApWQWRH8GqFLmztHjF-3Na7FmfYs8AEFg,1726
|
||||
kombu/tests/utils/test_encoding.py,sha256=KcbiAeBwl6i9H3vTXTa42vizpBFBI1XdTIU7kq6tBYs,3034
|
||||
kombu/tests/utils/test_functional.py,sha256=D-yp4s-whQNLfiorcbK7NBBqdrhhwBw2I2W6KWQrVhk,1652
|
||||
kombu/tests/utils/test_utils.py,sha256=uRR_WgTPErohDwNXP3mUDbj5dQE05ZPWi09x0gjITLE,11114
|
||||
kombu/transport/SLMQ.py,sha256=PHLWHrn0eFKNw3IxuqbLnqGryH0Ndm_JXvw398ZKKn4,6028
|
||||
kombu/transport/SQS.py,sha256=tAd7LC2bZh36eSICN0jNpnv8o2nCizFfH6Nj6chzSek,18661
|
||||
kombu/transport/__init__.py,sha256=ei-rvEKqQIuZq1jdOeHBCyJiCI_5U7owLUQI9iNruRg,3713
|
||||
kombu/transport/amqplib.py,sha256=3N6HemxbuWHyjyNkYenUpH70Jqt3mC4lnWUelrkee10,13345
|
||||
kombu/transport/base.py,sha256=Ah-TVNBhTrpLkdmN3KSdIDJKk0b0wSg7rACj5aiC5LQ,4698
|
||||
kombu/transport/beanstalk.py,sha256=2kxDPCDv9_E3oa-8HOnzf4s6Yoj38yfF7ns95MMgLkg,4050
|
||||
kombu/transport/couchdb.py,sha256=E-uY055z9f_Nb33i9GlkjMtkXTjxHRLstHC7V8xJydk,3992
|
||||
kombu/transport/filesystem.py,sha256=hzoDYySrOMHu7q11jAfahACjE6hntz_dm7_SrjseLb4,5533
|
||||
kombu/transport/librabbitmq.py,sha256=xHRPfA9C4AKDXaLz3QIeF1Ua-TBmLWAwb-t7LF_EWWo,5450
|
||||
kombu/transport/memory.py,sha256=qx5ja7aOwM0LcFBvGcYHJI2sz7zewqJ0i_BlkBGrkec,1784
|
||||
kombu/transport/mongodb.py,sha256=X6qYxLoI3sPkykioPiCiPxjOlkfYxGcCNnIYDedUhjk,10146
|
||||
kombu/transport/pyamqp.py,sha256=OB1aFgqmOuyqgNkqAlvfKhky8X10PL8SrF4zoQGgVqM,5008
|
||||
kombu/transport/pyro.py,sha256=rxzZ69VTu9PqNqjvlR3obHNjsGmiMA_Jglqi5ozLreM,2468
|
||||
kombu/transport/qpid.py,sha256=UcYjuLoqFsFFo8XdSqqOshsDI0Laq8I0xwDOPM34_24,71570
|
||||
kombu/transport/redis.py,sha256=ijVAW6mapqk6zvGJLkLGCVKK4U-ZGCS_9m_YpH13B14,35961
|
||||
kombu/transport/zmq.py,sha256=w3LSH-5ldvYkJ7THbxon8EHoZj0CvQbB0LyPZkUZc5M,8635
|
||||
kombu/transport/zookeeper.py,sha256=HnX1fgyq4HmiGPiQzcb99kHoALCT9Qsb2h9WgtqmEcY,5232
|
||||
kombu/transport/django/__init__.py,sha256=J7Q3O5J8IbcGE-KWUj0qzq-fD4P9JBxnxC5T6gp0KKE,2376
|
||||
kombu/transport/django/managers.py,sha256=IwI6utNi0xtjyYr6XDc9umhRnDBO7kbvLyV5EdXbHKA,2489
|
||||
kombu/transport/django/models.py,sha256=196P-lR_po4qj8XtrIV9MC0WeEL0kvf378zEXr6Tv30,1125
|
||||
kombu/transport/django/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
kombu/transport/django/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
kombu/transport/django/management/commands/clean_kombu_messages.py,sha256=JFN3X5W2VBXmlmOy8CFO9tW6W9v9myhkJFPAAVEIJO4,564
|
||||
kombu/transport/django/migrations/0001_initial.py,sha256=N1Cesbz1K3d-LPd-22OqMlwKnxq0oHLdOmv54QuPqEc,1688
|
||||
kombu/transport/django/migrations/__init__.py,sha256=nAs3tXW0M0-MrurJHjtCa31LxGpJyiqvHwiJn4cz8yM,477
|
||||
kombu/transport/django/south_migrations/0001_initial.py,sha256=q6m1OVi3RPnfQoz8XEti-2U6H3eBidRGko8nXFwAWGg,2435
|
||||
kombu/transport/django/south_migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
kombu/transport/sqlalchemy/__init__.py,sha256=Xv7bR-Vou0ClW6wYFKBMFvYIZjXz2zGrrVnCcuTB9sY,5186
|
||||
kombu/transport/sqlalchemy/models.py,sha256=IGoY-77N8DVeNTcDnf3WpRl5PANIYdLeqhV4doBVS-4,1961
|
||||
kombu/transport/virtual/__init__.py,sha256=Skny6J8rd3hADewgKjeys86k4xY7vFeSgUFGkXp8P9g,27656
|
||||
kombu/transport/virtual/exchange.py,sha256=SqvRaRZ0CiHnc_lfTY-H4riUy1yR-URSUhsJMIoM_CM,4580
|
||||
kombu/transport/virtual/scheduling.py,sha256=Oy4pw9Rv_A0oO4Z7kZ7llIHV0xQtza0mEkmmzbC_De0,1293
|
||||
kombu/utils/__init__.py,sha256=GqZ0PryBma5B__9Qs0O-fwab2r81yt7IsnFpXo_3i3g,12781
|
||||
kombu/utils/amq_manager.py,sha256=s6hHwoFFbNozyX027I4Da6PeSBWpr-x1y4CXguXpYp4,655
|
||||
kombu/utils/compat.py,sha256=tsvzlK5NNeQfGo8G0mX1QFFimOZdoYo5MA7tvzE2Kqg,1553
|
||||
kombu/utils/debug.py,sha256=X1jmxUe561akqMlAj4gSGaUEFl9pv_oi06hXixutxAc,1668
|
||||
kombu/utils/encoding.py,sha256=lWT0Rggy-rKsTLOoUHsOq9QD8j6qWZvRxIBMMtpZTBA,3085
|
||||
kombu/utils/eventio.py,sha256=Y3uIXt1RNVJSVelMbfPiSDC5YTSHSp8tUj4MlhzPlyo,7867
|
||||
kombu/utils/functional.py,sha256=6yt_fqyspa5Qi_7JMUb2VW1cj12Sz8D6piB71fUv-cI,2069
|
||||
kombu/utils/limits.py,sha256=BOKJhU55TSr-z02q_R3MPapm16t-jdwQaPlMpphQA0A,2195
|
||||
kombu/utils/text.py,sha256=UboB5LotK2uO_fJkEn_o2faZaIFjeXCTVP93hP8UGf4,1383
|
||||
kombu/utils/url.py,sha256=XklOtY5w3rP_IZaIs4V2AseaH1IyZVa7IDvco_Wo0UE,2088
|
||||
kombu-3.0.37.dist-info/DESCRIPTION.rst,sha256=QVM1W90ZxpN9Y8_g2Fx0MxgfvOBaTJAyYlkFDnHpX68,11395
|
||||
kombu-3.0.37.dist-info/METADATA,sha256=OEf6AwLL2psD-LshHTXHQVNZputk0AtdNKfXX_Kpedw,12730
|
||||
kombu-3.0.37.dist-info/RECORD,,
|
||||
kombu-3.0.37.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110
|
||||
kombu-3.0.37.dist-info/metadata.json,sha256=jx9N6lWEQATDPIuADa9XLKMX30WB743MCIFYF-UHkvQ,1461
|
||||
kombu-3.0.37.dist-info/top_level.txt,sha256=uoTZ9rdRBzLZu_Hnt_3txqi3DQMIaLwFr3LXJ8HT0G4,6
|
||||
kombu-3.0.37.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
kombu/transport/__pycache__/qpid.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/zookeeper.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/filesystem.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/beanstalk.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/pyamqp.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/zmq.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/librabbitmq.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/amqplib.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/pyro.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/base.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/memory.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/couchdb.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/mongodb.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/SLMQ.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/redis.cpython-36.pyc,,
|
||||
kombu/transport/__pycache__/SQS.cpython-36.pyc,,
|
||||
kombu/transport/sqlalchemy/__pycache__/models.cpython-36.pyc,,
|
||||
kombu/transport/sqlalchemy/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/transport/virtual/__pycache__/exchange.cpython-36.pyc,,
|
||||
kombu/transport/virtual/__pycache__/scheduling.cpython-36.pyc,,
|
||||
kombu/transport/virtual/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/transport/django/migrations/__pycache__/0001_initial.cpython-36.pyc,,
|
||||
kombu/transport/django/migrations/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/transport/django/management/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/transport/django/management/commands/__pycache__/clean_kombu_messages.cpython-36.pyc,,
|
||||
kombu/transport/django/management/commands/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/transport/django/__pycache__/managers.cpython-36.pyc,,
|
||||
kombu/transport/django/__pycache__/models.cpython-36.pyc,,
|
||||
kombu/transport/django/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/transport/django/south_migrations/__pycache__/0001_initial.cpython-36.pyc,,
|
||||
kombu/transport/django/south_migrations/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/async/__pycache__/debug.cpython-36.pyc,,
|
||||
kombu/async/__pycache__/timer.cpython-36.pyc,,
|
||||
kombu/async/__pycache__/semaphore.cpython-36.pyc,,
|
||||
kombu/async/__pycache__/hub.cpython-36.pyc,,
|
||||
kombu/async/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_librabbitmq.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_base.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_SQS.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_redis.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_memory.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_transport.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_sqlalchemy.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_mongodb.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_pyamqp.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_qpid.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_amqplib.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/tests/transport/__pycache__/test_filesystem.cpython-36.pyc,,
|
||||
kombu/tests/transport/virtual/__pycache__/test_exchange.cpython-36.pyc,,
|
||||
kombu/tests/transport/virtual/__pycache__/test_scheduling.cpython-36.pyc,,
|
||||
kombu/tests/transport/virtual/__pycache__/test_base.cpython-36.pyc,,
|
||||
kombu/tests/transport/virtual/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/tests/async/__pycache__/test_semaphore.cpython-36.pyc,,
|
||||
kombu/tests/async/__pycache__/test_hub.cpython-36.pyc,,
|
||||
kombu/tests/async/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/tests/utils/__pycache__/test_utils.cpython-36.pyc,,
|
||||
kombu/tests/utils/__pycache__/test_amq_manager.cpython-36.pyc,,
|
||||
kombu/tests/utils/__pycache__/test_debug.cpython-36.pyc,,
|
||||
kombu/tests/utils/__pycache__/test_encoding.cpython-36.pyc,,
|
||||
kombu/tests/utils/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/tests/utils/__pycache__/test_functional.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/mocks.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_connection.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_compression.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_log.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_entities.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_serialization.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_common.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_simple.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_compat.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_pidbox.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_mixins.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_syn.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/case.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_messaging.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_pools.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/test_clocks.cpython-36.pyc,,
|
||||
kombu/tests/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/debug.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/amq_manager.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/eventio.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/url.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/functional.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/text.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/encoding.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/compat.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/limits.cpython-36.pyc,,
|
||||
kombu/utils/__pycache__/__init__.cpython-36.pyc,,
|
||||
kombu/__pycache__/abstract.cpython-36.pyc,,
|
||||
kombu/__pycache__/clocks.cpython-36.pyc,,
|
||||
kombu/__pycache__/syn.cpython-36.pyc,,
|
||||
kombu/__pycache__/entity.cpython-36.pyc,,
|
||||
kombu/__pycache__/exceptions.cpython-36.pyc,,
|
||||
kombu/__pycache__/pools.cpython-36.pyc,,
|
||||
kombu/__pycache__/compression.cpython-36.pyc,,
|
||||
kombu/__pycache__/simple.cpython-36.pyc,,
|
||||
kombu/__pycache__/message.cpython-36.pyc,,
|
||||
kombu/__pycache__/common.cpython-36.pyc,,
|
||||
kombu/__pycache__/messaging.cpython-36.pyc,,
|
||||
kombu/__pycache__/pidbox.cpython-36.pyc,,
|
||||
kombu/__pycache__/mixins.cpython-36.pyc,,
|
||||
kombu/__pycache__/compat.cpython-36.pyc,,
|
||||
kombu/__pycache__/connection.cpython-36.pyc,,
|
||||
kombu/__pycache__/five.cpython-36.pyc,,
|
||||
kombu/__pycache__/log.cpython-36.pyc,,
|
||||
kombu/__pycache__/serialization.cpython-36.pyc,,
|
||||
kombu/__pycache__/__init__.cpython-36.pyc,,
|
||||
@@ -0,0 +1,6 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: bdist_wheel (0.29.0)
|
||||
Root-Is-Purelib: true
|
||||
Tag: py2-none-any
|
||||
Tag: py3-none-any
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"classifiers": ["Development Status :: 5 - Production/Stable", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: Implementation :: Jython", "Intended Audience :: Developers", "Topic :: Communications", "Topic :: System :: Distributed Computing", "Topic :: System :: Networking", "Topic :: Software Development :: Libraries :: Python Modules"], "extensions": {"python.details": {"contacts": [{"email": "ask@celeryproject.org", "name": "Ask Solem", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://kombu.readthedocs.io"}}}, "extras": [], "generator": "bdist_wheel (0.29.0)", "metadata_version": "2.0", "name": "kombu", "platform": "any", "run_requires": [{"requires": ["amqp >= 1.4.9,<2.0", "anyjson >= 0.3.3"]}, {"environment": "python_version == \"2.6\"", "requires": ["importlib", "ordereddict"]}], "summary": "Messaging library for Python", "test_requires": [{"requires": ["mock", "nose", "unittest2 (>=0.5.0)"]}], "version": "3.0.37"}
|
||||
@@ -0,0 +1 @@
|
||||
kombu
|
||||
Reference in New Issue
Block a user