[redis] fix pipeline return types (#4989)

Pipeline is a subclass of Redis, but instead of the commands returning results, they return Pipeline.
This commit is contained in:
Christopher Dignam
2021-02-23 02:28:01 -05:00
committed by GitHub
parent f4c35f1059
commit 46ac6bf87f

View File

@@ -690,25 +690,27 @@ class PubSub:
def run_in_thread(self, sleep_time=...): ...
def ping(self, message: Optional[_Value] = ...) -> None: ...
class BasePipeline:
class Pipeline(Redis):
UNWATCH_COMMANDS: Any
connection_pool: Any
connection: Any
response_callbacks: Any
transaction: Any
transaction: bool
shard_hint: Any
watching: Any
def __init__(self, connection_pool, response_callbacks, transaction, shard_hint) -> None: ...
def __enter__(self): ...
def __exit__(self, exc_type, exc_value, traceback): ...
def __del__(self): ...
def __len__(self): ...
watching: bool
command_stack: Any
scripts: Any
explicit_transaction: Any
def reset(self): ...
def __init__(self, connection_pool, response_callbacks, transaction, shard_hint) -> None: ...
def __enter__(self) -> Pipeline: ... # type: ignore [override]
def __exit__(self, exc_type, exc_value, traceback) -> None: ...
def __del__(self) -> None: ...
def __len__(self) -> int: ...
def __bool__(self) -> bool: ...
def reset(self) -> None: ...
def multi(self) -> None: ...
def execute_command(self, *args, **kwargs): ...
def execute_command(self, *args, **options): ...
def immediate_execute_command(self, *args, **options): ...
def pipeline_execute_command(self, *args, **options): ...
def raise_first_error(self, commands, response): ...
@@ -717,11 +719,267 @@ class BasePipeline:
def load_scripts(self): ...
def execute(self, raise_on_error: bool = ...) -> List[Any]: ...
def watch(self, *names: _Key) -> bool: ...
def unwatch(self): ...
def script_load_for_pipeline(self, script): ...
class StrictPipeline(BasePipeline, StrictRedis): ...
class Pipeline(BasePipeline, Redis): ...
def unwatch(self) -> bool: ...
# in the Redis implementation, the following methods are inherited from client.
def set_response_callback(self, command, callback): ...
def pipeline(self, transaction: bool = ..., shard_hint: Any = ...) -> Pipeline: ... # type: ignore [override]
def lock(self, name, timeout=..., sleep=..., blocking_timeout=..., lock_class=..., thread_local=...): ...
def pubsub(self, shard_hint: Any = ..., ignore_subscribe_messages: bool = ...) -> PubSub: ...
def acl_cat(self, category: Optional[Text] = ...) -> Pipeline: ... # type: ignore [override]
def acl_deluser(self, username: Text) -> Pipeline: ... # type: ignore [override]
def acl_genpass(self) -> Pipeline: ... # type: ignore [override]
def acl_getuser(self, username: Text) -> Pipeline: ... # type: ignore [override]
def acl_list(self) -> Pipeline: ... # type: ignore [override]
def acl_load(self) -> Pipeline: ... # type: ignore [override]
def acl_setuser( # type: ignore [override]
self,
username: Text = ...,
enabled: bool = ...,
nopass: bool = ...,
passwords: Optional[Sequence[Text]] = ...,
hashed_passwords: Optional[Sequence[Text]] = ...,
categories: Optional[Sequence[Text]] = ...,
commands: Optional[Sequence[Text]] = ...,
keys: Optional[Sequence[Text]] = ...,
reset: bool = ...,
reset_keys: bool = ...,
reset_passwords: bool = ...,
) -> Pipeline: ...
def acl_users(self) -> Pipeline: ... # type: ignore [override]
def acl_whoami(self) -> Pipeline: ... # type: ignore [override]
def bgrewriteaof(self) -> Pipeline: ... # type: ignore [override]
def bgsave(self) -> Pipeline: ... # type: ignore [override]
def client_id(self) -> Pipeline: ... # type: ignore [override]
def client_kill(self, address: Text) -> Pipeline: ... # type: ignore [override]
def client_list(self) -> Pipeline: ... # type: ignore [override]
def client_getname(self) -> Pipeline: ... # type: ignore [override]
def client_setname(self, name: Text) -> Pipeline: ... # type: ignore [override]
def readwrite(self) -> Pipeline: ... # type: ignore [override]
def readonly(self) -> Pipeline: ... # type: ignore [override]
def config_get(self, pattern=...) -> Pipeline: ... # type: ignore [override]
def config_set(self, name, value) -> Pipeline: ... # type: ignore [override]
def config_resetstat(self) -> Pipeline: ... # type: ignore [override]
def config_rewrite(self) -> Pipeline: ... # type: ignore [override]
def dbsize(self) -> Pipeline: ... # type: ignore [override]
def debug_object(self, key) -> Pipeline: ... # type: ignore [override]
def echo(self, value) -> Pipeline: ... # type: ignore [override]
def flushall(self) -> Pipeline: ... # type: ignore [override]
def flushdb(self) -> Pipeline: ... # type: ignore [override]
def info(self, section: Optional[_Key] = ...) -> Pipeline: ... # type: ignore [override]
def lastsave(self) -> Pipeline: ... # type: ignore [override]
def object(self, infotype, key) -> Pipeline: ... # type: ignore [override]
def ping(self) -> Pipeline: ... # type: ignore [override]
def save(self) -> Pipeline: ... # type: ignore [override]
def sentinel(self, *args) -> None: ...
def sentinel_get_master_addr_by_name(self, service_name) -> Pipeline: ... # type: ignore [override]
def sentinel_master(self, service_name) -> Pipeline: ... # type: ignore [override]
def sentinel_masters(self) -> Pipeline: ... # type: ignore [override]
def sentinel_monitor(self, name, ip, port, quorum) -> Pipeline: ... # type: ignore [override]
def sentinel_remove(self, name) -> Pipeline: ... # type: ignore [override]
def sentinel_sentinels(self, service_name) -> Pipeline: ... # type: ignore [override]
def sentinel_set(self, name, option, value) -> Pipeline: ... # type: ignore [override]
def sentinel_slaves(self, service_name) -> Pipeline: ... # type: ignore [override]
def shutdown(self) -> None: ...
def slaveof(self, host=..., port=...) -> Pipeline: ... # type: ignore [override]
def slowlog_get(self, num=...) -> Pipeline: ... # type: ignore [override]
def slowlog_len(self) -> Pipeline: ... # type: ignore [override]
def slowlog_reset(self) -> Pipeline: ... # type: ignore [override]
def time(self) -> Pipeline: ... # type: ignore [override]
def append(self, key, value) -> Pipeline: ... # type: ignore [override]
def bitcount(self, key: _Key, start: Optional[int] = ..., end: Optional[int] = ...) -> Pipeline: ... # type: ignore [override]
def bitop(self, operation, dest, *keys) -> Pipeline: ... # type: ignore [override]
def bitpos(self, key, bit, start=..., end=...) -> Pipeline: ... # type: ignore [override]
def decr(self, name, amount=...) -> Pipeline: ... # type: ignore [override]
def delete(self, *names: _Key) -> Pipeline: ... # type: ignore [override]
def __delitem__(self, _Key) -> None: ...
def dump(self, name) -> Pipeline: ... # type: ignore [override]
def exists(self, *names: _Key) -> Pipeline: ... # type: ignore [override]
def __contains__(self, *names: _Key) -> Pipeline: ... # type: ignore [override]
def expire(self, name: _Key, time: Union[int, timedelta]) -> Pipeline: ... # type: ignore [override]
def expireat(self, name, when) -> Pipeline: ... # type: ignore [override]
def get(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def __getitem__(self, name) -> Pipeline: ... # type: ignore [override]
def getbit(self, name: _Key, offset: int) -> Pipeline: ... # type: ignore [override]
def getrange(self, key, start, end) -> Pipeline: ... # type: ignore [override]
def getset(self, name, value) -> Pipeline: ... # type: ignore [override]
def incr(self, name, amount=...) -> Pipeline: ... # type: ignore [override]
def incrby(self, name, amount=...) -> Pipeline: ... # type: ignore [override]
def incrbyfloat(self, name, amount=...) -> Pipeline: ... # type: ignore [override]
def keys(self, pattern=...) -> Pipeline: ... # type: ignore [override]
def mget(self, keys, *args) -> Pipeline: ... # type: ignore [override]
def mset(self, *args, **kwargs) -> Pipeline: ... # type: ignore [override]
def msetnx(self, *args, **kwargs) -> Pipeline: ... # type: ignore [override]
def move(self, name, db) -> Pipeline: ... # type: ignore [override]
def persist(self, name) -> Pipeline: ... # type: ignore [override]
def pexpire(self, name, time) -> Pipeline: ... # type: ignore [override]
def pexpireat(self, name, when) -> Pipeline: ... # type: ignore [override]
def psetex(self, name, time_ms, value) -> Pipeline: ... # type: ignore [override]
def pttl(self, name) -> Pipeline: ... # type: ignore [override]
def randomkey(self) -> Pipeline: ... # type: ignore [override]
def rename(self, src, dst) -> Pipeline: ... # type: ignore [override]
def renamenx(self, src, dst) -> Pipeline: ... # type: ignore [override]
def restore(self, name, ttl, value) -> Pipeline: ... # type: ignore [override]
def set( # type: ignore [override]
self,
name: _Key,
value: _Value,
ex: Union[None, int, timedelta] = ...,
px: Union[None, int, timedelta] = ...,
nx: bool = ...,
xx: bool = ...,
keepttl: bool = ...,
) -> Pipeline: ...
def __setitem__(self, name, value) -> None: ...
def setbit(self, name: _Key, offset: int, value: int) -> Pipeline: ... # type: ignore [override]
def setex(self, name: _Key, time: Union[int, timedelta], value: _Value) -> Pipeline: ... # type: ignore [override]
def setnx(self, name, value) -> Pipeline: ... # type: ignore [override]
def setrange(self, name, offset, value) -> Pipeline: ... # type: ignore [override]
def strlen(self, name) -> Pipeline: ... # type: ignore [override]
def substr(self, name, start, end=...) -> Pipeline: ... # type: ignore [override]
def ttl(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def type(self, name) -> Pipeline: ... # type: ignore [override]
def unlink(self, *names: _Key) -> Pipeline: ... # type: ignore [override]
def blpop(self, keys: Union[_Value, Iterable[_Value]], timeout: float = ...) -> Pipeline: ... # type: ignore [override]
def brpop(self, keys: Union[_Value, Iterable[_Value]], timeout: float = ...) -> Pipeline: ... # type: ignore [override]
def brpoplpush(self, src, dst, timeout=...) -> Pipeline: ... # type: ignore [override]
def lindex(self, name: _Key, index: int) -> Pipeline: ... # type: ignore [override]
def linsert( # type: ignore [override]
self, name: _Key, where: Literal["BEFORE", "AFTER", "before", "after"], refvalue: _Value, value: _Value
) -> Pipeline: ...
def llen(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def lpop(self, name) -> Pipeline: ... # type: ignore [override]
def lpush(self, name: _Value, *values: _Value) -> Pipeline: ... # type: ignore [override]
def lpushx(self, name, value) -> Pipeline: ... # type: ignore [override]
def lrange(self, name: _Key, start: int, end: int) -> Pipeline: ... # type: ignore [override]
def lrem(self, name: _Key, count: int, value: _Value) -> Pipeline: ... # type: ignore [override]
def lset(self, name: _Key, index: int, value: _Value) -> Pipeline: ... # type: ignore [override]
def ltrim(self, name: _Key, start: int, end: int) -> Pipeline: ... # type: ignore [override]
def rpop(self, name) -> Pipeline: ... # type: ignore [override]
def rpoplpush(self, src, dst) -> Pipeline: ... # type: ignore [override]
def rpush(self, name: _Value, *values: _Value) -> Pipeline: ... # type: ignore [override]
def rpushx(self, name, value) -> Pipeline: ... # type: ignore [override]
def sort( # type: ignore [override]
self,
name: _Key,
start: Optional[int] = ...,
num: Optional[int] = ...,
by: Optional[_Key] = ...,
get: Optional[Union[_Key, Sequence[_Key]]] = ...,
desc: bool = ...,
alpha: bool = ...,
store: Optional[_Key] = ...,
groups: bool = ...,
) -> Pipeline: ...
def scan(self, cursor: int = ..., match: Optional[_Key] = ..., count: Optional[int] = ...) -> Pipeline: ... # type: ignore [override]
def scan_iter(self, match: Optional[Text] = ..., count: Optional[int] = ...) -> Iterator[Any]: ...
def sscan(self, name: _Key, cursor: int = ..., match: Text = ..., count: int = ...) -> Pipeline: ... # type: ignore [override]
def sscan_iter(self, name, match=..., count=...) -> Iterator[Any]: ...
def hscan(self, name: _Key, cursor: int = ..., match: Text = ..., count: int = ...) -> Pipeline: ... # type: ignore [override]
def hscan_iter(self, name, match=..., count=...) -> Iterator[Any]: ...
def zscan(self, name, cursor=..., match=..., count=..., score_cast_func=...) -> Pipeline: ... # type: ignore [override]
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 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 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 xack(self, name, groupname, *ids) -> Pipeline: ... # type: ignore [override]
def xadd(self, name, fields, id=..., maxlen=..., approximate=...) -> Pipeline: ... # type: ignore [override]
def xclaim(
self,
name,
groupname,
consumername,
min_idle_time,
message_ids,
idle=...,
time=...,
retrycount=...,
force=...,
justid=...,
) -> Pipeline: ... # type: ignore [override]
def xdel(self, name, *ids) -> Pipeline: ... # type: ignore [override]
def xgroup_create(self, name, groupname, id=..., mkstream=...) -> Pipeline: ... # type: ignore [override]
def xgroup_delconsumer(self, name, groupname, consumername) -> Pipeline: ... # type: ignore [override]
def xgroup_destroy(self, name, groupname) -> Pipeline: ... # type: ignore [override]
def xgroup_setid(self, name, groupname, id) -> Pipeline: ... # type: ignore [override]
def xinfo_consumers(self, name, groupname) -> Pipeline: ... # type: ignore [override]
def xinfo_groups(self, name) -> Pipeline: ... # type: ignore [override]
def xinfo_stream(self, name) -> Pipeline: ... # type: ignore [override]
def xlen(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def xpending(self, name, groupname) -> Pipeline: ... # type: ignore [override]
def xpending_range(self, name, groupname, min, max, count, consumername=...) -> Pipeline: ... # type: ignore [override]
def xrange(self, name, min=..., max=..., count=...) -> Pipeline: ... # type: ignore [override]
def xread(self, streams, count=..., block=...) -> Pipeline: ... # type: ignore [override]
def xreadgroup(self, groupname, consumername, streams, count=..., block=..., noack=...) -> Pipeline: ... # type: ignore [override]
def xrevrange(self, name, max=..., min=..., count=...) -> Pipeline: ... # type: ignore [override]
def xtrim(self, name, maxlen, approximate=...) -> Pipeline: ... # type: ignore [override]
def zadd( # type: ignore [override]
self, name: _Key, mapping: Mapping[_Key, _Value], nx: bool = ..., xx: bool = ..., ch: bool = ..., incr: bool = ...
) -> Pipeline: ...
def zcard(self, name) -> Pipeline: ... # type: ignore [override]
def zcount(self, name: _Key, min: _Value, max: _Value) -> Pipeline: ... # type: ignore [override]
def zincrby(self, name, value, amount=...) -> Pipeline: ... # type: ignore [override]
def zinterstore(self, dest, keys, aggregate=...) -> Pipeline: ... # type: ignore [override]
def zlexcount(self, name, min, max) -> Pipeline: ... # type: ignore [override]
def zpopmax(self, name, count=...) -> Pipeline: ... # type: ignore [override]
def zpopmin(self, name, count=...) -> Pipeline: ... # type: ignore [override]
def bzpopmax(self, keys, timeout=...) -> Pipeline: ... # type: ignore [override]
def bzpopmin(self, keys, timeout=...) -> Pipeline: ... # type: ignore [override]
def zrange(self, name, start, end, desc=..., withscores=..., score_cast_func=...) -> Pipeline: ... # type: ignore [override]
def zrangebylex(self, name, min, max, start=..., num=...) -> Pipeline: ... # type: ignore [override]
def zrangebyscore(self, name, min, max, start=..., num=..., withscores=..., score_cast_func=...) -> Pipeline: ... # type: ignore [override]
def zrank(self, name: _Key, value: _Key) -> Pipeline: ... # type: ignore [override]
def zrem(self, name, *values) -> Pipeline: ... # type: ignore [override]
def zremrangebylex(self, name, min, max) -> Pipeline: ... # type: ignore [override]
def zremrangebyrank(self, name, min, max) -> Pipeline: ... # type: ignore [override]
def zremrangebyscore(self, name: _Key, min: _Value, max: _Value) -> Pipeline: ... # type: ignore [override]
def zrevrange(self, name, start, end, withscores=..., score_cast_func=...) -> Pipeline: ... # type: ignore [override]
def zrevrangebyscore(self, name, max, min, start=..., num=..., withscores=..., score_cast_func=...) -> Pipeline: ... # type: ignore [override]
def zrevrank(self, name, value) -> Pipeline: ... # type: ignore [override]
def zscore(self, name, value) -> Pipeline: ... # type: ignore [override]
def zunionstore(self, dest, keys, aggregate=...) -> Pipeline: ... # type: ignore [override]
def pfadd(self, name: _Key, *values: _Value) -> Pipeline: ... # type: ignore [override]
def pfcount(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def pfmerge(self, dest: _Key, *sources: _Key) -> Pipeline: ... # type: ignore [override]
def hdel(self, name: _Key, *keys: _Key) -> Pipeline: ... # type: ignore [override]
def hexists(self, name: _Key, key: _Key) -> Pipeline: ... # type: ignore [override]
def hget(self, name: _Key, key: _Key) -> Pipeline: ... # type: ignore [override]
def hgetall(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def hincrby(self, name: _Key, key: _Key, amount: int = ...) -> Pipeline: ... # type: ignore [override]
def hincrbyfloat(self, name: _Key, key: _Key, amount: float = ...) -> Pipeline: ... # type: ignore [override]
def hkeys(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def hlen(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def hset( # type: ignore [override]
self, name: _Key, key: Optional[_Key], value: Optional[_Value], mapping: Optional[Mapping[_Value, _Value]] = ...
) -> Pipeline: ...
def hsetnx(self, name: _Key, key: _Key, value: _Value) -> Pipeline: ... # type: ignore [override]
def hmset(self, name: _Key, mapping: Mapping[_Value, _Value]) -> Pipeline: ... # type: ignore [override]
def hmget(self, name: _Key, keys: Union[_Key, Iterable[_Key]], *args: _Key) -> Pipeline: ... # type: ignore [override]
def hvals(self, name: _Key) -> Pipeline: ... # type: ignore [override]
def publish(self, channel: _Key, message: _Key) -> Pipeline: ... # type: ignore [override]
def eval(self, script, numkeys, *keys_and_args) -> Pipeline: ... # type: ignore [override]
def evalsha(self, sha, numkeys, *keys_and_args) -> Pipeline: ... # type: ignore [override]
def script_exists(self, *args) -> Pipeline: ... # type: ignore [override]
def script_flush(self) -> Pipeline: ... # type: ignore [override]
def script_kill(self) -> Pipeline: ... # type: ignore [override]
def script_load(self, script) -> Pipeline: ... # type: ignore [override]
def register_script(self, script: Union[Text, _StrType]) -> Script: ...
def pubsub_channels(self, pattern: _Key = ...) -> Pipeline: ... # type: ignore [override]
def pubsub_numsub(self, *args: _Key) -> Pipeline: ... # type: ignore [override]
def pubsub_numpat(self) -> Pipeline: ... # type: ignore [override]
def monitor(self) -> Monitor: ...
def cluster(self, cluster_arg: str, *args: Any) -> Pipeline: ... # type: ignore [override]
def client(self) -> Any: ...
class Script:
registered_client: Any