Metadata-Version: 2.0
Name: hqueue
Version: 0.2.0
Summary: asyncio.Queue with history
Home-page: https://github.com/hsharrison/history-queue
Author: Henry S. Harrison
Author-email: henry.schafer.harrison@gmail.com
License: BSD
Keywords: asyncio,deque,queue,history
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Utilities
Provides-Extra: test
Requires-Dist: hypothesis; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: toolz; extra == 'test'

========
Overview
========



``asyncio.Queue`` with history::

Objects put on a ``HistoryQueue`` are gathered in tuples,
with the first element being the next item on the queue,
followed by items add previously.

``HistoryQueue`` can also be thought of as as asynchronous ``collections.deque``,
with ``put`` analogous to ``deque.appendleft``
and ``get`` returning the entire deque (as a tuple).

    >>> from hqueue import HistoryQueue
    >>> hq = HistoryQueue(history_size=2)
    >>> hq.put_nowait(0)
    >>> hq.put_nowait(1)
    >>> hq.get_nowait()
    (0,)
    >>> hq.get_nowait()
    (1, 0)
    >>> hq.put_nowait(2)
    >>> hq.put_nowait(3)
    >>> hq.put_nowait(4)
    >>> hq.get_nowait()
    (2, 1, 0)
    >>> hq.get_nowait()
    (3, 2, 1)

For ease of illustration, in the above examples we use ``put_nowait`` and ``get_nowait``,
the synchronous counterparts of ``put`` and ``wait``, respectively.
In a coroutine, ``await put()`` could be used to block until the queue is not full,
and ``await get()`` to block until there is an item in the queue.

See Also
--------
``asyncio.Queue``
``collections.deque``



Changelog
=========

0.1.0 (2016-06-28)
------------------

* First prototype.

0.2.0 (2016-07-01)
------------------

* First release on PyPI.


