:py:mod:`koapy.utils.rate_limiting.RateLimiter`
===============================================

.. py:module:: koapy.utils.rate_limiting.RateLimiter


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   koapy.utils.rate_limiting.RateLimiter.RateLimiter
   koapy.utils.rate_limiting.RateLimiter.TimeWindowRateLimiter
   koapy.utils.rate_limiting.RateLimiter.CompositeTimeWindowRateLimiter




.. py:class:: RateLimiter

   .. py:method:: check_sleep_seconds(*args, **kwargs)


   .. py:method:: add_call_history(*args, **kwargs)


   .. py:method:: sleep_if_necessary(*args, **kwargs)



.. py:class:: TimeWindowRateLimiter(period, calls)

   Bases: :py:obj:`RateLimiter`, :py:obj:`koapy.utils.logging.Logging.Logging`

   .. py:method:: check_sleep_seconds(*args, **kwargs)


   .. py:method:: add_call_history(*args, **kwargs)


   .. py:method:: sleep_if_necessary(*args, **kwargs)



.. py:class:: CompositeTimeWindowRateLimiter(limiters: List[RateLimiter])

   Bases: :py:obj:`RateLimiter`

   .. py:method:: check_sleep_seconds(*args, **kwargs)


   .. py:method:: add_call_history(*args, **kwargs)


   .. py:method:: sleep_if_necessary(*args, **kwargs)



