:tocdepth: 4 ============= API Reference ============= .. autosummary:: limits limits.strategies limits.storage limits.aio.strategies limits.aio.storage .. currentmodule:: limits Strategies ========== Synchronous Strategies ---------------------- The available built in rate limiting strategies which expect a single parameter: a subclass of :class:`~limits.storage.Storage`. .. currentmodule:: limits.strategies Provided by :mod:`limits.strategies` .. autoclass:: FixedWindowRateLimiter .. autoclass:: FixedWindowElasticExpiryRateLimiter .. autoclass:: MovingWindowRateLimiter .. autoclass:: SlidingWindowCounterRateLimiter All strategies implement the same abstract base class: .. autoclass:: RateLimiter Async Strategies ---------------- These variants should be used in for asyncio support. These strategies expose async variants and expect a subclass of :class:`limits.aio.storage.Storage` .. currentmodule:: limits.aio.strategies Provided by :mod:`limits.aio.strategies` .. autoclass:: FixedWindowRateLimiter .. autoclass:: FixedWindowElasticExpiryRateLimiter .. autoclass:: MovingWindowRateLimiter .. autoclass:: SlidingWindowCounterRateLimiter All strategies implement the same abstract base class: .. autoclass:: RateLimiter Storage ======= Storage Factory function ------------------------ Provided by :mod:`limits.storage` .. autofunction:: limits.storage.storage_from_string Synchronous Storage ------------------- Provided by :mod:`limits.storage` .. currentmodule:: limits.storage In-Memory Storage ^^^^^^^^^^^^^^^^^ .. autoclass:: MemoryStorage Redis Storage ^^^^^^^^^^^^^ .. autoclass:: RedisStorage Redis Cluster Storage ^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: RedisClusterStorage Redis Sentinel Storage ^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: RedisSentinelStorage Memcached Storage ^^^^^^^^^^^^^^^^^ .. autoclass:: MemcachedStorage MongoDB Storage ^^^^^^^^^^^^^^^ .. autoclass:: MongoDBStorage Etcd Storage ^^^^^^^^^^^^ .. autoclass:: EtcdStorage Async Storage ------------- Provided by :mod:`limits.aio.storage` .. currentmodule:: limits.aio.storage Async In-Memory Storage ^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: MemoryStorage Async Redis Storage ^^^^^^^^^^^^^^^^^^^ .. autoclass:: RedisStorage Async Redis Cluster Storage ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: RedisClusterStorage Async Redis Sentinel Storage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: RedisSentinelStorage Async Memcached Storage ^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: MemcachedStorage Async MongoDB Storage ^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: MongoDBStorage Async Etcd Storage ^^^^^^^^^^^^^^^^^^ .. autoclass:: EtcdStorage Abstract storage classes ------------------------ .. autoclass:: limits.storage.Storage .. autoclass:: limits.storage.MovingWindowSupport .. autoclass:: limits.storage.SlidingWindowCounterSupport Async Abstract storage classes -------------------------------- .. autoclass:: limits.aio.storage.Storage .. autoclass:: limits.aio.storage.MovingWindowSupport .. autoclass:: limits.aio.storage.SlidingWindowCounterSupport Rate Limits =========== .. currentmodule:: limits Provided by :mod:`limits` Parsing functions ----------------- .. autofunction:: parse .. autofunction:: parse_many Rate limit granularities ------------------------ All rate limit items implement :class:`RateLimitItem` by declaring a :attr:`GRANULARITY` .. autoclass:: RateLimitItem ------ .. autoclass:: RateLimitItemPerSecond .. autoclass:: RateLimitItemPerMinute .. autoclass:: RateLimitItemPerHour .. autoclass:: RateLimitItemPerDay .. autoclass:: RateLimitItemPerMonth .. autoclass:: RateLimitItemPerYear Structures ========== .. autoclass:: limits.WindowStats :no-inherited-members: Exceptions ========== .. autoexception:: limits.errors.ConfigurationError :no-inherited-members: .. autoexception:: limits.errors.ConcurrentUpdateError :no-inherited-members: .. autoexception:: limits.errors.StorageError :no-inherited-members: