diff --git a/stubs/redis/redis/client.pyi b/stubs/redis/redis/client.pyi index 2815b741d..ab924f005 100644 --- a/stubs/redis/redis/client.pyi +++ b/stubs/redis/redis/client.pyi @@ -586,21 +586,24 @@ class Redis(Generic[_StrType]): def zscan_iter(self, name, match=..., count=..., score_cast_func=...): ... def sadd(self, name: _Key, *values: _Value) -> int: ... def scard(self, name: _Key) -> int: ... - def sdiff(self, keys, *args): ... - def sdiffstore(self, dest, keys, *args): ... - def sinter(self, keys: _Key, *args: _Key) -> Set[_Value]: ... - def sinterstore(self, dest, keys, *args): ... + def sdiff(self, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Set[_Value]: ... + def sdiffstore(self, dest: _Key, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> int: ... + def sinter(self, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Set[_Value]: ... + def sinterstore(self, dest: _Key, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> int: ... def sismember(self, name: _Key, value: _Value) -> bool: ... def smembers(self, name: _Key) -> Set[_StrType]: ... - def smove(self, src, dst, value): ... - def spop(self, name, count: Optional[int] = ...): ... + def smove(self, src: _Key, dst: _Key, value: _Value) -> bool: ... + @overload + def spop(self, name: _Key, count: None = ...) -> Optional[_Value]: ... + @overload + def spop(self, name: _Key, count: int) -> List[_Value]: ... @overload def srandmember(self, name: _Key, number: None = ...) -> Optional[_Value]: ... @overload def srandmember(self, name: _Key, number: int) -> List[_Value]: ... def srem(self, name: _Key, *values: _Value) -> int: ... - def sunion(self, keys, *args): ... - def sunionstore(self, dest, keys, *args): ... + def sunion(self, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Set[_Value]: ... + def sunionstore(self, dest: _Key, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> int: ... def xack(self, name, groupname, *ids): ... def xadd(self, name, fields, id=..., maxlen=..., approximate=...): ... def xclaim( @@ -1006,18 +1009,18 @@ class Pipeline(Redis): def zscan_iter(self, name, match=..., count=..., score_cast_func=...) -> Iterator[Any]: ... def sadd(self, name: _Key, *values: _Value) -> Pipeline: ... # type: ignore [override] def scard(self, name: _Key) -> Pipeline: ... # type: ignore [override] - def sdiff(self, keys, *args) -> Pipeline: ... # type: ignore [override] - def sdiffstore(self, dest, keys, *args) -> Pipeline: ... # type: ignore [override] - def sinter(self, keys: _Key, *args: _Key) -> Pipeline: ... # type: ignore [override] - def sinterstore(self, dest, keys, *args) -> Pipeline: ... # type: ignore [override] + def sdiff(self, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Pipeline: ... # type: ignore [override] + def sdiffstore(self, dest: _Key, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Pipeline: ... # type: ignore [override] + def sinter(self, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Pipeline: ... # type: ignore [override] + def sinterstore(self, dest: _Key, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Pipeline: ... # type: ignore [override] def sismember(self, name: _Key, value: _Value) -> Pipeline: ... # type: ignore [override] def smembers(self, name: _Key) -> Pipeline: ... # type: ignore [override] - def smove(self, src, dst, value) -> Pipeline: ... # type: ignore [override] - def spop(self, name, count: Optional[int] = ...) -> Pipeline: ... # type: ignore [override] + def smove(self, src: _Key, dst: _Key, value: _Value) -> Pipeline: ... # type: ignore [override] + def spop(self, name: _Key, count: Optional[int] = ...) -> Pipeline: ... # type: ignore [override] def srandmember(self, name: _Key, number: Optional[int] = ...) -> Pipeline: ... # type: ignore [override] def srem(self, name: _Key, *values: _Value) -> Pipeline: ... # type: ignore [override] - def sunion(self, keys, *args) -> Pipeline: ... # type: ignore [override] - def sunionstore(self, dest, keys, *args) -> Pipeline: ... # type: ignore [override] + def sunion(self, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Pipeline: ... # type: ignore [override] + def sunionstore(self, dest: _Key, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Pipeline: ... # type: ignore [override] def xack(self, name, groupname, *ids) -> Pipeline: ... # type: ignore [override] def xadd(self, name, fields, id=..., maxlen=..., approximate=...) -> Pipeline: ... # type: ignore [override] def xclaim(