From cda4f2d9187d9d05c8835c4f8496cb425e993210 Mon Sep 17 00:00:00 2001 From: ben avrahami Date: Mon, 18 Jul 2022 18:04:11 +0300 Subject: [PATCH 01/11] added explicit typing to all async pipeline commands --- stubs/redis/redis/asyncio/client.pyi | 747 ++++++++++++++++++++++++++- 1 file changed, 741 insertions(+), 6 deletions(-) diff --git a/stubs/redis/redis/asyncio/client.pyi b/stubs/redis/redis/asyncio/client.pyi index 24b07973fbe6..7d6595fb0f9b 100644 --- a/stubs/redis/redis/asyncio/client.pyi +++ b/stubs/redis/redis/asyncio/client.pyi @@ -1,15 +1,16 @@ -from _typeshed import Self +from _typeshed import Self, Incomplete from collections.abc import AsyncIterator, Awaitable, Callable, Iterable, Mapping, MutableMapping -from typing import Any, ClassVar, Generic, NoReturn, Protocol -from typing_extensions import TypeAlias, TypedDict +from datetime import timedelta, datetime +from typing import Any, ClassVar, Generic, NoReturn, Protocol, Sequence, overload +from typing_extensions import TypeAlias, TypedDict, Literal from redis import RedisError from redis.asyncio.connection import ConnectCallbackT, Connection, ConnectionPool from redis.asyncio.lock import Lock from redis.asyncio.retry import Retry -from redis.client import AbstractRedis, _StrType +from redis.client import AbstractRedis, _StrType, _Key, _CommandOptions, _Value from redis.commands import AsyncCoreCommands, AsyncSentinelCommands, RedisModuleCommands -from redis.typing import ChannelT, EncodableT, KeyT +from redis.typing import ChannelT, EncodableT, KeyT, PatternT PubSubHandler: TypeAlias = Callable[[dict[str, str]], Awaitable[None]] @@ -169,7 +170,7 @@ PSWorkerThreadExcHandlerT: TypeAlias = PubsubWorkerExceptionHandler | AsyncPubsu CommandT: TypeAlias = tuple[tuple[str | bytes, ...], Mapping[str, Any]] CommandStackT: TypeAlias = list[CommandT] -class Pipeline(Redis[_StrType], Generic[_StrType]): +class Pipeline(Generic[_StrType]): UNWATCH_COMMANDS: ClassVar[set[str]] connection_pool: Any connection: Any @@ -205,3 +206,737 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): async def discard(self) -> None: ... async def watch(self, *names: KeyT) -> bool: ... async def unwatch(self) -> bool: ... + # region acl commands + def acl_cat(self, category: str | None = ..., **kwargs: _CommandOptions) -> Any: ... + def acl_deluser(self, *username: str, **kwargs: _CommandOptions) -> Any: ... + def acl_genpass(self, bits: int | None = ..., **kwargs: _CommandOptions) -> Any: ... + def acl_getuser(self, username: str, **kwargs: _CommandOptions) -> Any: ... + def acl_help(self, **kwargs: _CommandOptions)-> Any: ... + def acl_list(self, **kwargs: _CommandOptions)-> Any: ... + def acl_log(self, count: int | None = ..., **kwargs: _CommandOptions)-> Any: ... + def acl_log_reset(self, **kwargs: _CommandOptions)-> Any: ... + def acl_load(self, **kwargs: _CommandOptions)-> Any: ... + def acl_save(self, **kwargs: _CommandOptions)-> Any: ... + def acl_setuser( + self, + username: str, + enabled: bool = ..., + nopass: bool = ..., + passwords: Sequence[str] | None = ..., + hashed_passwords: Sequence[str] | None = ..., + categories: Sequence[str] | None = ..., + commands: Sequence[str] | None = ..., + keys: Sequence[str] | None = ..., + channels: Iterable[ChannelT] | None = ..., + selectors: Iterable[tuple[str, KeyT]] | None = ..., + reset: bool = ..., + reset_keys: bool = ..., + reset_passwords: bool = ..., + **kwargs: _CommandOptions, + ) -> Pipeline[_StrType]: ... + def acl_users(self, **kwargs: _CommandOptions) -> Any: ... + def acl_whoami(self, **kwargs: _CommandOptions) -> Any: ... + # endregion + # region cluster commands + def cluster(self, cluster_arg: str, *args, **kwargs: _CommandOptions) -> Any: ... + def readwrite(self, **kwargs: _CommandOptions) -> Any: ... + def readonly(self, **kwargs: _CommandOptions) -> Any: ... + # endregion + # region BasicKey commands + def append(self, key, value)->Any: ... + def bitcount(self, key: _Key, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... + def bitfield(self, key, default_overflow: Any | None = ...)->Any: ... + def bitop(self, operation, dest, *keys)->Any: ... + def bitpos(self, key: _Key, bit: int, start: int | None = ..., end: int | None = ..., mode: str | None = ...)->Any: ... + def copy(self, source, destination, destination_db: Any | None = ..., replace: bool = ...)->Any: ... + def decr(self, name, amount: int = ...) -> Any: ... + def decrby(self, name, amount: int = ...) -> Any: ... + def delete(self, *names: _Key) -> Any: ... + def dump(self, name: _Key) -> Any: ... + def exists(self, *names: _Key) -> Any: ... + def expire( + self, name: _Key, time: int | timedelta, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ... + ) -> Any: ... + def expireat(self, name, when, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ...) -> Any: ... + def get(self, name: _Key) -> Any: ... + def getdel(self, name: _Key) -> Any: ... + def getex( + self, + name, + ex: Any | None = ..., + px: Any | None = ..., + exat: Any | None = ..., + pxat: Any | None = ..., + persist: bool = ..., + ) -> Any: ... + def getbit(self, name: _Key, offset: int) -> Any: ... + def getrange(self, key, start, end) -> Any: ... + def getset(self, name, value) -> Any: ... + def incr(self, name: _Key, amount: int = ...) -> Any: ... + def incrby(self, name: _Key, amount: int = ...) -> Any: ... + def incrbyfloat(self, name: _Key, amount: float = ...) -> Any: ... + def keys(self, pattern: _Key = ..., **kwargs: _CommandOptions) -> Any: ... + def lmove( + self, first_list: _Key, second_list: _Key, src: Literal["LEFT", "RIGHT"] = ..., dest: Literal["LEFT", "RIGHT"] = ... + ) -> Any: ... + def blmove( + self, + first_list: _Key, + second_list: _Key, + timeout: float, + src: Literal["LEFT", "RIGHT"] = ..., + dest: Literal["LEFT", "RIGHT"] = ..., + ) -> Any: ... + def mget(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + def mset(self, mapping: Mapping[_Key, _Value]) -> Any: ... + def msetnx(self, mapping: Mapping[_Key, _Value]) -> Any: ... + def move(self, name: _Key, db: int) -> Any: ... + def persist(self, name: _Key) -> Any: ... + def pexpire( + self, name: _Key, time: int | timedelta, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ... + ) -> Any: ... + def pexpireat( + self, name: _Key, when: int | datetime, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ... + ) -> Any: ... + def psetex(self, name, time_ms, value) -> Any: ... + def pttl(self, name: _Key) -> Any: ... + def hrandfield(self, key, count: Any | None = ..., withvalues: bool = ...) -> Any: ... + def randomkey(self, **kwargs: _CommandOptions) -> Any: ... + def rename(self, src, dst) -> Any: ... + def renamenx(self, src, dst) -> Any: ... + def restore( + self, name, ttl, value, replace: bool = ..., absttl: bool = ..., idletime: Any | None = ..., frequency: Any | None = ... + ) -> Any: ... + def set( + self, + name: _Key, + value: _Value, + ex: None | int | timedelta = ..., + px: None | int | timedelta = ..., + nx: bool = ..., + xx: bool = ..., + keepttl: bool = ..., + get: bool = ..., + exat: Any | None = ..., + pxat: Any | None = ..., + ) -> Any: ... + def setbit(self, name: _Key, offset: int, value: int) -> Any: ... + def setex(self, name: _Key, time: int | timedelta, value: _Value) -> Any: ... + def setnx(self, name: _Key, value: _Value) -> Any: ... + def setrange(self, name, offset, value) -> Any: ... + def stralgo( + self, + algo, + value1, + value2, + specific_argument: str = ..., + len: bool = ..., + idx: bool = ..., + minmatchlen: Any | None = ..., + withmatchlen: bool = ..., + **kwargs: _CommandOptions, + ) -> Any: ... + def strlen(self, name) -> Any: ... + def substr(self, name, start, end: int = ...) -> Any: ... + def touch(self, *args) -> Any: ... + def ttl(self, name: _Key) -> Any: ... + def type(self, name) -> Any: ... + def unlink(self, *names: _Key) -> Any: ... + # endregion + # region hyperlog commands + def pfadd(self, name: _Key, *values: _Value) -> Any: ... + def pfcount(self, name: _Key) -> Any: ... + def pfmerge(self, dest: _Key, *sources: _Key) -> Any: ... + # endregion + # region hash commands + def hdel(self, name: _Key, *keys: _Key) -> Any: ... + def hexists(self, name: _Key, key: _Key) -> Any: ... + def hget(self, name: _Key, key: _Key) -> Any: ... + def hgetall(self, name: _Key) -> Any: ... + def hincrby(self, name: _Key, key: _Key, amount: int = ...) -> Any: ... + def hincrbyfloat(self, name: _Key, key: _Key, amount: float = ...) -> Any: ... + def hkeys(self, name: _Key) -> Any: ... + def hlen(self, name: _Key) -> Any: ... + @overload + def hset( + self, name: _Key, key: _Key, value: _Value, mapping: Mapping[_Key, _Value] | None = ..., items: Any | None = ... + ) -> Any: ... + @overload + def hset(self, name: _Key, key: None, value: None, mapping: Mapping[_Key, _Value], items: Any | None = ...) -> Any: ... + @overload + def hset(self, name: _Key, *, mapping: Mapping[_Key, _Value], items: Any | None = ...) -> Any: ... + def hsetnx(self, name: _Key, key: _Key, value: _Value) -> Any: ... + def hmset(self, name: _Key, mapping: Mapping[_Key, _Value]) -> Any: ... + def hmget(self, name: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + def hvals(self, name: _Key) -> Any: ... + def hstrlen(self, name, key) -> Any: ... + # endregion + # region geo commands + def geoadd(self, name, values, nx: bool = ..., xx: bool = ..., ch: bool = ...) -> Any: ... + def geodist(self, name, place1, place2, unit: Any | None = ...) -> Any: ... + def geohash(self, name, *values) -> Any: ... + def geopos(self, name, *values) -> Any: ... + 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 = ..., + ) -> Any: ... + 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 = ..., + ) -> Any: ... + 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 = ..., + ) -> Any: ... + 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 = ..., + ) -> Any: ... + # endregion + # region list commands + @overload + def blpop(self, keys: _Value | Iterable[_Value], timeout: Literal[0] | None = ...) -> Any: ... + @overload + def blpop(self, keys: _Value | Iterable[_Value], timeout: float) -> Any: ... + @overload + def brpop(self, keys: _Value | Iterable[_Value], timeout: Literal[0] | None = ...) -> Any: ... + @overload + def brpop(self, keys: _Value | Iterable[_Value], timeout: float) -> Any: ... + def brpoplpush(self, src, dst, timeout: int | None = ...) -> Any: ... + def lindex(self, name: _Key, index: int) -> Any: ... + def linsert( + self, name: _Key, where: Literal["BEFORE", "AFTER", "before", "after"], refvalue: _Value, value: _Value + ) -> Any: ... + def llen(self, name: _Key) -> Any: ... + def lpop(self, name, count: int | None = ...) -> Any: ... + def lpush(self, name: _Value, *values: _Value) -> Any: ... + def lpushx(self, name, value) -> Any: ... + def lrange(self, name: _Key, start: int, end: int) -> Any: ... + def lrem(self, name: _Key, count: int, value: _Value) -> Any: ... + def lset(self, name: _Key, index: int, value: _Value) -> Any: ... + def ltrim(self, name: _Key, start: int, end: int) -> Any: ... + def rpop(self, name, count: int | None = ...) -> Any: ... + def rpoplpush(self, src, dst) -> Any: ... + def rpush(self, name: _Value, *values: _Value) -> Any: ... + def rpushx(self, name, value) -> Any: ... + def lpos(self, name, value, rank: Any | None = ..., count: Any | None = ..., maxlen: Any | None = ...) -> Any: ... + @overload + def sort( + self, + name: _Key, + start: int | None = ..., + num: int | None = ..., + by: _Key | None = ..., + get: _Key | Sequence[_Key] | None = ..., + desc: bool = ..., + alpha: bool = ..., + store: None = ..., + groups: bool = ..., + ) -> list[_StrType]: ... + @overload + def sort( + self, + name: _Key, + start: int | None = ..., + num: int | None = ..., + by: _Key | None = ..., + get: _Key | Sequence[_Key] | None = ..., + desc: bool = ..., + alpha: bool = ..., + *, + store: _Key, + groups: bool = ..., + ) -> Any: ... + @overload + def sort( + self, + name: _Key, + start: int | None, + num: int | None, + by: _Key | None, + get: _Key | Sequence[_Key] | None, + desc: bool, + alpha: bool, + store: _Key, + groups: bool = ..., + ) -> Any: ... + # endregion + # region scan commands + def scan( + self, + cursor: int = ..., + match: _Key | None = ..., + count: int | None = ..., + _type: str | None = ..., + **kwargs: _CommandOptions, + ) -> Any: ... + def sscan( + self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ... + ) -> Any: ... + def hscan( + self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ... + ) -> Any: ... + @overload + def zscan( + self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ... + ) -> Any: ... + @overload + def zscan( + self, + name: _Key, + cursor: int = ..., + match: _Key | None = ..., + count: int | None = ..., + *, + score_cast_func: Callable[[_StrType], Any], + ) -> Any: ... + @overload + def zscan( + self, + name: _Key, + cursor: int, + match: _Key | None, + count: int | None, + score_cast_func: Callable[[_StrType], Any], + ) -> Any: ... + # endregion + # region set commands + def sadd(self, name: _Key, *values: _Value) -> Any: ... + def scard(self, name: _Key) -> Any: ... + def sdiff(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + def sdiffstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + def sinter(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + def sinterstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + def sismember(self, name: _Key, value: _Value) -> Any: ... + def smembers(self, name: _Key) -> Any: ... + def smismember(self, name, values, *args) -> Any: ... + def smove(self, src: _Key, dst: _Key, value: _Value) -> Any: ... + @overload + def spop(self, name: _Key, count: None = ...) -> Any: ... + @overload + def spop(self, name: _Key, count: int) -> Any: ... + @overload + def srandmember(self, name: _Key, number: None = ...) -> Any: ... + @overload + def srandmember(self, name: _Key, number: int) -> Any: ... + def srem(self, name: _Key, *values: _Value) -> Any: ... + def sunion(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + def sunionstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + # endregion + # region stream commands + def xack(self, name, groupname, *ids) -> Any: ... + def xadd( + self, + name, + fields, + id: str = ..., + maxlen=..., + approximate: bool = ..., + nomkstream: bool = ..., + minid: Any | None = ..., + limit: Any | None = ..., + ) -> Any: ... + def xautoclaim( + self, name, groupname, consumername, min_idle_time, start_id: int = ..., count: Any | None = ..., justid: bool = ... + ) -> Any: ... + def xclaim( + self, name, groupname, consumername, min_idle_time, message_ids, idle=..., time=..., retrycount=..., force=..., justid=... + ) -> Any: ... + def xdel(self, name, *ids) -> Any: ... + def xgroup_create(self, name, groupname, id: str = ..., mkstream: bool = ..., entries_read: int | None = ...) -> Any: ... + def xgroup_delconsumer(self, name, groupname, consumername) -> Any: ... + def xgroup_destroy(self, name, groupname) -> Any: ... + def xgroup_createconsumer(self, name, groupname, consumername) -> Any: ... + def xgroup_setid(self, name, groupname, id, entries_read: int | None = ...) -> Any: ... + def xinfo_consumers(self, name, groupname) -> Any: ... + def xinfo_groups(self, name) -> Any: ... + def xinfo_stream(self, name, full: bool = ...) -> Any: ... + def xlen(self, name: _Key) -> Any: ... + def xpending(self, name, groupname) -> Any: ... + def xpending_range( + self, name: _Key, groupname, min, max, count: int, consumername: Any | None = ..., idle: int | None = ... + ) -> Any: ... + def xrange(self, name, min: str = ..., max: str = ..., count: Any | None = ...) -> Any: ... + def xread(self, streams, count: Any | None = ..., block: Any | None = ...) -> Any: ... + def xreadgroup( + self, groupname, consumername, streams, count: Any | None = ..., block: Any | None = ..., noack: bool = ... + ) -> Any: ... + def xrevrange(self, name, max: str = ..., min: str = ..., count: Any | None = ...) -> Any: ... + def xtrim( + self, name, maxlen: int | None = ..., approximate: bool = ..., minid: Incomplete | None = ..., limit: int | None = ... + ) -> Any: ... + # endregion + # region sorted set commands + def zadd( + self, + name: _Key, + mapping: Mapping[_Key, _Value], + nx: bool = ..., + xx: bool = ..., + ch: bool = ..., + incr: bool = ..., + gt: Any | None = ..., + lt: Any | None = ..., + ) -> Any: ... + def zcard(self, name: _Key) -> Any: ... + def zcount(self, name: _Key, min: _Value, max: _Value) -> Any: ... + def zdiff(self, keys, withscores: bool = ...) -> Any: ... + def zdiffstore(self, dest, keys) -> Any: ... + def zincrby(self, name: _Key, amount: float, value: _Value) -> Any: ... + def zinter(self, keys, aggregate: Any | None = ..., withscores: bool = ...) -> Any: ... + def zinterstore(self, dest: _Key, keys: Iterable[_Key], aggregate: Literal["SUM", "MIN", "MAX"] | None = ...) -> Any: ... + def zlexcount(self, name: _Key, min: _Value, max: _Value) -> Any: ... + def zpopmax(self, name: _Key, count: int | None = ...) -> Any: ... + def zpopmin(self, name: _Key, count: int | None = ...) -> Any: ... + def zrandmember(self, key, count: Any | None = ..., withscores: bool = ...) -> Any: ... + @overload + def bzpopmax(self, keys: _Key | Iterable[_Key], timeout: Literal[0] = ...) -> Any: ... + @overload + def bzpopmax(self, keys: _Key | Iterable[_Key], timeout: float) -> Any: ... + @overload + def bzpopmin(self, keys: _Key | Iterable[_Key], timeout: Literal[0] = ...) -> Any: ... + @overload + def bzpopmin(self, keys: _Key | Iterable[_Key], timeout: float) -> Any: ... + @overload + def zrange( + self, + name: _Key, + start: int, + end: int, + desc: bool, + withscores: Literal[True], + score_cast_func: Callable[[_StrType], Any], + byscore: bool = ..., + bylex: bool = ..., + offset: int | None = ..., + num: int | None = ..., + ) -> Any: ... + @overload + def zrange( + self, + name: _Key, + start: int, + end: int, + desc: bool, + withscores: Literal[True], + score_cast_func: Callable[[_StrType], float] = ..., + byscore: bool = ..., + bylex: bool = ..., + offset: int | None = ..., + num: int | None = ..., + ) -> Any: ... + @overload + def zrange( + self, + name: _Key, + start: int, + end: int, + *, + withscores: Literal[True], + score_cast_func: Callable[[_StrType], None], + byscore: bool = ..., + bylex: bool = ..., + offset: int | None = ..., + num: int | None = ..., + ) -> Any: ... + @overload + def zrange( + self, + name: _Key, + start: int, + end: int, + *, + withscores: Literal[True], + score_cast_func: Callable[[_StrType], float] = ..., + byscore: bool = ..., + bylex: bool = ..., + offset: int | None = ..., + num: int | None = ..., + ) -> Any: ... + @overload + def zrange( + self, + name: _Key, + start: int, + end: int, + desc: bool = ..., + withscores: bool = ..., + score_cast_func: Callable[[_StrType], Any] = ..., + byscore: bool = ..., + bylex: bool = ..., + offset: int | None = ..., + num: int | None = ..., + ) -> Any: ... + @overload + def zrevrange( + self, + name: _Key, + start: int, + end: int, + withscores: Literal[True], + score_cast_func: Callable[[_StrType], None], + ) -> Any: ... + @overload + def zrevrange(self, name: _Key, start: int, end: int, withscores: Literal[True]) -> Any: ... + @overload + def zrevrange( + self, name: _Key, start: int, end: int, withscores: bool = ..., score_cast_func: Callable[[Any], Any] = ... + ) -> Any: ... + def zrangestore( + self, + dest, + name, + start, + end, + byscore: bool = ..., + bylex: bool = ..., + desc: bool = ..., + offset: Any | None = ..., + num: Any | None = ..., + ) -> Any: ... + def zrangebylex( + self, name: _Key, min: _Value, max: _Value, start: int | None = ..., num: int | None = ... + ) -> Any: ... + def zrevrangebylex( + self, name: _Key, max: _Value, min: _Value, start: int | None = ..., num: int | None = ... + ) -> Any: ... + @overload + def zrangebyscore( + self, + name: _Key, + min: _Value, + max: _Value, + start: int | None = ..., + num: int | None = ..., + *, + withscores: Literal[True], + score_cast_func: Callable[[_StrType], None], + ) -> Any: ... + @overload + def zrangebyscore( + self, name: _Key, min: _Value, max: _Value, start: int | None = ..., num: int | None = ..., *, withscores: Literal[True] + ) -> Any: ... + @overload + def zrangebyscore( + self, + name: _Key, + min: _Value, + max: _Value, + start: int | None = ..., + num: int | None = ..., + withscores: bool = ..., + score_cast_func: Callable[[_StrType], Any] = ..., + ) -> Any: ... + @overload + def zrevrangebyscore( + self, + name: _Key, + max: _Value, + min: _Value, + start: int | None = ..., + num: int | None = ..., + *, + withscores: Literal[True], + score_cast_func: Callable[[_StrType], Any], + ) -> Any: ... + @overload + def zrevrangebyscore( + self, name: _Key, max: _Value, min: _Value, start: int | None = ..., num: int | None = ..., *, withscores: Literal[True] + ) -> Any: ... + @overload + def zrevrangebyscore( + self, + name: _Key, + max: _Value, + min: _Value, + start: int | None = ..., + num: int | None = ..., + withscores: bool = ..., + score_cast_func: Callable[[_StrType], Any] = ..., + ) -> Any: ... + def zrank(self, name: _Key, value: _Value) -> Any: ... + def zrem(self, name: _Key, *values: _Value) -> Any: ... + def zremrangebylex(self, name: _Key, min: _Value, max: _Value) -> Any: ... + def zremrangebyrank(self, name: _Key, min: int, max: int) -> Any: ... + def zremrangebyscore(self, name: _Key, min: _Value, max: _Value) -> Any: ... + def zrevrank(self, name: _Key, value: _Value) -> Any: ... + def zscore(self, name: _Key, value: _Value) -> Any: ... + def zunion(self, keys, aggregate: Any | None = ..., withscores: bool = ...) -> Any: ... + def zunionstore(self, dest: _Key, keys: Iterable[_Key], aggregate: Literal["SUM", "MIN", "MAX"] | None = ...) -> Any: ... + def zmscore(self, key, members) -> Any: ... + # endregion + # region management commands + def bgrewriteaof(self, **kwargs: _CommandOptions) -> Any: ... + def bgsave(self, schedule: bool = ..., **kwargs: _CommandOptions) -> Any: ... + def role(self) -> Any: ... + def client_kill(self, address: str, **kwargs: _CommandOptions) -> Any: ... + def client_kill_filter( + self, + _id: Any | None = ..., + _type: Any | None = ..., + addr: Any | None = ..., + skipme: Any | None = ..., + laddr: Any | None = ..., + user: Any | None = ..., + **kwargs: _CommandOptions, + ) -> Any: ... + def client_info(self, **kwargs: _CommandOptions) -> Any: ... + def client_list( + self, _type: str | None = ..., client_id: list[str] = ..., **kwargs: _CommandOptions + ) -> Any: ... + def client_getname(self, **kwargs: _CommandOptions) -> Any: ... + def client_getredir(self, **kwargs: _CommandOptions) -> Any: ... + def client_reply(self, reply, **kwargs: _CommandOptions) -> Any: ... + def client_id(self, **kwargs: _CommandOptions) -> Any: ... + def client_tracking_on( + self, clientid: Any | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... + ) -> Any: ... + def client_tracking_off( + self, clientid: Any | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... + ) -> Any: ... + def client_tracking( + self, + on: bool = ..., + clientid: Any | None = ..., + prefix=..., + bcast: bool = ..., + optin: bool = ..., + optout: bool = ..., + noloop: bool = ..., + **kwargs: _CommandOptions, + ) -> Any: ... + def client_trackinginfo(self, **kwargs: _CommandOptions) -> Any: ... + def client_setname(self, name: str, **kwargs: _CommandOptions) -> Any: ... + def client_unblock(self, client_id, error: bool = ..., **kwargs: _CommandOptions) -> Any: ... + def client_pause(self, timeout, all: bool = ..., **kwargs: _CommandOptions) -> Any: ... + def client_unpause(self, **kwargs: _CommandOptions) -> Any: ... + def command(self, **kwargs: _CommandOptions) -> Any: ... + def command_info(self, **kwargs: _CommandOptions) -> Any: ... + def command_count(self, **kwargs: _CommandOptions) -> Any: ... + def config_get(self, pattern: PatternT = ..., *args: PatternT, **kwargs: _CommandOptions) -> Any: ... + def config_set(self, name: KeyT, value: EncodableT, *args: KeyT | EncodableT, **kwargs: _CommandOptions) -> Any: ... + def config_resetstat(self, **kwargs: _CommandOptions) -> Any: ... + def config_rewrite(self, **kwargs: _CommandOptions) -> Any: ... + def dbsize(self, **kwargs: _CommandOptions) -> Any: ... + def debug_object(self, key, **kwargs: _CommandOptions) -> Any: ... + def debug_segfault(self, **kwargs: _CommandOptions) -> Any: ... + def echo(self, value: _Value, **kwargs: _CommandOptions) -> Any: ... + def flushall(self, asynchronous: bool = ..., **kwargs: _CommandOptions) -> Any: ... + def flushdb(self, asynchronous: bool = ..., **kwargs: _CommandOptions) -> Any: ... + def sync(self) -> Any: ... + def psync(self, replicationid, offset) -> Any: ... + def swapdb(self, first, second, **kwargs: _CommandOptions) -> Any: ... + def select(self, index, **kwargs: _CommandOptions) -> Any: ... + def info(self, section: _Key | None = ..., *args: _Key, **kwargs: _CommandOptions) -> Any: ... + def lastsave(self, **kwargs: _CommandOptions) -> Any: ... + def lolwut(self, *version_numbers: _Value, **kwargs: _CommandOptions) -> Any: ... + def reset(self) -> Any: ... + def migrate( + self, + host, + port, + keys, + destination_db, + timeout, + copy: bool = ..., + replace: bool = ..., + auth: Any | None = ..., + **kwargs: _CommandOptions, + ) -> Any: ... + def object(self, infotype, key, **kwargs: _CommandOptions) -> Any: ... + def memory_doctor(self, **kwargs: _CommandOptions) -> Any: ... + def memory_help(self, **kwargs: _CommandOptions) -> Any: ... + def memory_stats(self, **kwargs: _CommandOptions) -> Any: ... + def memory_malloc_stats(self, **kwargs: _CommandOptions) -> Any: ... + def memory_usage(self, key, samples: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... + def memory_purge(self, **kwargs: _CommandOptions) -> Any: ... + def ping(self, **kwargs: _CommandOptions) -> Any: ... + def quit(self, **kwargs: _CommandOptions) -> Any: ... + def replicaof(self, *args, **kwargs: _CommandOptions) -> Any: ... + def save(self, **kwargs: _CommandOptions) -> Any: ... + def shutdown( + self, + save: bool = ..., + nosave: bool = ..., + now: bool = ..., + force: bool = ..., + abort: bool = ..., + **kwargs: _CommandOptions, + ) -> Any: ... + def slaveof(self, host: Any | None = ..., port: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... + def slowlog_get(self, num: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... + def slowlog_len(self, **kwargs: _CommandOptions) -> Any: ... + def slowlog_reset(self, **kwargs: _CommandOptions) -> Any: ... + def time(self, **kwargs: _CommandOptions) -> Any: ... + def wait(self, num_replicas, timeout, **kwargs: _CommandOptions) -> Any: ... + # endregion + # region module commands + def module_load(self, path, *args) -> Any: ... + def module_unload(self, name) -> Any: ... + def module_list(self) -> Any: ... + def command_getkeys(self, *args) -> Any: ... + # endregion + # region pubsub commands + def publish(self, channel: _Key, message: _Key, **kwargs: _CommandOptions) -> Any: ... + def pubsub_channels(self, pattern: _Key = ..., **kwargs: _CommandOptions) -> Any: ... + def pubsub_numpat(self, **kwargs: _CommandOptions) -> Any: ... + def pubsub_numsub(self, *args: _Key, **kwargs: _CommandOptions) -> Any: ... + # endregion + # region script commands + def eval(self, script, numkeys, *keys_and_args) -> Any: ... + def evalsha(self, sha, numkeys, *keys_and_args) -> Any: ... + def script_exists(self, *args) -> Any: ... + def script_debug(self, *args) -> Any: ... + def script_flush(self, sync_type: Any | None = ...) -> Any: ... + def script_kill(self) -> Any: ... + def script_load(self, script) -> Any: ... + def register_script(self, script: str | _StrType) -> Any: ... + # endregion \ No newline at end of file From d3f66fe95149309179a89ef6e1db3dde0ac7075c Mon Sep 17 00:00:00 2001 From: ben avrahami Date: Mon, 18 Jul 2022 18:05:11 +0300 Subject: [PATCH 02/11] added blank line --- stubs/redis/redis/asyncio/client.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/redis/redis/asyncio/client.pyi b/stubs/redis/redis/asyncio/client.pyi index 7d6595fb0f9b..17d1811f7980 100644 --- a/stubs/redis/redis/asyncio/client.pyi +++ b/stubs/redis/redis/asyncio/client.pyi @@ -939,4 +939,4 @@ class Pipeline(Generic[_StrType]): def script_kill(self) -> Any: ... def script_load(self, script) -> Any: ... def register_script(self, script: str | _StrType) -> Any: ... - # endregion \ No newline at end of file + # endregion From 78f4d2f6e02295f75e8e77d210c66bfe9ec6ffa0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 15:06:41 +0000 Subject: [PATCH 03/11] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/redis/redis/asyncio/client.pyi | 68 ++++++++++------------------ 1 file changed, 23 insertions(+), 45 deletions(-) diff --git a/stubs/redis/redis/asyncio/client.pyi b/stubs/redis/redis/asyncio/client.pyi index 17d1811f7980..e35c8db6b02c 100644 --- a/stubs/redis/redis/asyncio/client.pyi +++ b/stubs/redis/redis/asyncio/client.pyi @@ -1,14 +1,14 @@ -from _typeshed import Self, Incomplete +from _typeshed import Incomplete, Self from collections.abc import AsyncIterator, Awaitable, Callable, Iterable, Mapping, MutableMapping -from datetime import timedelta, datetime +from datetime import datetime, timedelta from typing import Any, ClassVar, Generic, NoReturn, Protocol, Sequence, overload -from typing_extensions import TypeAlias, TypedDict, Literal +from typing_extensions import Literal, TypeAlias, TypedDict from redis import RedisError from redis.asyncio.connection import ConnectCallbackT, Connection, ConnectionPool from redis.asyncio.lock import Lock from redis.asyncio.retry import Retry -from redis.client import AbstractRedis, _StrType, _Key, _CommandOptions, _Value +from redis.client import AbstractRedis, _CommandOptions, _Key, _StrType, _Value from redis.commands import AsyncCoreCommands, AsyncSentinelCommands, RedisModuleCommands from redis.typing import ChannelT, EncodableT, KeyT, PatternT @@ -211,12 +211,12 @@ class Pipeline(Generic[_StrType]): def acl_deluser(self, *username: str, **kwargs: _CommandOptions) -> Any: ... def acl_genpass(self, bits: int | None = ..., **kwargs: _CommandOptions) -> Any: ... def acl_getuser(self, username: str, **kwargs: _CommandOptions) -> Any: ... - def acl_help(self, **kwargs: _CommandOptions)-> Any: ... - def acl_list(self, **kwargs: _CommandOptions)-> Any: ... - def acl_log(self, count: int | None = ..., **kwargs: _CommandOptions)-> Any: ... - def acl_log_reset(self, **kwargs: _CommandOptions)-> Any: ... - def acl_load(self, **kwargs: _CommandOptions)-> Any: ... - def acl_save(self, **kwargs: _CommandOptions)-> Any: ... + def acl_help(self, **kwargs: _CommandOptions) -> Any: ... + def acl_list(self, **kwargs: _CommandOptions) -> Any: ... + def acl_log(self, count: int | None = ..., **kwargs: _CommandOptions) -> Any: ... + def acl_log_reset(self, **kwargs: _CommandOptions) -> Any: ... + def acl_load(self, **kwargs: _CommandOptions) -> Any: ... + def acl_save(self, **kwargs: _CommandOptions) -> Any: ... def acl_setuser( self, username: str, @@ -243,12 +243,12 @@ class Pipeline(Generic[_StrType]): def readonly(self, **kwargs: _CommandOptions) -> Any: ... # endregion # region BasicKey commands - def append(self, key, value)->Any: ... + def append(self, key, value) -> Any: ... def bitcount(self, key: _Key, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... - def bitfield(self, key, default_overflow: Any | None = ...)->Any: ... - def bitop(self, operation, dest, *keys)->Any: ... - def bitpos(self, key: _Key, bit: int, start: int | None = ..., end: int | None = ..., mode: str | None = ...)->Any: ... - def copy(self, source, destination, destination_db: Any | None = ..., replace: bool = ...)->Any: ... + def bitfield(self, key, default_overflow: Any | None = ...) -> Any: ... + def bitop(self, operation, dest, *keys) -> Any: ... + def bitpos(self, key: _Key, bit: int, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... + def copy(self, source, destination, destination_db: Any | None = ..., replace: bool = ...) -> Any: ... def decr(self, name, amount: int = ...) -> Any: ... def decrby(self, name, amount: int = ...) -> Any: ... def delete(self, *names: _Key) -> Any: ... @@ -518,16 +518,10 @@ class Pipeline(Generic[_StrType]): _type: str | None = ..., **kwargs: _CommandOptions, ) -> Any: ... - def sscan( - self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ... - ) -> Any: ... - def hscan( - self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ... - ) -> Any: ... + def sscan(self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ...) -> Any: ... + def hscan(self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ...) -> Any: ... @overload - def zscan( - self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ... - ) -> Any: ... + def zscan(self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ...) -> Any: ... @overload def zscan( self, @@ -540,12 +534,7 @@ class Pipeline(Generic[_StrType]): ) -> Any: ... @overload def zscan( - self, - name: _Key, - cursor: int, - match: _Key | None, - count: int | None, - score_cast_func: Callable[[_StrType], Any], + self, name: _Key, cursor: int, match: _Key | None, count: int | None, score_cast_func: Callable[[_StrType], Any] ) -> Any: ... # endregion # region set commands @@ -717,12 +706,7 @@ class Pipeline(Generic[_StrType]): ) -> Any: ... @overload def zrevrange( - self, - name: _Key, - start: int, - end: int, - withscores: Literal[True], - score_cast_func: Callable[[_StrType], None], + self, name: _Key, start: int, end: int, withscores: Literal[True], score_cast_func: Callable[[_StrType], None] ) -> Any: ... @overload def zrevrange(self, name: _Key, start: int, end: int, withscores: Literal[True]) -> Any: ... @@ -742,12 +726,8 @@ class Pipeline(Generic[_StrType]): offset: Any | None = ..., num: Any | None = ..., ) -> Any: ... - def zrangebylex( - self, name: _Key, min: _Value, max: _Value, start: int | None = ..., num: int | None = ... - ) -> Any: ... - def zrevrangebylex( - self, name: _Key, max: _Value, min: _Value, start: int | None = ..., num: int | None = ... - ) -> Any: ... + def zrangebylex(self, name: _Key, min: _Value, max: _Value, start: int | None = ..., num: int | None = ...) -> Any: ... + def zrevrangebylex(self, name: _Key, max: _Value, min: _Value, start: int | None = ..., num: int | None = ...) -> Any: ... @overload def zrangebyscore( self, @@ -829,9 +809,7 @@ class Pipeline(Generic[_StrType]): **kwargs: _CommandOptions, ) -> Any: ... def client_info(self, **kwargs: _CommandOptions) -> Any: ... - def client_list( - self, _type: str | None = ..., client_id: list[str] = ..., **kwargs: _CommandOptions - ) -> Any: ... + def client_list(self, _type: str | None = ..., client_id: list[str] = ..., **kwargs: _CommandOptions) -> Any: ... def client_getname(self, **kwargs: _CommandOptions) -> Any: ... def client_getredir(self, **kwargs: _CommandOptions) -> Any: ... def client_reply(self, reply, **kwargs: _CommandOptions) -> Any: ... From bee478cfd013878e50edc5d865e847bdc23f7ef8 Mon Sep 17 00:00:00 2001 From: ben avrahami Date: Tue, 19 Jul 2022 11:09:27 +0300 Subject: [PATCH 04/11] restored redis inheritance --- stubs/redis/redis/asyncio/client.pyi | 567 +++++++++++++-------------- 1 file changed, 283 insertions(+), 284 deletions(-) diff --git a/stubs/redis/redis/asyncio/client.pyi b/stubs/redis/redis/asyncio/client.pyi index e35c8db6b02c..87a72eb329d2 100644 --- a/stubs/redis/redis/asyncio/client.pyi +++ b/stubs/redis/redis/asyncio/client.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete, Self -from collections.abc import AsyncIterator, Awaitable, Callable, Iterable, Mapping, MutableMapping +from collections.abc import AsyncIterator, Awaitable, Callable, Iterable, Mapping, MutableMapping, Sequence from datetime import datetime, timedelta -from typing import Any, ClassVar, Generic, NoReturn, Protocol, Sequence, overload +from typing import Any, ClassVar, Generic, NoReturn, Protocol, overload from typing_extensions import Literal, TypeAlias, TypedDict from redis import RedisError @@ -170,7 +170,7 @@ PSWorkerThreadExcHandlerT: TypeAlias = PubsubWorkerExceptionHandler | AsyncPubsu CommandT: TypeAlias = tuple[tuple[str | bytes, ...], Mapping[str, Any]] CommandStackT: TypeAlias = list[CommandT] -class Pipeline(Generic[_StrType]): +class Pipeline(Redis[_StrType], Generic[_StrType]): UNWATCH_COMMANDS: ClassVar[set[str]] connection_pool: Any connection: Any @@ -207,16 +207,16 @@ class Pipeline(Generic[_StrType]): async def watch(self, *names: KeyT) -> bool: ... async def unwatch(self) -> bool: ... # region acl commands - def acl_cat(self, category: str | None = ..., **kwargs: _CommandOptions) -> Any: ... - def acl_deluser(self, *username: str, **kwargs: _CommandOptions) -> Any: ... - def acl_genpass(self, bits: int | None = ..., **kwargs: _CommandOptions) -> Any: ... - def acl_getuser(self, username: str, **kwargs: _CommandOptions) -> Any: ... - def acl_help(self, **kwargs: _CommandOptions) -> Any: ... - def acl_list(self, **kwargs: _CommandOptions) -> Any: ... - def acl_log(self, count: int | None = ..., **kwargs: _CommandOptions) -> Any: ... - def acl_log_reset(self, **kwargs: _CommandOptions) -> Any: ... - def acl_load(self, **kwargs: _CommandOptions) -> Any: ... - def acl_save(self, **kwargs: _CommandOptions) -> Any: ... + def acl_cat(self, category: str | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_deluser(self, *username: str, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_genpass(self, bits: int | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_getuser(self, username: str, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_help(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_list(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_log(self, count: int | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_log_reset(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_load(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_save(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def acl_setuser( self, username: str, @@ -233,34 +233,34 @@ class Pipeline(Generic[_StrType]): reset_keys: bool = ..., reset_passwords: bool = ..., **kwargs: _CommandOptions, - ) -> Pipeline[_StrType]: ... - def acl_users(self, **kwargs: _CommandOptions) -> Any: ... - def acl_whoami(self, **kwargs: _CommandOptions) -> Any: ... + ) -> Pipeline[_StrType]: ... # type: ignore[override] + def acl_users(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def acl_whoami(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] # endregion # region cluster commands - def cluster(self, cluster_arg: str, *args, **kwargs: _CommandOptions) -> Any: ... - def readwrite(self, **kwargs: _CommandOptions) -> Any: ... - def readonly(self, **kwargs: _CommandOptions) -> Any: ... + def cluster(self, cluster_arg: str, *args, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def readwrite(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def readonly(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] # endregion # region BasicKey commands - def append(self, key, value) -> Any: ... - def bitcount(self, key: _Key, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... - def bitfield(self, key, default_overflow: Any | None = ...) -> Any: ... - def bitop(self, operation, dest, *keys) -> Any: ... - def bitpos(self, key: _Key, bit: int, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... - def copy(self, source, destination, destination_db: Any | None = ..., replace: bool = ...) -> Any: ... - def decr(self, name, amount: int = ...) -> Any: ... - def decrby(self, name, amount: int = ...) -> Any: ... - def delete(self, *names: _Key) -> Any: ... - def dump(self, name: _Key) -> Any: ... - def exists(self, *names: _Key) -> Any: ... - def expire( + def append(self, key, value) -> Any: ... # type: ignore[override] + def bitcount(self, key: _Key, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... # type: ignore[override] + def bitfield(self, key, default_overflow: Any | None = ...) -> Any: ... # type: ignore[override] + def bitop(self, operation, dest, *keys) -> Any: ... # type: ignore[override] + def bitpos(self, key: _Key, bit: int, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... # type: ignore[override] + def copy(self, source, destination, destination_db: Any | None = ..., replace: bool = ...) -> Any: ... # type: ignore[override] + def decr(self, name, amount: int = ...) -> Any: ... # type: ignore[override] + def decrby(self, name, amount: int = ...) -> Any: ... # type: ignore[override] + def delete(self, *names: _Key) -> Any: ... # type: ignore[override] + def dump(self, name: _Key) -> Any: ... # type: ignore[override] + def exists(self, *names: _Key) -> Any: ... # type: ignore[override] + def expire( # type: ignore[override] self, name: _Key, time: int | timedelta, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ... ) -> Any: ... - def expireat(self, name, when, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ...) -> Any: ... - def get(self, name: _Key) -> Any: ... - def getdel(self, name: _Key) -> Any: ... - def getex( + def expireat(self, name, when, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ...) -> Any: ... # type: ignore[override] + def get(self, name: _Key) -> Any: ... # type: ignore[override] + def getdel(self, name: _Key) -> Any: ... # type: ignore[override] + def getex( # type: ignore[override] self, name, ex: Any | None = ..., @@ -269,17 +269,17 @@ class Pipeline(Generic[_StrType]): pxat: Any | None = ..., persist: bool = ..., ) -> Any: ... - def getbit(self, name: _Key, offset: int) -> Any: ... - def getrange(self, key, start, end) -> Any: ... - def getset(self, name, value) -> Any: ... - def incr(self, name: _Key, amount: int = ...) -> Any: ... - def incrby(self, name: _Key, amount: int = ...) -> Any: ... - def incrbyfloat(self, name: _Key, amount: float = ...) -> Any: ... - def keys(self, pattern: _Key = ..., **kwargs: _CommandOptions) -> Any: ... - def lmove( + def getbit(self, name: _Key, offset: int) -> Any: ... # type: ignore[override] + def getrange(self, key, start, end) -> Any: ... # type: ignore[override] + def getset(self, name, value) -> Any: ... # type: ignore[override] + def incr(self, name: _Key, amount: int = ...) -> Any: ... # type: ignore[override] + def incrby(self, name: _Key, amount: int = ...) -> Any: ... # type: ignore[override] + def incrbyfloat(self, name: _Key, amount: float = ...) -> Any: ... # type: ignore[override] + def keys(self, pattern: _Key = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def lmove( # type: ignore[override] self, first_list: _Key, second_list: _Key, src: Literal["LEFT", "RIGHT"] = ..., dest: Literal["LEFT", "RIGHT"] = ... ) -> Any: ... - def blmove( + def blmove( # type: ignore[override] self, first_list: _Key, second_list: _Key, @@ -287,27 +287,27 @@ class Pipeline(Generic[_StrType]): src: Literal["LEFT", "RIGHT"] = ..., dest: Literal["LEFT", "RIGHT"] = ..., ) -> Any: ... - def mget(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... - def mset(self, mapping: Mapping[_Key, _Value]) -> Any: ... - def msetnx(self, mapping: Mapping[_Key, _Value]) -> Any: ... - def move(self, name: _Key, db: int) -> Any: ... - def persist(self, name: _Key) -> Any: ... - def pexpire( + def mget(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] + def mset(self, mapping: Mapping[_Key, _Value]) -> Any: ... # type: ignore[override] + def msetnx(self, mapping: Mapping[_Key, _Value]) -> Any: ... # type: ignore[override] + def move(self, name: _Key, db: int) -> Any: ... # type: ignore[override] + def persist(self, name: _Key) -> Any: ... # type: ignore[override] + def pexpire( # type: ignore[override] self, name: _Key, time: int | timedelta, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ... ) -> Any: ... - def pexpireat( + def pexpireat( # type: ignore[override] self, name: _Key, when: int | datetime, nx: bool = ..., xx: bool = ..., gt: bool = ..., lt: bool = ... ) -> Any: ... - def psetex(self, name, time_ms, value) -> Any: ... - def pttl(self, name: _Key) -> Any: ... - def hrandfield(self, key, count: Any | None = ..., withvalues: bool = ...) -> Any: ... - def randomkey(self, **kwargs: _CommandOptions) -> Any: ... - def rename(self, src, dst) -> Any: ... - def renamenx(self, src, dst) -> Any: ... - def restore( + def psetex(self, name, time_ms, value) -> Any: ... # type: ignore[override] + def pttl(self, name: _Key) -> Any: ... # type: ignore[override] + def hrandfield(self, key, count: Any | None = ..., withvalues: bool = ...) -> Any: ... # type: ignore[override] + def randomkey(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def rename(self, src, dst) -> Any: ... # type: ignore[override] + def renamenx(self, src, dst) -> Any: ... # type: ignore[override] + def restore( # type: ignore[override] self, name, ttl, value, replace: bool = ..., absttl: bool = ..., idletime: Any | None = ..., frequency: Any | None = ... ) -> Any: ... - def set( + def set( # type: ignore[override] self, name: _Key, value: _Value, @@ -320,11 +320,11 @@ class Pipeline(Generic[_StrType]): exat: Any | None = ..., pxat: Any | None = ..., ) -> Any: ... - def setbit(self, name: _Key, offset: int, value: int) -> Any: ... - def setex(self, name: _Key, time: int | timedelta, value: _Value) -> Any: ... - def setnx(self, name: _Key, value: _Value) -> Any: ... - def setrange(self, name, offset, value) -> Any: ... - def stralgo( + def setbit(self, name: _Key, offset: int, value: int) -> Any: ... # type: ignore[override] + def setex(self, name: _Key, time: int | timedelta, value: _Value) -> Any: ... # type: ignore[override] + def setnx(self, name: _Key, value: _Value) -> Any: ... # type: ignore[override] + def setrange(self, name, offset, value) -> Any: ... # type: ignore[override] + def stralgo( # type: ignore[override] self, algo, value1, @@ -336,47 +336,47 @@ class Pipeline(Generic[_StrType]): withmatchlen: bool = ..., **kwargs: _CommandOptions, ) -> Any: ... - def strlen(self, name) -> Any: ... - def substr(self, name, start, end: int = ...) -> Any: ... - def touch(self, *args) -> Any: ... - def ttl(self, name: _Key) -> Any: ... - def type(self, name) -> Any: ... - def unlink(self, *names: _Key) -> Any: ... + def strlen(self, name) -> Any: ... # type: ignore[override] + def substr(self, name, start, end: int = ...) -> Any: ... # type: ignore[override] + def touch(self, *args) -> Any: ... # type: ignore[override] + def ttl(self, name: _Key) -> Any: ... # type: ignore[override] + def type(self, name) -> Any: ... # type: ignore[override] + def unlink(self, *names: _Key) -> Any: ... # type: ignore[override] # endregion # region hyperlog commands - def pfadd(self, name: _Key, *values: _Value) -> Any: ... - def pfcount(self, name: _Key) -> Any: ... - def pfmerge(self, dest: _Key, *sources: _Key) -> Any: ... + def pfadd(self, name: _Key, *values: _Value) -> Any: ... # type: ignore[override] + def pfcount(self, name: _Key) -> Any: ... # type: ignore[override] + def pfmerge(self, dest: _Key, *sources: _Key) -> Any: ... # type: ignore[override] # endregion # region hash commands - def hdel(self, name: _Key, *keys: _Key) -> Any: ... - def hexists(self, name: _Key, key: _Key) -> Any: ... - def hget(self, name: _Key, key: _Key) -> Any: ... - def hgetall(self, name: _Key) -> Any: ... - def hincrby(self, name: _Key, key: _Key, amount: int = ...) -> Any: ... - def hincrbyfloat(self, name: _Key, key: _Key, amount: float = ...) -> Any: ... - def hkeys(self, name: _Key) -> Any: ... - def hlen(self, name: _Key) -> Any: ... - @overload - def hset( + def hdel(self, name: _Key, *keys: _Key) -> Any: ... # type: ignore[override] + def hexists(self, name: _Key, key: _Key) -> Any: ... # type: ignore[override] + def hget(self, name: _Key, key: _Key) -> Any: ... # type: ignore[override] + def hgetall(self, name: _Key) -> Any: ... # type: ignore[override] + def hincrby(self, name: _Key, key: _Key, amount: int = ...) -> Any: ... # type: ignore[override] + def hincrbyfloat(self, name: _Key, key: _Key, amount: float = ...) -> Any: ... # type: ignore[override] + def hkeys(self, name: _Key) -> Any: ... # type: ignore[override] + def hlen(self, name: _Key) -> Any: ... # type: ignore[override] + @overload + def hset( # type: ignore[override] self, name: _Key, key: _Key, value: _Value, mapping: Mapping[_Key, _Value] | None = ..., items: Any | None = ... ) -> Any: ... @overload - def hset(self, name: _Key, key: None, value: None, mapping: Mapping[_Key, _Value], items: Any | None = ...) -> Any: ... + def hset(self, name: _Key, key: None, value: None, mapping: Mapping[_Key, _Value], items: Any | None = ...) -> Any: ... # type: ignore[override] @overload - def hset(self, name: _Key, *, mapping: Mapping[_Key, _Value], items: Any | None = ...) -> Any: ... - def hsetnx(self, name: _Key, key: _Key, value: _Value) -> Any: ... - def hmset(self, name: _Key, mapping: Mapping[_Key, _Value]) -> Any: ... - def hmget(self, name: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... - def hvals(self, name: _Key) -> Any: ... - def hstrlen(self, name, key) -> Any: ... + def hset(self, name: _Key, *, mapping: Mapping[_Key, _Value], items: Any | None = ...) -> Any: ... # type: ignore[override] + def hsetnx(self, name: _Key, key: _Key, value: _Value) -> Any: ... # type: ignore[override] + def hmset(self, name: _Key, mapping: Mapping[_Key, _Value]) -> Any: ... # type: ignore[override] + def hmget(self, name: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] + def hvals(self, name: _Key) -> Any: ... # type: ignore[override] + def hstrlen(self, name, key) -> Any: ... # type: ignore[override] # endregion # region geo commands - def geoadd(self, name, values, nx: bool = ..., xx: bool = ..., ch: bool = ...) -> Any: ... - def geodist(self, name, place1, place2, unit: Any | None = ...) -> Any: ... - def geohash(self, name, *values) -> Any: ... - def geopos(self, name, *values) -> Any: ... - def georadius( + def geoadd(self, name, values, nx: bool = ..., xx: bool = ..., ch: bool = ...) -> Any: ... # type: ignore[override] + def geodist(self, name, place1, place2, unit: Any | None = ...) -> Any: ... # type: ignore[override] + def geohash(self, name, *values) -> Any: ... # type: ignore[override] + def geopos(self, name, *values) -> Any: ... # type: ignore[override] + def georadius( # type: ignore[override] self, name, longitude, @@ -392,7 +392,7 @@ class Pipeline(Generic[_StrType]): store_dist: Any | None = ..., any: bool = ..., ) -> Any: ... - def georadiusbymember( + def georadiusbymember( # type: ignore[override] self, name, member, @@ -407,7 +407,7 @@ class Pipeline(Generic[_StrType]): store_dist: Any | None = ..., any: bool = ..., ) -> Any: ... - def geosearch( + def geosearch( # type: ignore[override] self, name, member: Any | None = ..., @@ -424,7 +424,7 @@ class Pipeline(Generic[_StrType]): withdist: bool = ..., withhash: bool = ..., ) -> Any: ... - def geosearchstore( + def geosearchstore( # type: ignore[override] self, dest, name, @@ -443,32 +443,32 @@ class Pipeline(Generic[_StrType]): # endregion # region list commands @overload - def blpop(self, keys: _Value | Iterable[_Value], timeout: Literal[0] | None = ...) -> Any: ... + def blpop(self, keys: _Value | Iterable[_Value], timeout: Literal[0] | None = ...) -> Any: ... # type: ignore[override] @overload - def blpop(self, keys: _Value | Iterable[_Value], timeout: float) -> Any: ... + def blpop(self, keys: _Value | Iterable[_Value], timeout: float) -> Any: ... # type: ignore[override] @overload - def brpop(self, keys: _Value | Iterable[_Value], timeout: Literal[0] | None = ...) -> Any: ... + def brpop(self, keys: _Value | Iterable[_Value], timeout: Literal[0] | None = ...) -> Any: ... # type: ignore[override] @overload - def brpop(self, keys: _Value | Iterable[_Value], timeout: float) -> Any: ... - def brpoplpush(self, src, dst, timeout: int | None = ...) -> Any: ... - def lindex(self, name: _Key, index: int) -> Any: ... - def linsert( + def brpop(self, keys: _Value | Iterable[_Value], timeout: float) -> Any: ... # type: ignore[override] + def brpoplpush(self, src, dst, timeout: int | None = ...) -> Any: ... # type: ignore[override] + def lindex(self, name: _Key, index: int) -> Any: ... # type: ignore[override] + def linsert( # type: ignore[override] self, name: _Key, where: Literal["BEFORE", "AFTER", "before", "after"], refvalue: _Value, value: _Value ) -> Any: ... - def llen(self, name: _Key) -> Any: ... - def lpop(self, name, count: int | None = ...) -> Any: ... - def lpush(self, name: _Value, *values: _Value) -> Any: ... - def lpushx(self, name, value) -> Any: ... - def lrange(self, name: _Key, start: int, end: int) -> Any: ... - def lrem(self, name: _Key, count: int, value: _Value) -> Any: ... - def lset(self, name: _Key, index: int, value: _Value) -> Any: ... - def ltrim(self, name: _Key, start: int, end: int) -> Any: ... - def rpop(self, name, count: int | None = ...) -> Any: ... - def rpoplpush(self, src, dst) -> Any: ... - def rpush(self, name: _Value, *values: _Value) -> Any: ... - def rpushx(self, name, value) -> Any: ... - def lpos(self, name, value, rank: Any | None = ..., count: Any | None = ..., maxlen: Any | None = ...) -> Any: ... - @overload + def llen(self, name: _Key) -> Any: ... # type: ignore[override] + def lpop(self, name, count: int | None = ...) -> Any: ... # type: ignore[override] + def lpush(self, name: _Value, *values: _Value) -> Any: ... # type: ignore[override] + def lpushx(self, name, value) -> Any: ... # type: ignore[override] + def lrange(self, name: _Key, start: int, end: int) -> Any: ... # type: ignore[override] + def lrem(self, name: _Key, count: int, value: _Value) -> Any: ... # type: ignore[override] + def lset(self, name: _Key, index: int, value: _Value) -> Any: ... # type: ignore[override] + def ltrim(self, name: _Key, start: int, end: int) -> Any: ... # type: ignore[override] + def rpop(self, name, count: int | None = ...) -> Any: ... # type: ignore[override] + def rpoplpush(self, src, dst) -> Any: ... # type: ignore[override] + def rpush(self, name: _Value, *values: _Value) -> Any: ... # type: ignore[override] + def rpushx(self, name, value) -> Any: ... # type: ignore[override] + def lpos(self, name, value, rank: Any | None = ..., count: Any | None = ..., maxlen: Any | None = ...) -> Any: ... # type: ignore[override] + @overload # type: ignore[override] def sort( self, name: _Key, @@ -481,7 +481,7 @@ class Pipeline(Generic[_StrType]): store: None = ..., groups: bool = ..., ) -> list[_StrType]: ... - @overload + @overload # type: ignore[override] def sort( self, name: _Key, @@ -495,7 +495,7 @@ class Pipeline(Generic[_StrType]): store: _Key, groups: bool = ..., ) -> Any: ... - @overload + @overload # type: ignore[override] def sort( self, name: _Key, @@ -510,7 +510,7 @@ class Pipeline(Generic[_StrType]): ) -> Any: ... # endregion # region scan commands - def scan( + def scan( # type: ignore[override] self, cursor: int = ..., match: _Key | None = ..., @@ -518,11 +518,11 @@ class Pipeline(Generic[_StrType]): _type: str | None = ..., **kwargs: _CommandOptions, ) -> Any: ... - def sscan(self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ...) -> Any: ... - def hscan(self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ...) -> Any: ... - @overload + def sscan(self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ...) -> Any: ... # type: ignore[override] + def hscan(self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ...) -> Any: ... # type: ignore[override] + @overload # type: ignore[override] def zscan(self, name: _Key, cursor: int = ..., match: _Key | None = ..., count: int | None = ...) -> Any: ... - @overload + @overload # type: ignore[override] def zscan( self, name: _Key, @@ -532,37 +532,37 @@ class Pipeline(Generic[_StrType]): *, score_cast_func: Callable[[_StrType], Any], ) -> Any: ... - @overload + @overload # type: ignore[override] def zscan( self, name: _Key, cursor: int, match: _Key | None, count: int | None, score_cast_func: Callable[[_StrType], Any] ) -> Any: ... # endregion # region set commands - def sadd(self, name: _Key, *values: _Value) -> Any: ... - def scard(self, name: _Key) -> Any: ... - def sdiff(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... - def sdiffstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... - def sinter(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... - def sinterstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... - def sismember(self, name: _Key, value: _Value) -> Any: ... - def smembers(self, name: _Key) -> Any: ... - def smismember(self, name, values, *args) -> Any: ... - def smove(self, src: _Key, dst: _Key, value: _Value) -> Any: ... - @overload + def sadd(self, name: _Key, *values: _Value) -> Any: ... # type: ignore[override] + def scard(self, name: _Key) -> Any: ... # type: ignore[override] + def sdiff(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] + def sdiffstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] + def sinter(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] + def sinterstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] + def sismember(self, name: _Key, value: _Value) -> Any: ... # type: ignore[override] + def smembers(self, name: _Key) -> Any: ... # type: ignore[override] + def smismember(self, name, values, *args) -> Any: ... # type: ignore[override] + def smove(self, src: _Key, dst: _Key, value: _Value) -> Any: ... # type: ignore[override] + @overload # type: ignore[override] def spop(self, name: _Key, count: None = ...) -> Any: ... - @overload + @overload # type: ignore[override] def spop(self, name: _Key, count: int) -> Any: ... - @overload + @overload # type: ignore[override] def srandmember(self, name: _Key, number: None = ...) -> Any: ... - @overload + @overload # type: ignore[override] def srandmember(self, name: _Key, number: int) -> Any: ... - def srem(self, name: _Key, *values: _Value) -> Any: ... - def sunion(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... - def sunionstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... + def srem(self, name: _Key, *values: _Value) -> Any: ... # type: ignore[override] + def sunion(self, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] + def sunionstore(self, dest: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] # endregion # region stream commands - def xack(self, name, groupname, *ids) -> Any: ... - def xadd( + def xack(self, name, groupname, *ids) -> Any: ... # type: ignore[override] + def xadd( # type: ignore[override] self, name, fields, @@ -573,38 +573,38 @@ class Pipeline(Generic[_StrType]): minid: Any | None = ..., limit: Any | None = ..., ) -> Any: ... - def xautoclaim( + def xautoclaim( # type: ignore[override] self, name, groupname, consumername, min_idle_time, start_id: int = ..., count: Any | None = ..., justid: bool = ... ) -> Any: ... - def xclaim( + def xclaim( # type: ignore[override] self, name, groupname, consumername, min_idle_time, message_ids, idle=..., time=..., retrycount=..., force=..., justid=... ) -> Any: ... - def xdel(self, name, *ids) -> Any: ... - def xgroup_create(self, name, groupname, id: str = ..., mkstream: bool = ..., entries_read: int | None = ...) -> Any: ... - def xgroup_delconsumer(self, name, groupname, consumername) -> Any: ... - def xgroup_destroy(self, name, groupname) -> Any: ... - def xgroup_createconsumer(self, name, groupname, consumername) -> Any: ... - def xgroup_setid(self, name, groupname, id, entries_read: int | None = ...) -> Any: ... - def xinfo_consumers(self, name, groupname) -> Any: ... - def xinfo_groups(self, name) -> Any: ... - def xinfo_stream(self, name, full: bool = ...) -> Any: ... - def xlen(self, name: _Key) -> Any: ... - def xpending(self, name, groupname) -> Any: ... - def xpending_range( + def xdel(self, name, *ids) -> Any: ... # type: ignore[override] + def xgroup_create(self, name, groupname, id: str = ..., mkstream: bool = ..., entries_read: int | None = ...) -> Any: ... # type: ignore[override] + def xgroup_delconsumer(self, name, groupname, consumername) -> Any: ... # type: ignore[override] + def xgroup_destroy(self, name, groupname) -> Any: ... # type: ignore[override] + def xgroup_createconsumer(self, name, groupname, consumername) -> Any: ... # type: ignore[override] + def xgroup_setid(self, name, groupname, id, entries_read: int | None = ...) -> Any: ... # type: ignore[override] + def xinfo_consumers(self, name, groupname) -> Any: ... # type: ignore[override] + def xinfo_groups(self, name) -> Any: ... # type: ignore[override] + def xinfo_stream(self, name, full: bool = ...) -> Any: ... # type: ignore[override] + def xlen(self, name: _Key) -> Any: ... # type: ignore[override] + def xpending(self, name, groupname) -> Any: ... # type: ignore[override] + def xpending_range( # type: ignore[override] self, name: _Key, groupname, min, max, count: int, consumername: Any | None = ..., idle: int | None = ... ) -> Any: ... - def xrange(self, name, min: str = ..., max: str = ..., count: Any | None = ...) -> Any: ... - def xread(self, streams, count: Any | None = ..., block: Any | None = ...) -> Any: ... - def xreadgroup( + def xrange(self, name, min: str = ..., max: str = ..., count: Any | None = ...) -> Any: ... # type: ignore[override] + def xread(self, streams, count: Any | None = ..., block: Any | None = ...) -> Any: ... # type: ignore[override] + def xreadgroup( # type: ignore[override] self, groupname, consumername, streams, count: Any | None = ..., block: Any | None = ..., noack: bool = ... ) -> Any: ... - def xrevrange(self, name, max: str = ..., min: str = ..., count: Any | None = ...) -> Any: ... - def xtrim( + def xrevrange(self, name, max: str = ..., min: str = ..., count: Any | None = ...) -> Any: ... # type: ignore[override] + def xtrim( # type: ignore[override] self, name, maxlen: int | None = ..., approximate: bool = ..., minid: Incomplete | None = ..., limit: int | None = ... ) -> Any: ... # endregion # region sorted set commands - def zadd( + def zadd( # type: ignore[override] self, name: _Key, mapping: Mapping[_Key, _Value], @@ -615,26 +615,26 @@ class Pipeline(Generic[_StrType]): gt: Any | None = ..., lt: Any | None = ..., ) -> Any: ... - def zcard(self, name: _Key) -> Any: ... - def zcount(self, name: _Key, min: _Value, max: _Value) -> Any: ... - def zdiff(self, keys, withscores: bool = ...) -> Any: ... - def zdiffstore(self, dest, keys) -> Any: ... - def zincrby(self, name: _Key, amount: float, value: _Value) -> Any: ... - def zinter(self, keys, aggregate: Any | None = ..., withscores: bool = ...) -> Any: ... - def zinterstore(self, dest: _Key, keys: Iterable[_Key], aggregate: Literal["SUM", "MIN", "MAX"] | None = ...) -> Any: ... - def zlexcount(self, name: _Key, min: _Value, max: _Value) -> Any: ... - def zpopmax(self, name: _Key, count: int | None = ...) -> Any: ... - def zpopmin(self, name: _Key, count: int | None = ...) -> Any: ... - def zrandmember(self, key, count: Any | None = ..., withscores: bool = ...) -> Any: ... - @overload + def zcard(self, name: _Key) -> Any: ... # type: ignore[override] + def zcount(self, name: _Key, min: _Value, max: _Value) -> Any: ... # type: ignore[override] + def zdiff(self, keys, withscores: bool = ...) -> Any: ... # type: ignore[override] + def zdiffstore(self, dest, keys) -> Any: ... # type: ignore[override] + def zincrby(self, name: _Key, amount: float, value: _Value) -> Any: ... # type: ignore[override] + def zinter(self, keys, aggregate: Any | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] + def zinterstore(self, dest: _Key, keys: Iterable[_Key], aggregate: Literal["SUM", "MIN", "MAX"] | None = ...) -> Any: ... # type: ignore[override] + def zlexcount(self, name: _Key, min: _Value, max: _Value) -> Any: ... # type: ignore[override] + def zpopmax(self, name: _Key, count: int | None = ...) -> Any: ... # type: ignore[override] + def zpopmin(self, name: _Key, count: int | None = ...) -> Any: ... # type: ignore[override] + def zrandmember(self, key, count: Any | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] + @overload # type: ignore[override] def bzpopmax(self, keys: _Key | Iterable[_Key], timeout: Literal[0] = ...) -> Any: ... - @overload + @overload # type: ignore[override] def bzpopmax(self, keys: _Key | Iterable[_Key], timeout: float) -> Any: ... - @overload + @overload # type: ignore[override] def bzpopmin(self, keys: _Key | Iterable[_Key], timeout: Literal[0] = ...) -> Any: ... - @overload + @overload # type: ignore[override] def bzpopmin(self, keys: _Key | Iterable[_Key], timeout: float) -> Any: ... - @overload + @overload # type: ignore[override] def zrange( self, name: _Key, @@ -647,8 +647,8 @@ class Pipeline(Generic[_StrType]): bylex: bool = ..., offset: int | None = ..., num: int | None = ..., - ) -> Any: ... - @overload + ) -> Any: ... + @overload # type: ignore[override] def zrange( self, name: _Key, @@ -662,7 +662,7 @@ class Pipeline(Generic[_StrType]): offset: int | None = ..., num: int | None = ..., ) -> Any: ... - @overload + @overload # type: ignore[override] def zrange( self, name: _Key, @@ -676,7 +676,7 @@ class Pipeline(Generic[_StrType]): offset: int | None = ..., num: int | None = ..., ) -> Any: ... - @overload + @overload # type: ignore[override] def zrange( self, name: _Key, @@ -690,7 +690,7 @@ class Pipeline(Generic[_StrType]): offset: int | None = ..., num: int | None = ..., ) -> Any: ... - @overload + @overload # type: ignore[override] def zrange( self, name: _Key, @@ -704,17 +704,17 @@ class Pipeline(Generic[_StrType]): offset: int | None = ..., num: int | None = ..., ) -> Any: ... - @overload + @overload # type: ignore[override] def zrevrange( self, name: _Key, start: int, end: int, withscores: Literal[True], score_cast_func: Callable[[_StrType], None] ) -> Any: ... - @overload + @overload # type: ignore[override] def zrevrange(self, name: _Key, start: int, end: int, withscores: Literal[True]) -> Any: ... - @overload + @overload # type: ignore[override] def zrevrange( self, name: _Key, start: int, end: int, withscores: bool = ..., score_cast_func: Callable[[Any], Any] = ... ) -> Any: ... - def zrangestore( + def zrangestore( # type: ignore[override] self, dest, name, @@ -726,9 +726,9 @@ class Pipeline(Generic[_StrType]): offset: Any | None = ..., num: Any | None = ..., ) -> Any: ... - def zrangebylex(self, name: _Key, min: _Value, max: _Value, start: int | None = ..., num: int | None = ...) -> Any: ... - def zrevrangebylex(self, name: _Key, max: _Value, min: _Value, start: int | None = ..., num: int | None = ...) -> Any: ... - @overload + def zrangebylex(self, name: _Key, min: _Value, max: _Value, start: int | None = ..., num: int | None = ...) -> Any: ... # type: ignore[override] + def zrevrangebylex(self, name: _Key, max: _Value, min: _Value, start: int | None = ..., num: int | None = ...) -> Any: ... # type: ignore[override] + @overload # type: ignore[override] def zrangebyscore( self, name: _Key, @@ -740,11 +740,11 @@ class Pipeline(Generic[_StrType]): withscores: Literal[True], score_cast_func: Callable[[_StrType], None], ) -> Any: ... - @overload + @overload # type: ignore[override] def zrangebyscore( self, name: _Key, min: _Value, max: _Value, start: int | None = ..., num: int | None = ..., *, withscores: Literal[True] ) -> Any: ... - @overload + @overload # type: ignore[override] def zrangebyscore( self, name: _Key, @@ -755,7 +755,7 @@ class Pipeline(Generic[_StrType]): withscores: bool = ..., score_cast_func: Callable[[_StrType], Any] = ..., ) -> Any: ... - @overload + @overload # type: ignore[override] def zrevrangebyscore( self, name: _Key, @@ -767,11 +767,11 @@ class Pipeline(Generic[_StrType]): withscores: Literal[True], score_cast_func: Callable[[_StrType], Any], ) -> Any: ... - @overload + @overload # type: ignore[override] def zrevrangebyscore( self, name: _Key, max: _Value, min: _Value, start: int | None = ..., num: int | None = ..., *, withscores: Literal[True] ) -> Any: ... - @overload + @overload # type: ignore[override] def zrevrangebyscore( self, name: _Key, @@ -782,23 +782,23 @@ class Pipeline(Generic[_StrType]): withscores: bool = ..., score_cast_func: Callable[[_StrType], Any] = ..., ) -> Any: ... - def zrank(self, name: _Key, value: _Value) -> Any: ... - def zrem(self, name: _Key, *values: _Value) -> Any: ... - def zremrangebylex(self, name: _Key, min: _Value, max: _Value) -> Any: ... - def zremrangebyrank(self, name: _Key, min: int, max: int) -> Any: ... - def zremrangebyscore(self, name: _Key, min: _Value, max: _Value) -> Any: ... - def zrevrank(self, name: _Key, value: _Value) -> Any: ... - def zscore(self, name: _Key, value: _Value) -> Any: ... - def zunion(self, keys, aggregate: Any | None = ..., withscores: bool = ...) -> Any: ... - def zunionstore(self, dest: _Key, keys: Iterable[_Key], aggregate: Literal["SUM", "MIN", "MAX"] | None = ...) -> Any: ... - def zmscore(self, key, members) -> Any: ... + def zrank(self, name: _Key, value: _Value) -> Any: ... # type: ignore[override] + def zrem(self, name: _Key, *values: _Value) -> Any: ... # type: ignore[override] + def zremrangebylex(self, name: _Key, min: _Value, max: _Value) -> Any: ... # type: ignore[override] + def zremrangebyrank(self, name: _Key, min: int, max: int) -> Any: ... # type: ignore[override] + def zremrangebyscore(self, name: _Key, min: _Value, max: _Value) -> Any: ... # type: ignore[override] + def zrevrank(self, name: _Key, value: _Value) -> Any: ... # type: ignore[override] + def zscore(self, name: _Key, value: _Value) -> Any: ... # type: ignore[override] + def zunion(self, keys, aggregate: Any | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] + def zunionstore(self, dest: _Key, keys: Iterable[_Key], aggregate: Literal["SUM", "MIN", "MAX"] | None = ...) -> Any: ... # type: ignore[override] + def zmscore(self, key, members) -> Any: ... # type: ignore[override] # endregion # region management commands - def bgrewriteaof(self, **kwargs: _CommandOptions) -> Any: ... - def bgsave(self, schedule: bool = ..., **kwargs: _CommandOptions) -> Any: ... - def role(self) -> Any: ... - def client_kill(self, address: str, **kwargs: _CommandOptions) -> Any: ... - def client_kill_filter( + def bgrewriteaof(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def bgsave(self, schedule: bool = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def role(self) -> Any: ... # type: ignore[override] + def client_kill(self, address: str, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_kill_filter( # type: ignore[override] self, _id: Any | None = ..., _type: Any | None = ..., @@ -808,19 +808,19 @@ class Pipeline(Generic[_StrType]): user: Any | None = ..., **kwargs: _CommandOptions, ) -> Any: ... - def client_info(self, **kwargs: _CommandOptions) -> Any: ... - def client_list(self, _type: str | None = ..., client_id: list[str] = ..., **kwargs: _CommandOptions) -> Any: ... - def client_getname(self, **kwargs: _CommandOptions) -> Any: ... - def client_getredir(self, **kwargs: _CommandOptions) -> Any: ... - def client_reply(self, reply, **kwargs: _CommandOptions) -> Any: ... - def client_id(self, **kwargs: _CommandOptions) -> Any: ... - def client_tracking_on( + def client_info(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_list(self, _type: str | None = ..., client_id: list[str] = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_getname(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_getredir(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_reply(self, reply, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_id(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_tracking_on( # type: ignore[override] self, clientid: Any | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... ) -> Any: ... - def client_tracking_off( + def client_tracking_off( # type: ignore[override] self, clientid: Any | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... ) -> Any: ... - def client_tracking( + def client_tracking( # type: ignore[override] self, on: bool = ..., clientid: Any | None = ..., @@ -831,33 +831,32 @@ class Pipeline(Generic[_StrType]): noloop: bool = ..., **kwargs: _CommandOptions, ) -> Any: ... - def client_trackinginfo(self, **kwargs: _CommandOptions) -> Any: ... - def client_setname(self, name: str, **kwargs: _CommandOptions) -> Any: ... - def client_unblock(self, client_id, error: bool = ..., **kwargs: _CommandOptions) -> Any: ... - def client_pause(self, timeout, all: bool = ..., **kwargs: _CommandOptions) -> Any: ... - def client_unpause(self, **kwargs: _CommandOptions) -> Any: ... - def command(self, **kwargs: _CommandOptions) -> Any: ... - def command_info(self, **kwargs: _CommandOptions) -> Any: ... - def command_count(self, **kwargs: _CommandOptions) -> Any: ... - def config_get(self, pattern: PatternT = ..., *args: PatternT, **kwargs: _CommandOptions) -> Any: ... - def config_set(self, name: KeyT, value: EncodableT, *args: KeyT | EncodableT, **kwargs: _CommandOptions) -> Any: ... - def config_resetstat(self, **kwargs: _CommandOptions) -> Any: ... - def config_rewrite(self, **kwargs: _CommandOptions) -> Any: ... - def dbsize(self, **kwargs: _CommandOptions) -> Any: ... - def debug_object(self, key, **kwargs: _CommandOptions) -> Any: ... - def debug_segfault(self, **kwargs: _CommandOptions) -> Any: ... - def echo(self, value: _Value, **kwargs: _CommandOptions) -> Any: ... - def flushall(self, asynchronous: bool = ..., **kwargs: _CommandOptions) -> Any: ... - def flushdb(self, asynchronous: bool = ..., **kwargs: _CommandOptions) -> Any: ... - def sync(self) -> Any: ... - def psync(self, replicationid, offset) -> Any: ... - def swapdb(self, first, second, **kwargs: _CommandOptions) -> Any: ... - def select(self, index, **kwargs: _CommandOptions) -> Any: ... - def info(self, section: _Key | None = ..., *args: _Key, **kwargs: _CommandOptions) -> Any: ... - def lastsave(self, **kwargs: _CommandOptions) -> Any: ... - def lolwut(self, *version_numbers: _Value, **kwargs: _CommandOptions) -> Any: ... - def reset(self) -> Any: ... - def migrate( + def client_trackinginfo(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_setname(self, name: str, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_unblock(self, client_id, error: bool = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_pause(self, timeout, all: bool = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def client_unpause(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def command(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def command_info(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def command_count(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def config_get(self, pattern: PatternT = ..., *args: PatternT, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def config_set(self, name: KeyT, value: EncodableT, *args: KeyT | EncodableT, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def config_resetstat(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def config_rewrite(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def dbsize(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def debug_object(self, key, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def debug_segfault(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def echo(self, value: _Value, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def flushall(self, asynchronous: bool = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def flushdb(self, asynchronous: bool = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def sync(self) -> Any: ... # type: ignore[override] + def psync(self, replicationid, offset) -> Any: ... # type: ignore[override] + def swapdb(self, first, second, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def select(self, index, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def info(self, section: _Key | None = ..., *args: _Key, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def lastsave(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def lolwut(self, *version_numbers: _Value, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def migrate( # type: ignore[override] self, host, port, @@ -869,18 +868,18 @@ class Pipeline(Generic[_StrType]): auth: Any | None = ..., **kwargs: _CommandOptions, ) -> Any: ... - def object(self, infotype, key, **kwargs: _CommandOptions) -> Any: ... - def memory_doctor(self, **kwargs: _CommandOptions) -> Any: ... - def memory_help(self, **kwargs: _CommandOptions) -> Any: ... - def memory_stats(self, **kwargs: _CommandOptions) -> Any: ... - def memory_malloc_stats(self, **kwargs: _CommandOptions) -> Any: ... - def memory_usage(self, key, samples: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... - def memory_purge(self, **kwargs: _CommandOptions) -> Any: ... - def ping(self, **kwargs: _CommandOptions) -> Any: ... - def quit(self, **kwargs: _CommandOptions) -> Any: ... - def replicaof(self, *args, **kwargs: _CommandOptions) -> Any: ... - def save(self, **kwargs: _CommandOptions) -> Any: ... - def shutdown( + def object(self, infotype, key, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def memory_doctor(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def memory_help(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def memory_stats(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def memory_malloc_stats(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def memory_usage(self, key, samples: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def memory_purge(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def ping(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def quit(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def replicaof(self, *args, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def save(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def shutdown( # type: ignore[override] self, save: bool = ..., nosave: bool = ..., @@ -889,32 +888,32 @@ class Pipeline(Generic[_StrType]): abort: bool = ..., **kwargs: _CommandOptions, ) -> Any: ... - def slaveof(self, host: Any | None = ..., port: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... - def slowlog_get(self, num: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... - def slowlog_len(self, **kwargs: _CommandOptions) -> Any: ... - def slowlog_reset(self, **kwargs: _CommandOptions) -> Any: ... - def time(self, **kwargs: _CommandOptions) -> Any: ... - def wait(self, num_replicas, timeout, **kwargs: _CommandOptions) -> Any: ... + def slaveof(self, host: Any | None = ..., port: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def slowlog_get(self, num: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def slowlog_len(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def slowlog_reset(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def time(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def wait(self, num_replicas, timeout, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] # endregion # region module commands - def module_load(self, path, *args) -> Any: ... - def module_unload(self, name) -> Any: ... - def module_list(self) -> Any: ... - def command_getkeys(self, *args) -> Any: ... + def module_load(self, path, *args) -> Any: ... # type: ignore[override] + def module_unload(self, name) -> Any: ... # type: ignore[override] + def module_list(self) -> Any: ... # type: ignore[override] + def command_getkeys(self, *args) -> Any: ... # type: ignore[override] # endregion # region pubsub commands - def publish(self, channel: _Key, message: _Key, **kwargs: _CommandOptions) -> Any: ... - def pubsub_channels(self, pattern: _Key = ..., **kwargs: _CommandOptions) -> Any: ... - def pubsub_numpat(self, **kwargs: _CommandOptions) -> Any: ... - def pubsub_numsub(self, *args: _Key, **kwargs: _CommandOptions) -> Any: ... + def publish(self, channel: _Key, message: _Key, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def pubsub_channels(self, pattern: _Key = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def pubsub_numpat(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def pubsub_numsub(self, *args: _Key, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] # endregion # region script commands - def eval(self, script, numkeys, *keys_and_args) -> Any: ... - def evalsha(self, sha, numkeys, *keys_and_args) -> Any: ... - def script_exists(self, *args) -> Any: ... - def script_debug(self, *args) -> Any: ... - def script_flush(self, sync_type: Any | None = ...) -> Any: ... - def script_kill(self) -> Any: ... - def script_load(self, script) -> Any: ... - def register_script(self, script: str | _StrType) -> Any: ... + def eval(self, script, numkeys, *keys_and_args) -> Any: ... # type: ignore[override] + def evalsha(self, sha, numkeys, *keys_and_args) -> Any: ... # type: ignore[override] + def script_exists(self, *args) -> Any: ... # type: ignore[override] + def script_debug(self, *args) -> Any: ... # type: ignore[override] + def script_flush(self, sync_type: Any | None = ...) -> Any: ... # type: ignore[override] + def script_kill(self) -> Any: ... # type: ignore[override] + def script_load(self, script) -> Any: ... # type: ignore[override] + def register_script(self, script: str | _StrType) -> Any: ... # type: ignore[override] # endregion From 40ca3e087efe5bc3ace03fc821ef0edf5f7f6a44 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 19 Jul 2022 08:10:43 +0000 Subject: [PATCH 05/11] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/redis/redis/asyncio/client.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/redis/redis/asyncio/client.pyi b/stubs/redis/redis/asyncio/client.pyi index 87a72eb329d2..ff4643a980a5 100644 --- a/stubs/redis/redis/asyncio/client.pyi +++ b/stubs/redis/redis/asyncio/client.pyi @@ -647,7 +647,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): bylex: bool = ..., offset: int | None = ..., num: int | None = ..., - ) -> Any: ... + ) -> Any: ... @overload # type: ignore[override] def zrange( self, From 35d4c691ab3d23f27581f88c4ffbd97038187cac Mon Sep 17 00:00:00 2001 From: ben avrahami Date: Tue, 19 Jul 2022 11:16:23 +0300 Subject: [PATCH 06/11] fix --- stubs/redis/redis/asyncio/client.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/redis/redis/asyncio/client.pyi b/stubs/redis/redis/asyncio/client.pyi index ff4643a980a5..ec4850757259 100644 --- a/stubs/redis/redis/asyncio/client.pyi +++ b/stubs/redis/redis/asyncio/client.pyi @@ -217,7 +217,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def acl_log_reset(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def acl_load(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def acl_save(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] - def acl_setuser( + def acl_setuser( # type: ignore[override] self, username: str, enabled: bool = ..., @@ -233,7 +233,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): reset_keys: bool = ..., reset_passwords: bool = ..., **kwargs: _CommandOptions, - ) -> Pipeline[_StrType]: ... # type: ignore[override] + ) -> Pipeline[_StrType]: ... def acl_users(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def acl_whoami(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] # endregion From 63c3319c0c6d0eacb5159fc7e785f357d60e7eee Mon Sep 17 00:00:00 2001 From: ben avrahami Date: Tue, 19 Jul 2022 11:34:08 +0300 Subject: [PATCH 07/11] fixed the allowlist --- stubs/redis/@tests/stubtest_allowlist.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/stubs/redis/@tests/stubtest_allowlist.txt b/stubs/redis/@tests/stubtest_allowlist.txt index b45347af1c76..929efd08f52b 100644 --- a/stubs/redis/@tests/stubtest_allowlist.txt +++ b/stubs/redis/@tests/stubtest_allowlist.txt @@ -25,3 +25,9 @@ redis.asyncio.sentinel.Sentinel.master_for redis.asyncio.sentinel.Sentinel.slave_for redis.sentinel.Sentinel.master_for redis.sentinel.Sentinel.slave_for +redis.asyncio.Pipeline.command_info +redis.asyncio.Pipeline.debug_segfault +redis.asyncio.Pipeline.memory_doctor +redis.asyncio.Pipeline.memory_help +redis.asyncio.Pipeline.script_debug +redis.asyncio.Pipeline.shutdown From 2a698a10a4a298f4b94ad27a762f269a6f98ab51 Mon Sep 17 00:00:00 2001 From: ben avrahami Date: Tue, 19 Jul 2022 11:37:06 +0300 Subject: [PATCH 08/11] another fix --- stubs/redis/@tests/stubtest_allowlist.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/stubs/redis/@tests/stubtest_allowlist.txt b/stubs/redis/@tests/stubtest_allowlist.txt index 929efd08f52b..fd787ad61441 100644 --- a/stubs/redis/@tests/stubtest_allowlist.txt +++ b/stubs/redis/@tests/stubtest_allowlist.txt @@ -19,15 +19,15 @@ redis.typing.CommandsProtocol.__init__ # unclear problems redis.Sentinel.master_for redis.Sentinel.slave_for +redis.asyncio.client.Pipeline.command_info +redis.asyncio.client.Pipeline.debug_segfault +redis.asyncio.client.Pipeline.memory_doctor +redis.asyncio.client.Pipeline.memory_help +redis.asyncio.client.Pipeline.script_debug +redis.asyncio.client.Pipeline.shutdown redis.asyncio.Sentinel.master_for redis.asyncio.Sentinel.slave_for redis.asyncio.sentinel.Sentinel.master_for redis.asyncio.sentinel.Sentinel.slave_for redis.sentinel.Sentinel.master_for redis.sentinel.Sentinel.slave_for -redis.asyncio.Pipeline.command_info -redis.asyncio.Pipeline.debug_segfault -redis.asyncio.Pipeline.memory_doctor -redis.asyncio.Pipeline.memory_help -redis.asyncio.Pipeline.script_debug -redis.asyncio.Pipeline.shutdown From 0886d79c72442a3fe012a1b13094d00648fd01f7 Mon Sep 17 00:00:00 2001 From: ben avrahami Date: Tue, 19 Jul 2022 14:17:39 +0300 Subject: [PATCH 09/11] optionals are now incomplete --- stubs/redis/redis/asyncio/client.pyi | 142 +++++++++++++-------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/stubs/redis/redis/asyncio/client.pyi b/stubs/redis/redis/asyncio/client.pyi index ec4850757259..7c853e1e2ac1 100644 --- a/stubs/redis/redis/asyncio/client.pyi +++ b/stubs/redis/redis/asyncio/client.pyi @@ -245,10 +245,10 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): # region BasicKey commands def append(self, key, value) -> Any: ... # type: ignore[override] def bitcount(self, key: _Key, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... # type: ignore[override] - def bitfield(self, key, default_overflow: Any | None = ...) -> Any: ... # type: ignore[override] + def bitfield(self, key, default_overflow: Incomplete | None = ...) -> Any: ... # type: ignore[override] def bitop(self, operation, dest, *keys) -> Any: ... # type: ignore[override] def bitpos(self, key: _Key, bit: int, start: int | None = ..., end: int | None = ..., mode: str | None = ...) -> Any: ... # type: ignore[override] - def copy(self, source, destination, destination_db: Any | None = ..., replace: bool = ...) -> Any: ... # type: ignore[override] + def copy(self, source, destination, destination_db: Incomplete | None = ..., replace: bool = ...) -> Any: ... # type: ignore[override] def decr(self, name, amount: int = ...) -> Any: ... # type: ignore[override] def decrby(self, name, amount: int = ...) -> Any: ... # type: ignore[override] def delete(self, *names: _Key) -> Any: ... # type: ignore[override] @@ -263,10 +263,10 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def getex( # type: ignore[override] self, name, - ex: Any | None = ..., - px: Any | None = ..., - exat: Any | None = ..., - pxat: Any | None = ..., + ex: Incomplete | None = ..., + px: Incomplete | None = ..., + exat: Incomplete | None = ..., + pxat: Incomplete | None = ..., persist: bool = ..., ) -> Any: ... def getbit(self, name: _Key, offset: int) -> Any: ... # type: ignore[override] @@ -300,12 +300,12 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): ) -> Any: ... def psetex(self, name, time_ms, value) -> Any: ... # type: ignore[override] def pttl(self, name: _Key) -> Any: ... # type: ignore[override] - def hrandfield(self, key, count: Any | None = ..., withvalues: bool = ...) -> Any: ... # type: ignore[override] + def hrandfield(self, key, count: Incomplete | None = ..., withvalues: bool = ...) -> Any: ... # type: ignore[override] def randomkey(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def rename(self, src, dst) -> Any: ... # type: ignore[override] def renamenx(self, src, dst) -> Any: ... # type: ignore[override] def restore( # type: ignore[override] - self, name, ttl, value, replace: bool = ..., absttl: bool = ..., idletime: Any | None = ..., frequency: Any | None = ... + self, name, ttl, value, replace: bool = ..., absttl: bool = ..., idletime: Incomplete | None = ..., frequency: Incomplete | None = ... ) -> Any: ... def set( # type: ignore[override] self, @@ -317,8 +317,8 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): xx: bool = ..., keepttl: bool = ..., get: bool = ..., - exat: Any | None = ..., - pxat: Any | None = ..., + exat: Incomplete | None = ..., + pxat: Incomplete | None = ..., ) -> Any: ... def setbit(self, name: _Key, offset: int, value: int) -> Any: ... # type: ignore[override] def setex(self, name: _Key, time: int | timedelta, value: _Value) -> Any: ... # type: ignore[override] @@ -332,7 +332,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): specific_argument: str = ..., len: bool = ..., idx: bool = ..., - minmatchlen: Any | None = ..., + minmatchlen: Incomplete | None = ..., withmatchlen: bool = ..., **kwargs: _CommandOptions, ) -> Any: ... @@ -359,12 +359,12 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def hlen(self, name: _Key) -> Any: ... # type: ignore[override] @overload def hset( # type: ignore[override] - self, name: _Key, key: _Key, value: _Value, mapping: Mapping[_Key, _Value] | None = ..., items: Any | None = ... + self, name: _Key, key: _Key, value: _Value, mapping: Mapping[_Key, _Value] | None = ..., items: Incomplete | None = ... ) -> Any: ... @overload - def hset(self, name: _Key, key: None, value: None, mapping: Mapping[_Key, _Value], items: Any | None = ...) -> Any: ... # type: ignore[override] + def hset(self, name: _Key, key: None, value: None, mapping: Mapping[_Key, _Value], items: Incomplete | None = ...) -> Any: ... # type: ignore[override] @overload - def hset(self, name: _Key, *, mapping: Mapping[_Key, _Value], items: Any | None = ...) -> Any: ... # type: ignore[override] + def hset(self, name: _Key, *, mapping: Mapping[_Key, _Value], items: Incomplete | None = ...) -> Any: ... # type: ignore[override] def hsetnx(self, name: _Key, key: _Key, value: _Value) -> Any: ... # type: ignore[override] def hmset(self, name: _Key, mapping: Mapping[_Key, _Value]) -> Any: ... # type: ignore[override] def hmget(self, name: _Key, keys: _Key | Iterable[_Key], *args: _Key) -> Any: ... # type: ignore[override] @@ -373,7 +373,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): # endregion # region geo commands def geoadd(self, name, values, nx: bool = ..., xx: bool = ..., ch: bool = ...) -> Any: ... # type: ignore[override] - def geodist(self, name, place1, place2, unit: Any | None = ...) -> Any: ... # type: ignore[override] + def geodist(self, name, place1, place2, unit: Incomplete | None = ...) -> Any: ... # type: ignore[override] def geohash(self, name, *values) -> Any: ... # type: ignore[override] def geopos(self, name, *values) -> Any: ... # type: ignore[override] def georadius( # type: ignore[override] @@ -382,14 +382,14 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): longitude, latitude, radius, - unit: Any | None = ..., + unit: Incomplete | None = ..., withdist: bool = ..., withcoord: bool = ..., withhash: bool = ..., - count: Any | None = ..., - sort: Any | None = ..., - store: Any | None = ..., - store_dist: Any | None = ..., + count: Incomplete | None = ..., + sort: Incomplete | None = ..., + store: Incomplete | None = ..., + store_dist: Incomplete | None = ..., any: bool = ..., ) -> Any: ... def georadiusbymember( # type: ignore[override] @@ -397,28 +397,28 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): name, member, radius, - unit: Any | None = ..., + unit: Incomplete | None = ..., withdist: bool = ..., withcoord: bool = ..., withhash: bool = ..., - count: Any | None = ..., - sort: Any | None = ..., - store: Any | None = ..., - store_dist: Any | None = ..., + count: Incomplete | None = ..., + sort: Incomplete | None = ..., + store: Incomplete | None = ..., + store_dist: Incomplete | None = ..., any: bool = ..., ) -> Any: ... def geosearch( # type: ignore[override] self, name, - member: Any | None = ..., - longitude: Any | None = ..., - latitude: Any | None = ..., + member: Incomplete | None = ..., + longitude: Incomplete | None = ..., + latitude: Incomplete | None = ..., unit: str = ..., - radius: Any | None = ..., - width: Any | None = ..., - height: Any | None = ..., - sort: Any | None = ..., - count: Any | None = ..., + radius: Incomplete | None = ..., + width: Incomplete | None = ..., + height: Incomplete | None = ..., + sort: Incomplete | None = ..., + count: Incomplete | None = ..., any: bool = ..., withcoord: bool = ..., withdist: bool = ..., @@ -428,15 +428,15 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): self, dest, name, - member: Any | None = ..., - longitude: Any | None = ..., - latitude: Any | None = ..., + member: Incomplete | None = ..., + longitude: Incomplete | None = ..., + latitude: Incomplete | None = ..., unit: str = ..., - radius: Any | None = ..., - width: Any | None = ..., - height: Any | None = ..., - sort: Any | None = ..., - count: Any | None = ..., + radius: Incomplete | None = ..., + width: Incomplete | None = ..., + height: Incomplete | None = ..., + sort: Incomplete | None = ..., + count: Incomplete | None = ..., any: bool = ..., storedist: bool = ..., ) -> Any: ... @@ -467,7 +467,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def rpoplpush(self, src, dst) -> Any: ... # type: ignore[override] def rpush(self, name: _Value, *values: _Value) -> Any: ... # type: ignore[override] def rpushx(self, name, value) -> Any: ... # type: ignore[override] - def lpos(self, name, value, rank: Any | None = ..., count: Any | None = ..., maxlen: Any | None = ...) -> Any: ... # type: ignore[override] + def lpos(self, name, value, rank: Incomplete | None = ..., count: Incomplete | None = ..., maxlen: Incomplete | None = ...) -> Any: ... # type: ignore[override] @overload # type: ignore[override] def sort( self, @@ -570,11 +570,11 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): maxlen=..., approximate: bool = ..., nomkstream: bool = ..., - minid: Any | None = ..., - limit: Any | None = ..., + minid: Incomplete | None = ..., + limit: Incomplete | None = ..., ) -> Any: ... def xautoclaim( # type: ignore[override] - self, name, groupname, consumername, min_idle_time, start_id: int = ..., count: Any | None = ..., justid: bool = ... + self, name, groupname, consumername, min_idle_time, start_id: int = ..., count: Incomplete | None = ..., justid: bool = ... ) -> Any: ... def xclaim( # type: ignore[override] self, name, groupname, consumername, min_idle_time, message_ids, idle=..., time=..., retrycount=..., force=..., justid=... @@ -591,14 +591,14 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def xlen(self, name: _Key) -> Any: ... # type: ignore[override] def xpending(self, name, groupname) -> Any: ... # type: ignore[override] def xpending_range( # type: ignore[override] - self, name: _Key, groupname, min, max, count: int, consumername: Any | None = ..., idle: int | None = ... + self, name: _Key, groupname, min, max, count: int, consumername: Incomplete | None = ..., idle: int | None = ... ) -> Any: ... - def xrange(self, name, min: str = ..., max: str = ..., count: Any | None = ...) -> Any: ... # type: ignore[override] - def xread(self, streams, count: Any | None = ..., block: Any | None = ...) -> Any: ... # type: ignore[override] + def xrange(self, name, min: str = ..., max: str = ..., count: Incomplete | None = ...) -> Any: ... # type: ignore[override] + def xread(self, streams, count: Incomplete | None = ..., block: Incomplete | None = ...) -> Any: ... # type: ignore[override] def xreadgroup( # type: ignore[override] - self, groupname, consumername, streams, count: Any | None = ..., block: Any | None = ..., noack: bool = ... + self, groupname, consumername, streams, count: Incomplete | None = ..., block: Incomplete | None = ..., noack: bool = ... ) -> Any: ... - def xrevrange(self, name, max: str = ..., min: str = ..., count: Any | None = ...) -> Any: ... # type: ignore[override] + def xrevrange(self, name, max: str = ..., min: str = ..., count: Incomplete | None = ...) -> Any: ... # type: ignore[override] def xtrim( # type: ignore[override] self, name, maxlen: int | None = ..., approximate: bool = ..., minid: Incomplete | None = ..., limit: int | None = ... ) -> Any: ... @@ -612,20 +612,20 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): xx: bool = ..., ch: bool = ..., incr: bool = ..., - gt: Any | None = ..., - lt: Any | None = ..., + gt: Incomplete | None = ..., + lt: Incomplete | None = ..., ) -> Any: ... def zcard(self, name: _Key) -> Any: ... # type: ignore[override] def zcount(self, name: _Key, min: _Value, max: _Value) -> Any: ... # type: ignore[override] def zdiff(self, keys, withscores: bool = ...) -> Any: ... # type: ignore[override] def zdiffstore(self, dest, keys) -> Any: ... # type: ignore[override] def zincrby(self, name: _Key, amount: float, value: _Value) -> Any: ... # type: ignore[override] - def zinter(self, keys, aggregate: Any | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] + def zinter(self, keys, aggregate: Incomplete | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] def zinterstore(self, dest: _Key, keys: Iterable[_Key], aggregate: Literal["SUM", "MIN", "MAX"] | None = ...) -> Any: ... # type: ignore[override] def zlexcount(self, name: _Key, min: _Value, max: _Value) -> Any: ... # type: ignore[override] def zpopmax(self, name: _Key, count: int | None = ...) -> Any: ... # type: ignore[override] def zpopmin(self, name: _Key, count: int | None = ...) -> Any: ... # type: ignore[override] - def zrandmember(self, key, count: Any | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] + def zrandmember(self, key, count: Incomplete | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] @overload # type: ignore[override] def bzpopmax(self, keys: _Key | Iterable[_Key], timeout: Literal[0] = ...) -> Any: ... @overload # type: ignore[override] @@ -723,8 +723,8 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): byscore: bool = ..., bylex: bool = ..., desc: bool = ..., - offset: Any | None = ..., - num: Any | None = ..., + offset: Incomplete | None = ..., + num: Incomplete | None = ..., ) -> Any: ... def zrangebylex(self, name: _Key, min: _Value, max: _Value, start: int | None = ..., num: int | None = ...) -> Any: ... # type: ignore[override] def zrevrangebylex(self, name: _Key, max: _Value, min: _Value, start: int | None = ..., num: int | None = ...) -> Any: ... # type: ignore[override] @@ -789,7 +789,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def zremrangebyscore(self, name: _Key, min: _Value, max: _Value) -> Any: ... # type: ignore[override] def zrevrank(self, name: _Key, value: _Value) -> Any: ... # type: ignore[override] def zscore(self, name: _Key, value: _Value) -> Any: ... # type: ignore[override] - def zunion(self, keys, aggregate: Any | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] + def zunion(self, keys, aggregate: Incomplete | None = ..., withscores: bool = ...) -> Any: ... # type: ignore[override] def zunionstore(self, dest: _Key, keys: Iterable[_Key], aggregate: Literal["SUM", "MIN", "MAX"] | None = ...) -> Any: ... # type: ignore[override] def zmscore(self, key, members) -> Any: ... # type: ignore[override] # endregion @@ -800,12 +800,12 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def client_kill(self, address: str, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def client_kill_filter( # type: ignore[override] self, - _id: Any | None = ..., - _type: Any | None = ..., - addr: Any | None = ..., - skipme: Any | None = ..., - laddr: Any | None = ..., - user: Any | None = ..., + _id: Incomplete | None = ..., + _type: Incomplete | None = ..., + addr: Incomplete | None = ..., + skipme: Incomplete | None = ..., + laddr: Incomplete | None = ..., + user: Incomplete | None = ..., **kwargs: _CommandOptions, ) -> Any: ... def client_info(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] @@ -815,15 +815,15 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def client_reply(self, reply, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def client_id(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def client_tracking_on( # type: ignore[override] - self, clientid: Any | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... + self, clientid: Incomplete | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... ) -> Any: ... def client_tracking_off( # type: ignore[override] - self, clientid: Any | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... + self, clientid: Incomplete | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... ) -> Any: ... def client_tracking( # type: ignore[override] self, on: bool = ..., - clientid: Any | None = ..., + clientid: Incomplete | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., @@ -865,7 +865,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): timeout, copy: bool = ..., replace: bool = ..., - auth: Any | None = ..., + auth: Incomplete | None = ..., **kwargs: _CommandOptions, ) -> Any: ... def object(self, infotype, key, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] @@ -873,7 +873,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def memory_help(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def memory_stats(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def memory_malloc_stats(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] - def memory_usage(self, key, samples: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def memory_usage(self, key, samples: Incomplete | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def memory_purge(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def ping(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def quit(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] @@ -888,8 +888,8 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): abort: bool = ..., **kwargs: _CommandOptions, ) -> Any: ... - def slaveof(self, host: Any | None = ..., port: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] - def slowlog_get(self, num: Any | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def slaveof(self, host: Incomplete | None = ..., port: Incomplete | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] + def slowlog_get(self, num: Incomplete | None = ..., **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def slowlog_len(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def slowlog_reset(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def time(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] @@ -912,7 +912,7 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def evalsha(self, sha, numkeys, *keys_and_args) -> Any: ... # type: ignore[override] def script_exists(self, *args) -> Any: ... # type: ignore[override] def script_debug(self, *args) -> Any: ... # type: ignore[override] - def script_flush(self, sync_type: Any | None = ...) -> Any: ... # type: ignore[override] + def script_flush(self, sync_type: Incomplete | None = ...) -> Any: ... # type: ignore[override] def script_kill(self) -> Any: ... # type: ignore[override] def script_load(self, script) -> Any: ... # type: ignore[override] def register_script(self, script: str | _StrType) -> Any: ... # type: ignore[override] From a03eeb8ff366a87850c39ba94d84f1d80046ad92 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 19 Jul 2022 11:18:55 +0000 Subject: [PATCH 10/11] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/redis/redis/asyncio/client.pyi | 34 ++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/stubs/redis/redis/asyncio/client.pyi b/stubs/redis/redis/asyncio/client.pyi index 7c853e1e2ac1..a841469d22a1 100644 --- a/stubs/redis/redis/asyncio/client.pyi +++ b/stubs/redis/redis/asyncio/client.pyi @@ -305,7 +305,14 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def rename(self, src, dst) -> Any: ... # type: ignore[override] def renamenx(self, src, dst) -> Any: ... # type: ignore[override] def restore( # type: ignore[override] - self, name, ttl, value, replace: bool = ..., absttl: bool = ..., idletime: Incomplete | None = ..., frequency: Incomplete | None = ... + self, + name, + ttl, + value, + replace: bool = ..., + absttl: bool = ..., + idletime: Incomplete | None = ..., + frequency: Incomplete | None = ..., ) -> Any: ... def set( # type: ignore[override] self, @@ -574,7 +581,14 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): limit: Incomplete | None = ..., ) -> Any: ... def xautoclaim( # type: ignore[override] - self, name, groupname, consumername, min_idle_time, start_id: int = ..., count: Incomplete | None = ..., justid: bool = ... + self, + name, + groupname, + consumername, + min_idle_time, + start_id: int = ..., + count: Incomplete | None = ..., + justid: bool = ..., ) -> Any: ... def xclaim( # type: ignore[override] self, name, groupname, consumername, min_idle_time, message_ids, idle=..., time=..., retrycount=..., force=..., justid=... @@ -815,10 +829,22 @@ class Pipeline(Redis[_StrType], Generic[_StrType]): def client_reply(self, reply, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def client_id(self, **kwargs: _CommandOptions) -> Any: ... # type: ignore[override] def client_tracking_on( # type: ignore[override] - self, clientid: Incomplete | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... + self, + clientid: Incomplete | None = ..., + prefix=..., + bcast: bool = ..., + optin: bool = ..., + optout: bool = ..., + noloop: bool = ..., ) -> Any: ... def client_tracking_off( # type: ignore[override] - self, clientid: Incomplete | None = ..., prefix=..., bcast: bool = ..., optin: bool = ..., optout: bool = ..., noloop: bool = ... + self, + clientid: Incomplete | None = ..., + prefix=..., + bcast: bool = ..., + optin: bool = ..., + optout: bool = ..., + noloop: bool = ..., ) -> Any: ... def client_tracking( # type: ignore[override] self, From 307bce3d647bdb81ac61a824b1c4bb63fb4a3ad4 Mon Sep 17 00:00:00 2001 From: ben avrahami Date: Tue, 19 Jul 2022 15:40:20 +0300 Subject: [PATCH 11/11] fix allowlist --- stubs/redis/@tests/stubtest_allowlist.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/stubs/redis/@tests/stubtest_allowlist.txt b/stubs/redis/@tests/stubtest_allowlist.txt index fd787ad61441..3eadfa64d944 100644 --- a/stubs/redis/@tests/stubtest_allowlist.txt +++ b/stubs/redis/@tests/stubtest_allowlist.txt @@ -16,15 +16,17 @@ redis.asyncio.connection.AsyncConnectCallbackProtocol.__init__ redis.asyncio.connection.ConnectCallbackProtocol.__init__ redis.typing.CommandsProtocol.__init__ -# unclear problems -redis.Sentinel.master_for -redis.Sentinel.slave_for +# async def mismatch problems redis.asyncio.client.Pipeline.command_info redis.asyncio.client.Pipeline.debug_segfault redis.asyncio.client.Pipeline.memory_doctor redis.asyncio.client.Pipeline.memory_help redis.asyncio.client.Pipeline.script_debug redis.asyncio.client.Pipeline.shutdown + +# unclear problems +redis.Sentinel.master_for +redis.Sentinel.slave_for redis.asyncio.Sentinel.master_for redis.asyncio.Sentinel.slave_for redis.asyncio.sentinel.Sentinel.master_for