mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 13:04:46 +08:00
Improve redis.cluster types (#8573)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from _typeshed import Incomplete, Self
|
||||
from collections.abc import Callable
|
||||
from collections.abc import Callable, Iterable
|
||||
from threading import Lock
|
||||
from types import TracebackType
|
||||
from typing import Any, ClassVar, Generic
|
||||
@@ -9,7 +9,7 @@ from redis.client import CaseInsensitiveDict, PubSub, Redis
|
||||
from redis.commands import CommandsParser, RedisClusterCommands
|
||||
from redis.commands.core import _StrType
|
||||
from redis.connection import BaseParser, Connection, Encoder
|
||||
from redis.exceptions import RedisError
|
||||
from redis.exceptions import MovedError, RedisError
|
||||
|
||||
def get_node_name(host: str, port: str | int) -> str: ...
|
||||
def get_connection(redis_node: Redis[Any], *args, **options) -> Connection: ...
|
||||
@@ -23,7 +23,7 @@ SLOT_ID: str
|
||||
REDIS_ALLOWED_KEYS: tuple[str, ...]
|
||||
KWARGS_DISABLED_KEYS: tuple[str, ...]
|
||||
|
||||
def cleanup_kwargs(**kwargs): ...
|
||||
def cleanup_kwargs(**kwargs: Any) -> dict[str, Any]: ...
|
||||
|
||||
# It uses `DefaultParser` in real life, but it is a dynamic base class.
|
||||
class ClusterParser(BaseParser): ...
|
||||
@@ -106,47 +106,51 @@ class RedisCluster(AbstractRedisCluster, RedisClusterCommands[_StrType], Generic
|
||||
def close(self) -> None: ...
|
||||
|
||||
class ClusterNode:
|
||||
host: Any
|
||||
port: Any
|
||||
name: Any
|
||||
server_type: Any
|
||||
redis_connection: Any
|
||||
def __init__(self, host, port, server_type: Any | None = ..., redis_connection: Any | None = ...) -> None: ...
|
||||
def __eq__(self, obj): ...
|
||||
host: str
|
||||
port: int
|
||||
name: str
|
||||
server_type: str | None
|
||||
redis_connection: Redis[Incomplete] | None
|
||||
def __init__(
|
||||
self, host: str, port: int, server_type: str | None = ..., redis_connection: Redis[Incomplete] | None = ...
|
||||
) -> None: ...
|
||||
def __eq__(self, obj: object) -> bool: ...
|
||||
def __del__(self) -> None: ...
|
||||
|
||||
class LoadBalancer:
|
||||
primary_to_idx: Any
|
||||
start_index: Any
|
||||
primary_to_idx: dict[str, int]
|
||||
start_index: int
|
||||
def __init__(self, start_index: int = ...) -> None: ...
|
||||
def get_server_index(self, primary, list_size): ...
|
||||
def get_server_index(self, primary: str, list_size: int) -> int: ...
|
||||
def reset(self) -> None: ...
|
||||
|
||||
class NodesManager:
|
||||
nodes_cache: Any
|
||||
slots_cache: Any
|
||||
startup_nodes: Any
|
||||
default_node: Any
|
||||
from_url: Any
|
||||
connection_kwargs: Any
|
||||
read_load_balancer: Any
|
||||
nodes_cache: dict[str, ClusterNode]
|
||||
slots_cache: dict[str, list[ClusterNode]]
|
||||
startup_nodes: dict[str, ClusterNode]
|
||||
default_node: ClusterNode | None
|
||||
from_url: bool
|
||||
connection_kwargs: dict[str, Any]
|
||||
read_load_balancer: LoadBalancer
|
||||
def __init__(
|
||||
self,
|
||||
startup_nodes,
|
||||
startup_nodes: Iterable[ClusterNode],
|
||||
from_url: bool = ...,
|
||||
require_full_coverage: bool = ...,
|
||||
lock: Incomplete | None = ...,
|
||||
lock: Lock | None = ...,
|
||||
dynamic_startup_nodes: bool = ...,
|
||||
**kwargs,
|
||||
**kwargs: Any,
|
||||
) -> None: ...
|
||||
def get_node(self, host: Any | None = ..., port: Any | None = ..., node_name: Any | None = ...): ...
|
||||
def update_moved_exception(self, exception) -> None: ...
|
||||
def get_node_from_slot(self, slot, read_from_replicas: bool = ..., server_type: Any | None = ...): ...
|
||||
def get_nodes_by_server_type(self, server_type): ...
|
||||
def populate_startup_nodes(self, nodes) -> None: ...
|
||||
def check_slots_coverage(self, slots_cache): ...
|
||||
def create_redis_connections(self, nodes) -> None: ...
|
||||
def create_redis_node(self, host, port, **kwargs): ...
|
||||
def get_node(
|
||||
self, host: str | None = ..., port: int | str | None = ..., node_name: str | None = ...
|
||||
) -> ClusterNode | None: ...
|
||||
def update_moved_exception(self, exception: MovedError) -> None: ...
|
||||
def get_node_from_slot(self, slot: str, read_from_replicas: bool = ..., server_type: str | None = ...) -> ClusterNode: ...
|
||||
def get_nodes_by_server_type(self, server_type: str) -> list[ClusterNode]: ...
|
||||
def populate_startup_nodes(self, nodes: Iterable[ClusterNode]) -> None: ...
|
||||
def check_slots_coverage(self, slots_cache: dict[str, list[ClusterNode]]) -> bool: ...
|
||||
def create_redis_connections(self, nodes: Iterable[ClusterNode]) -> None: ...
|
||||
def create_redis_node(self, host: str, port: int | str, **kwargs: Any) -> Redis[Incomplete]: ...
|
||||
def initialize(self) -> None: ...
|
||||
def close(self) -> None: ...
|
||||
def reset(self) -> None: ...
|
||||
|
||||
Reference in New Issue
Block a user