some Queue subclasses and ducktypes
Project description
Queue-like items: iterable queues and channels.
Latest release 20200521: IterableQueue,IterablePriorityQueue: simplify wrappers, bypasses weird bug from overengineering these.
Class Channel
A zero-storage data passage. Unlike a Queue(1), put() blocks waiting for the matching get().
Function IterablePriorityQueue(*args, capacity=0, name=None, **kw)
Factory to create an iterable PriorityQueue.
Function IterableQueue(*args, capacity=0, name=None, **kw)
Factory to create an iterable Queue.
Class NullQueue(cs.resources.MultiOpenMixin)
A queue-like object that discards its inputs. Calls to .get() raise Queue_Empty.
Method NullQueue.__init__(self, blocking=False, name=None)
Initialise the NullQueue.
Parameters:
blocking: if true, calls to .get() block until .shutdown(). Default: False.name: a name for this NullQueue.
Class PushQueue(cs.resources.MultiOpenMixin)
A puttable object which looks like an iterable Queue.
Calling .put(item) calls func_push supplied at initialisation
to trigger a function on data arrival, whose processing is mediated
queued via a Later for delivery to the output queue.
Method PushQueue.__init__(self, name, functor, outQ)
Initialise the PushQueue with the Later L, the callable functor
and the output queue outQ.
Parameters:
functoris a one-to-many function which accepts a single item of input and returns an iterable of outputs; it may be a generator. These outputs are passed to outQ.put individually as received.outQis a MultiOpenMixin which accepts via its .put() method.
Class TimerQueue
Class to run a lot of "in the future" jobs without using a bazillion Timer threads.
Release Log
Release 20200521: IterableQueue,IterablePriorityQueue: simplify wrappers, bypasses weird bug from overengineering these.
Release 20191007:
- PushQueue: improve str.
- Clean lint, drop cs.obj dependency.
Release 20190812: _QueueIterator: do MultiOpenMixin.init so that str is functional.
Release 20181022: Bugfix Channel, drasticly simplify PushQueue, other minor changes.
Release 20160828:
- Use "install_requires" instead of "requires" in DISTINFO.
- TimerQueue.add: support optional *a and **kw arguments for func.
- Many bugfixes and internal changes.
Release 20150115: More PyPI metadata fixups.
Release 20150111: Initial PyPI release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cs.queues-20200521.tar.gz.
File metadata
- Download URL: cs.queues-20200521.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03b589f38315420cd82c6af78666545bd9fbf09be76ff22e4a6c764d110919b4
|
|
| MD5 |
d6e98cee09f28ee926bfd9038657837c
|
|
| BLAKE2b-256 |
fa956b55abf70685293eff6b25e9684eaa6c65fd20a541dc81b4b2765d98aeae
|