polyswarmclient.ratelimit.redis

Module Contents

polyswarmclient.ratelimit.redis.logger[source]
polyswarmclient.ratelimit.redis.SECONDS = 1[source]
polyswarmclient.ratelimit.redis.MINUTELY_SECONDS = 60[source]
polyswarmclient.ratelimit.redis.HOURLY_SECONDS[source]
polyswarmclient.ratelimit.redis.DAILY_SECONDS[source]
class polyswarmclient.ratelimit.redis.RedisKeyManager[source]

Bases: abc.ABC

get_key(self, prefix)[source]
get_expiration(self)[source]
class polyswarmclient.ratelimit.redis.DateKeyManager(expiration, format_str)[source]

Bases: polyswarmclient.ratelimit.redis.RedisKeyManager

get_key(self, prefix)[source]
get_expiration(self)[source]
class polyswarmclient.ratelimit.redis.DailyKeyManager[source]

Bases: polyswarmclient.ratelimit.redis.DateKeyManager

class polyswarmclient.ratelimit.redis.HourlyKeyManager[source]

Bases: polyswarmclient.ratelimit.redis.DateKeyManager

class polyswarmclient.ratelimit.redis.MinutelyKeyManager[source]

Bases: polyswarmclient.ratelimit.redis.DateKeyManager

class polyswarmclient.ratelimit.redis.SecondlyKeyManager[source]

Bases: polyswarmclient.ratelimit.redis.DateKeyManager

class polyswarmclient.ratelimit.redis.RedisRateLimit(redis, queue, limit, key_manager=None)[source]

Bases: polyswarmclient.ratelimit.abstractratelimit.AbstractRateLimit

Third Party limitation where redis is used to track a daily scan limit. Keys are based on the current date, and will expire the next day.

This implementation is used in the producer and worker since they use Redis already.

key[source]
set_redis(self, redis)[source]
class polyswarmclient.ratelimit.redis.RedisDailyRateLimit[source]

Bases: polyswarmclient.ratelimit.redis.RedisRateLimit