diff --git a/stubs/redis/redis/commands.pyi b/stubs/redis/redis/commands.pyi new file mode 100644 index 000000000000..d73421ef4783 --- /dev/null +++ b/stubs/redis/redis/commands.pyi @@ -0,0 +1,461 @@ +from typing import Any + +def list_or_args(keys, args): ... + +class Commands: + def acl_cat(self, category: Any | None = ...): ... + def acl_deluser(self, *username): ... + def acl_genpass(self, bits: Any | None = ...): ... + def acl_getuser(self, username): ... + def acl_help(self): ... + def acl_list(self): ... + def acl_log(self, count: Any | None = ...): ... + def acl_log_reset(self): ... + def acl_load(self): ... + def acl_save(self): ... + def acl_setuser( + self, + username, + enabled: bool = ..., + nopass: bool = ..., + passwords: Any | None = ..., + hashed_passwords: Any | None = ..., + categories: Any | None = ..., + commands: Any | None = ..., + keys: Any | None = ..., + reset: bool = ..., + reset_keys: bool = ..., + reset_passwords: bool = ..., + ): ... + def acl_users(self): ... + def acl_whoami(self): ... + def bgrewriteaof(self): ... + def bgsave(self, schedule: bool = ...): ... + def client_kill(self, address): ... + def client_kill_filter( + self, + _id: Any | None = ..., + _type: Any | None = ..., + addr: Any | None = ..., + skipme: Any | None = ..., + laddr: Any | None = ..., + user: Any | None = ..., + ): ... + def client_info(self): ... + def client_list(self, _type: Any | None = ..., client_id=...): ... + def client_getname(self): ... + def client_reply(self, reply): ... + def client_id(self): ... + def client_trackinginfo(self): ... + def client_setname(self, name): ... + def client_unblock(self, client_id, error: bool = ...): ... + def client_pause(self, timeout): ... + def client_unpause(self): ... + def readwrite(self): ... + def readonly(self): ... + def config_get(self, pattern: str = ...): ... + def config_set(self, name, value): ... + def config_resetstat(self): ... + def config_rewrite(self): ... + def dbsize(self): ... + def debug_object(self, key): ... + def echo(self, value): ... + def flushall(self, asynchronous: bool = ...): ... + def flushdb(self, asynchronous: bool = ...): ... + def swapdb(self, first, second): ... + def info(self, section: Any | None = ...): ... + def lastsave(self): ... + def lolwut(self, *version_numbers): ... + def migrate( + self, host, port, keys, destination_db, timeout, copy: bool = ..., replace: bool = ..., auth: Any | None = ... + ): ... + def object(self, infotype, key): ... + def memory_doctor(self) -> None: ... + def memory_help(self) -> None: ... + def memory_stats(self): ... + def memory_malloc_stats(self): ... + def memory_usage(self, key, samples: Any | None = ...): ... + def memory_purge(self): ... + def ping(self): ... + def quit(self): ... + def save(self): ... + def shutdown(self, save: bool = ..., nosave: bool = ...) -> None: ... + def slaveof(self, host: Any | None = ..., port: Any | None = ...): ... + def slowlog_get(self, num: Any | None = ...): ... + def slowlog_len(self): ... + def slowlog_reset(self): ... + def time(self): ... + def wait(self, num_replicas, timeout): ... + def append(self, key, value): ... + def bitcount(self, key, start: Any | None = ..., end: Any | None = ...): ... + def bitfield(self, key, default_overflow: Any | None = ...): ... + def bitop(self, operation, dest, *keys): ... + def bitpos(self, key, bit, start: Any | None = ..., end: Any | None = ...): ... + def copy(self, source, destination, destination_db: Any | None = ..., replace: bool = ...): ... + def decr(self, name, amount: int = ...): ... + def decrby(self, name, amount: int = ...): ... + def delete(self, *names): ... + def __delitem__(self, name) -> None: ... + def dump(self, name): ... + def exists(self, *names): ... + __contains__: Any + def expire(self, name, time): ... + def expireat(self, name, when): ... + def get(self, name): ... + def getdel(self, name): ... + def getex( + self, + name, + ex: Any | None = ..., + px: Any | None = ..., + exat: Any | None = ..., + pxat: Any | None = ..., + persist: bool = ..., + ): ... + def __getitem__(self, name): ... + def getbit(self, name, offset): ... + def getrange(self, key, start, end): ... + def getset(self, name, value): ... + def incr(self, name, amount: int = ...): ... + def incrby(self, name, amount: int = ...): ... + def incrbyfloat(self, name, amount: float = ...): ... + def keys(self, pattern: str = ...): ... + def lmove(self, first_list, second_list, src: str = ..., dest: str = ...): ... + def blmove(self, first_list, second_list, timeout, src: str = ..., dest: str = ...): ... + def mget(self, keys, *args): ... + def mset(self, mapping): ... + def msetnx(self, mapping): ... + def move(self, name, db): ... + def persist(self, name): ... + def pexpire(self, name, time): ... + def pexpireat(self, name, when): ... + def psetex(self, name, time_ms, value): ... + def pttl(self, name): ... + def hrandfield(self, key, count: Any | None = ..., withvalues: bool = ...): ... + def randomkey(self): ... + def rename(self, src, dst): ... + def renamenx(self, src, dst): ... + def restore( + self, name, ttl, value, replace: bool = ..., absttl: bool = ..., idletime: Any | None = ..., frequency: Any | None = ... + ): ... + def set( + self, + name, + value, + ex: Any | None = ..., + px: Any | None = ..., + nx: bool = ..., + xx: bool = ..., + keepttl: bool = ..., + get: bool = ..., + exat: Any | None = ..., + pxat: Any | None = ..., + ): ... + def __setitem__(self, name, value) -> None: ... + def setbit(self, name, offset, value): ... + def setex(self, name, time, value): ... + def setnx(self, name, value): ... + def setrange(self, name, offset, value): ... + def stralgo( + self, + algo, + value1, + value2, + specific_argument: str = ..., + len: bool = ..., + idx: bool = ..., + minmatchlen: Any | None = ..., + withmatchlen: bool = ..., + ): ... + def strlen(self, name): ... + def substr(self, name, start, end: int = ...): ... + def touch(self, *args): ... + def ttl(self, name): ... + def type(self, name): ... + def watch(self, *names) -> None: ... + def unwatch(self) -> None: ... + def unlink(self, *names): ... + def blpop(self, keys, timeout: int = ...): ... + def brpop(self, keys, timeout: int = ...): ... + def brpoplpush(self, src, dst, timeout: int = ...): ... + def lindex(self, name, index): ... + def linsert(self, name, where, refvalue, value): ... + def llen(self, name): ... + def lpop(self, name, count: Any | None = ...): ... + def lpush(self, name, *values): ... + def lpushx(self, name, *values): ... + def lrange(self, name, start, end): ... + def lrem(self, name, count, value): ... + def lset(self, name, index, value): ... + def ltrim(self, name, start, end): ... + def rpop(self, name, count: Any | None = ...): ... + def rpoplpush(self, src, dst): ... + def rpush(self, name, *values): ... + def rpushx(self, name, value): ... + def lpos(self, name, value, rank: Any | None = ..., count: Any | None = ..., maxlen: Any | None = ...): ... + def sort( + self, + name, + start: Any | None = ..., + num: Any | None = ..., + by: Any | None = ..., + get: Any | None = ..., + desc: bool = ..., + alpha: bool = ..., + store: Any | None = ..., + groups: bool = ..., + ): ... + def scan(self, cursor: int = ..., match: Any | None = ..., count: Any | None = ..., _type: Any | None = ...): ... + def scan_iter(self, match: Any | None = ..., count: Any | None = ..., _type: Any | None = ...) -> None: ... + def sscan(self, name, cursor: int = ..., match: Any | None = ..., count: Any | None = ...): ... + def sscan_iter(self, name, match: Any | None = ..., count: Any | None = ...) -> None: ... + def hscan(self, name, cursor: int = ..., match: Any | None = ..., count: Any | None = ...): ... + def hscan_iter(self, name, match: Any | None = ..., count: Any | None = ...) -> None: ... + def zscan(self, name, cursor: int = ..., match: Any | None = ..., count: Any | None = ..., score_cast_func=...): ... + def zscan_iter(self, name, match: Any | None = ..., count: Any | None = ..., score_cast_func=...) -> None: ... + def sadd(self, name, *values): ... + def scard(self, name): ... + def sdiff(self, keys, *args): ... + def sdiffstore(self, dest, keys, *args): ... + def sinter(self, keys, *args): ... + def sinterstore(self, dest, keys, *args): ... + def sismember(self, name, value): ... + def smembers(self, name): ... + def smove(self, src, dst, value): ... + def spop(self, name, count: Any | None = ...): ... + def srandmember(self, name, number: Any | None = ...): ... + def srem(self, name, *values): ... + def sunion(self, keys, *args): ... + def sunionstore(self, dest, keys, *args): ... + def xack(self, name, groupname, *ids): ... + def xadd( + self, + name, + fields, + id: str = ..., + maxlen: Any | None = ..., + approximate: bool = ..., + nomkstream: bool = ..., + minid: Any | None = ..., + limit: Any | None = ..., + ): ... + def xautoclaim( + self, name, groupname, consumername, min_idle_time, start_id: int = ..., count: Any | None = ..., justid: bool = ... + ): ... + def xclaim( + self, + name, + groupname, + consumername, + min_idle_time, + message_ids, + idle: Any | None = ..., + time: Any | None = ..., + retrycount: Any | None = ..., + force: bool = ..., + justid: bool = ..., + ): ... + def xdel(self, name, *ids): ... + def xgroup_create(self, name, groupname, id: str = ..., mkstream: bool = ...): ... + def xgroup_delconsumer(self, name, groupname, consumername): ... + def xgroup_destroy(self, name, groupname): ... + def xgroup_createconsumer(self, name, groupname, consumername): ... + def xgroup_setid(self, name, groupname, id): ... + def xinfo_consumers(self, name, groupname): ... + def xinfo_groups(self, name): ... + def xinfo_stream(self, name): ... + def xlen(self, name): ... + def xpending(self, name, groupname): ... + def xpending_range(self, name, groupname, min, max, count, consumername: Any | None = ..., idle: Any | None = ...): ... + def xrange(self, name, min: str = ..., max: str = ..., count: Any | None = ...): ... + def xread(self, streams, count: Any | None = ..., block: Any | None = ...): ... + def xreadgroup( + self, groupname, consumername, streams, count: Any | None = ..., block: Any | None = ..., noack: bool = ... + ): ... + def xrevrange(self, name, max: str = ..., min: str = ..., count: Any | None = ...): ... + def xtrim( + self, name, maxlen: Any | None = ..., approximate: bool = ..., minid: Any | None = ..., limit: Any | None = ... + ): ... + def zadd( + self, + name, + mapping, + nx: bool = ..., + xx: bool = ..., + ch: bool = ..., + incr: bool = ..., + gt: Any | None = ..., + lt: Any | None = ..., + ): ... + def zcard(self, name): ... + def zcount(self, name, min, max): ... + def zdiff(self, keys, withscores: bool = ...): ... + def zdiffstore(self, dest, keys): ... + def zincrby(self, name, amount, value): ... + def zinter(self, keys, aggregate: Any | None = ..., withscores: bool = ...): ... + def zinterstore(self, dest, keys, aggregate: Any | None = ...): ... + def zlexcount(self, name, min, max): ... + def zpopmax(self, name, count: Any | None = ...): ... + def zpopmin(self, name, count: Any | None = ...): ... + def zrandmember(self, key, count: Any | None = ..., withscores: bool = ...): ... + def bzpopmax(self, keys, timeout: int = ...): ... + def bzpopmin(self, keys, timeout: int = ...): ... + def zrange(self, name, start, end, desc: bool = ..., withscores: bool = ..., score_cast_func=...): ... + def zrangestore(self, dest, name, start, end): ... + def zrangebylex(self, name, min, max, start: Any | None = ..., num: Any | None = ...): ... + def zrevrangebylex(self, name, max, min, start: Any | None = ..., num: Any | None = ...): ... + def zrangebyscore( + self, name, min, max, start: Any | None = ..., num: Any | None = ..., withscores: bool = ..., score_cast_func=... + ): ... + def zrank(self, name, value): ... + def zrem(self, name, *values): ... + def zremrangebylex(self, name, min, max): ... + def zremrangebyrank(self, name, min, max): ... + def zremrangebyscore(self, name, min, max): ... + def zrevrange(self, name, start, end, withscores: bool = ..., score_cast_func=...): ... + def zrevrangebyscore( + self, name, max, min, start: Any | None = ..., num: Any | None = ..., withscores: bool = ..., score_cast_func=... + ): ... + def zrevrank(self, name, value): ... + def zscore(self, name, value): ... + def zunion(self, keys, aggregate: Any | None = ..., withscores: bool = ...): ... + def zunionstore(self, dest, keys, aggregate: Any | None = ...): ... + def zmscore(self, key, members): ... + def pfadd(self, name, *values): ... + def pfcount(self, *sources): ... + def pfmerge(self, dest, *sources): ... + def hdel(self, name, *keys): ... + def hexists(self, name, key): ... + def hget(self, name, key): ... + def hgetall(self, name): ... + def hincrby(self, name, key, amount: int = ...): ... + def hincrbyfloat(self, name, key, amount: float = ...): ... + def hkeys(self, name): ... + def hlen(self, name): ... + def hset(self, name, key: Any | None = ..., value: Any | None = ..., mapping: Any | None = ...): ... + def hsetnx(self, name, key, value): ... + def hmset(self, name, mapping): ... + def hmget(self, name, keys, *args): ... + def hvals(self, name): ... + def hstrlen(self, name, key): ... + def publish(self, channel, message): ... + def pubsub_channels(self, pattern: str = ...): ... + def pubsub_numpat(self): ... + def pubsub_numsub(self, *args): ... + def cluster(self, cluster_arg, *args): ... + def eval(self, script, numkeys, *keys_and_args): ... + def evalsha(self, sha, numkeys, *keys_and_args): ... + def script_exists(self, *args): ... + def script_flush(self, sync_type: str = ...): ... + def script_kill(self): ... + def script_load(self, script): ... + def register_script(self, script): ... + def geoadd(self, name, *values): ... + def geodist(self, name, place1, place2, unit: Any | None = ...): ... + def geohash(self, name, *values): ... + def geopos(self, name, *values): ... + def georadius( + self, + name, + longitude, + latitude, + radius, + unit: Any | None = ..., + withdist: bool = ..., + withcoord: bool = ..., + withhash: bool = ..., + count: Any | None = ..., + sort: Any | None = ..., + store: Any | None = ..., + store_dist: Any | None = ..., + any: bool = ..., + ): ... + def georadiusbymember( + self, + name, + member, + radius, + unit: Any | None = ..., + withdist: bool = ..., + withcoord: bool = ..., + withhash: bool = ..., + count: Any | None = ..., + sort: Any | None = ..., + store: Any | None = ..., + store_dist: Any | None = ..., + any: bool = ..., + ): ... + def geosearch( + self, + name, + member: Any | None = ..., + longitude: Any | None = ..., + latitude: Any | None = ..., + unit: str = ..., + radius: Any | None = ..., + width: Any | None = ..., + height: Any | None = ..., + sort: Any | None = ..., + count: Any | None = ..., + any: bool = ..., + withcoord: bool = ..., + withdist: bool = ..., + withhash: bool = ..., + ): ... + def geosearchstore( + self, + dest, + name, + member: Any | None = ..., + longitude: Any | None = ..., + latitude: Any | None = ..., + unit: str = ..., + radius: Any | None = ..., + width: Any | None = ..., + height: Any | None = ..., + sort: Any | None = ..., + count: Any | None = ..., + any: bool = ..., + storedist: bool = ..., + ): ... + def module_load(self, path, *args): ... + def module_unload(self, name): ... + def module_list(self): ... + def command_info(self) -> None: ... + def command_count(self): ... + +class Script: + registered_client: Any + script: Any + sha: Any + def __init__(self, registered_client, script) -> None: ... + def __call__(self, keys=..., args=..., client: Any | None = ...): ... + +class BitFieldOperation: + client: Any + key: Any + def __init__(self, client, key, default_overflow: Any | None = ...) -> None: ... + operations: Any + def reset(self) -> None: ... + def overflow(self, overflow): ... + def incrby(self, fmt, offset, increment, overflow: Any | None = ...): ... + def get(self, fmt, offset): ... + def set(self, fmt, offset, value): ... + @property + def command(self): ... + def execute(self): ... + +class SentinelCommands: + def sentinel(self, *args) -> None: ... + def sentinel_get_master_addr_by_name(self, service_name): ... + def sentinel_master(self, service_name): ... + def sentinel_masters(self): ... + def sentinel_monitor(self, name, ip, port, quorum): ... + def sentinel_remove(self, name): ... + def sentinel_sentinels(self, service_name): ... + def sentinel_set(self, name, option, value): ... + def sentinel_slaves(self, service_name): ... + def sentinel_reset(self, pattern): ... + def sentinel_failover(self, new_master_name): ... + def sentinel_ckquorum(self, new_master_name): ... + def sentinel_flushconfig(self): ...