Metadata-Version: 2.4
Name: AsynQueue
Version: 0.9.9
Summary: Asynchronous task queueing with Twisted: threaded, multicore, and remote.
Home-page: http://edsuom.com/AsynQueue.html
Author: Edwin A. Suominen
Author-email: foss@edsuom.com
Maintainer: Edwin A. Suominen
Maintainer-email: foss@edsuom.com
License: Apache License (2.0)
Project-URL: GitHub, https://github.com/edsuom/AsynQueue
Project-URL: API, http://edsuom.com/AsynQueue/asynqueue.html
Keywords: twisted,asynchronous,async,defer,deferred,threads,parallel,distributed,task,queue,priority,multicore
Platform: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.9
Classifier: Framework :: Twisted
Classifier: Topic :: System :: Clustering
Classifier: Topic :: System :: Distributed Computing
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Hardware :: Symmetric Multi-processing
Description-Content-Type: text/markdown
License-File: LICENSE.txt
License-File: NOTICE
Requires-Dist: Twisted
Requires-Dist: six
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: maintainer
Dynamic: maintainer-email
Dynamic: platform
Dynamic: project-url
Dynamic: requires-dist
Dynamic: summary


Asynchronous task queueing based on the *Twisted* framework, with task
prioritization and a powerful worker interface. Worker implementations
are included for running tasks asynchronously in the main thread, in
separate threads, in separate Python interpreters (multiprocessing),
and even on separate devices using Twisted's Asynchronous Message
Protocol.

Includes deferred iteration capability: Calling a task that returns an
iterator can return a
[Deferator](http://edsuom.com/AsynQueue/asynqueue.iteration.Deferator.html)
instead, which does the iteration in a Twisted-friendly fashion, even
over a network connection. You can also supply an object conforming to
Twisted's *IConsumer* interface and iterations will be fed to it as they
become available.

The *util* module contains a
[DeferredTracker](http://edsuom.com/AsynQueue/asynqueue.util.DeferredTracker.html)
object that makes the import worthwhile all on its own. You can use
its **put** method to track Twisted *Deferred* objects without inserting
anything into their callback chains. Then you can wait in non-blocking
Twisted fashion for all, any, or some of the tracked deferreds to fire
(again, without getting tangled up with any of their callbacks) using
the tracker's **deferToAll**, **deferToAny**, and **deferUntilFewer**
methods.
