semvec/pypi-packages huggingface dataset:
redis-throttled-queue 1.0.0
Queue system with key-based throttling implemented over Redis.
License: BSD-2-Clause
Requires Python: >=3.7

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



Queue system with key-based throttling implemented over Redis.

* Free software: BSD 2-Clause License

Installation
============

::

    pip install redis-throttled-queue

You can also install the in-development version with::

    pip install https://github.com/ionelmc/python-redis-throttled-queue/archive/main.zip


Documentation
=============


https://python-redis-throttled-queue.readthedocs.io/


Development
===========

To run all the tests run::

    tox

Note, to combine the coverage data from all the tox environments run:

.. list-table::
    :widths: 10 90
    :stub-columns: 1

    - - Windows
      - ::

            set PYTEST_ADDOPTS=--cov-append
            tox

    - - Other
      - ::

            PYTEST_ADDOPTS=--cov-append tox

1
Changelog
=========

1.0.0 (2022-11-15)
------------------

* Switched from eval scripts to redis functions. Minimum Redis server version becomes 7.0.
* Replaced unpack calls with direct indexing in the Lua functions.
* These changes improve the push operation by at least 6%.


0.6.0 (2022-07-06)
------------------

* Simplified ``pop()`` code to avoid the expensive scan operations.
  The ``'...:names`` key is now a sorted set and will be used as a template for the usage keys (``'...:usage:<window>'``).

0.5.0 (2022-06-28)
------------------

* Added support in a ``AsyncThrottledQueue`` class that only differs a bit from the regular ``ThrottledQueue``:

  * ``__len__`` is removed, instead a awaitable ``size()`` method is available.
  * ``__init__`` doesn't validate version anymore, instead you can await on ``validate_version()``.
  * ``push()``, ``pull()`` and ``cleanup()`` are awaitable.
* Added a ``validate_version`` argument to ``ThrottledQueue`` (default: ``True``).

0.4.4 (2022-05-09)
------------------

* Fixed missing usage key expiration when some queues are empty.

0.4.3 (2022-04-09)
------------------

* Fixed buggy counts when duplicate values are pushed.
  For now the highest priority will be used when two identical
  values would be pushed.


0.4.2 (2022-04-02)
------------------

* Refactored some duplicated code in the `pop` script.

0.4.1 (2022-03-31)
------------------

* Fixed bogus error in ``cleanup()`` when db is completely empty.

0.4.0 (2022-03-31)
------------------

* Added ``last_activity`` and ``idle_seconds`` attributes.
* Added a ``cleanup()`` method.

0.3.1 (2022-03-31)
------------------

* Renamed attributes (should be safe to mess with):

  - ``_limit`` becomes ``limit``.
  - ``_resolution`` becomes ``resolution``.

0.3.0 (2022-03-31)
------------------

* Allowed ``pop(window)`` using any window value (str/bytes/int recommended tho).


0.2.0 (2022-03-31)
------------------

* Fixed ``__len__`` (was returning a string).

0.1.0 (2022-03-30)
------------------

* First release on PyPI.