Fix incorrect type hints for txredis. (#12042)
Some properties were marked as RedisProtocol instead of ConnectionHandler, which wraps RedisProtocol instance(s).
This commit is contained in:
parent
26211fec24
commit
d8bab6793c
|
@ -0,0 +1 @@
|
||||||
|
Correct type hints for txredis.
|
|
@ -20,7 +20,7 @@ from twisted.internet import protocol
|
||||||
from twisted.internet.defer import Deferred
|
from twisted.internet.defer import Deferred
|
||||||
|
|
||||||
class RedisProtocol(protocol.Protocol):
|
class RedisProtocol(protocol.Protocol):
|
||||||
def publish(self, channel: str, message: bytes): ...
|
def publish(self, channel: str, message: bytes) -> "Deferred[None]": ...
|
||||||
def ping(self) -> "Deferred[None]": ...
|
def ping(self) -> "Deferred[None]": ...
|
||||||
def set(
|
def set(
|
||||||
self,
|
self,
|
||||||
|
@ -52,11 +52,14 @@ def lazyConnection(
|
||||||
convertNumbers: bool = ...,
|
convertNumbers: bool = ...,
|
||||||
) -> RedisProtocol: ...
|
) -> RedisProtocol: ...
|
||||||
|
|
||||||
class ConnectionHandler: ...
|
# ConnectionHandler doesn't actually inherit from RedisProtocol, but it proxies
|
||||||
|
# most methods to it via ConnectionHandler.__getattr__.
|
||||||
|
class ConnectionHandler(RedisProtocol):
|
||||||
|
def disconnect(self) -> "Deferred[None]": ...
|
||||||
|
|
||||||
class RedisFactory(protocol.ReconnectingClientFactory):
|
class RedisFactory(protocol.ReconnectingClientFactory):
|
||||||
continueTrying: bool
|
continueTrying: bool
|
||||||
handler: RedisProtocol
|
handler: ConnectionHandler
|
||||||
pool: List[RedisProtocol]
|
pool: List[RedisProtocol]
|
||||||
replyTimeout: Optional[int]
|
replyTimeout: Optional[int]
|
||||||
def __init__(
|
def __init__(
|
||||||
|
|
|
@ -21,7 +21,7 @@ from synapse.logging.context import make_deferred_yieldable
|
||||||
from synapse.util import json_decoder, json_encoder
|
from synapse.util import json_decoder, json_encoder
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from txredisapi import RedisProtocol
|
from txredisapi import ConnectionHandler
|
||||||
|
|
||||||
from synapse.server import HomeServer
|
from synapse.server import HomeServer
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ class ExternalCache:
|
||||||
def __init__(self, hs: "HomeServer"):
|
def __init__(self, hs: "HomeServer"):
|
||||||
if hs.config.redis.redis_enabled:
|
if hs.config.redis.redis_enabled:
|
||||||
self._redis_connection: Optional[
|
self._redis_connection: Optional[
|
||||||
"RedisProtocol"
|
"ConnectionHandler"
|
||||||
] = hs.get_outbound_redis_connection()
|
] = hs.get_outbound_redis_connection()
|
||||||
else:
|
else:
|
||||||
self._redis_connection = None
|
self._redis_connection = None
|
||||||
|
|
|
@ -93,7 +93,7 @@ class RedisSubscriber(txredisapi.SubscriberProtocol):
|
||||||
|
|
||||||
synapse_handler: "ReplicationCommandHandler"
|
synapse_handler: "ReplicationCommandHandler"
|
||||||
synapse_stream_name: str
|
synapse_stream_name: str
|
||||||
synapse_outbound_redis_connection: txredisapi.RedisProtocol
|
synapse_outbound_redis_connection: txredisapi.ConnectionHandler
|
||||||
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any):
|
def __init__(self, *args: Any, **kwargs: Any):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
@ -313,7 +313,7 @@ class RedisDirectTcpReplicationClientFactory(SynapseRedisFactory):
|
||||||
protocol = RedisSubscriber
|
protocol = RedisSubscriber
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, hs: "HomeServer", outbound_redis_connection: txredisapi.RedisProtocol
|
self, hs: "HomeServer", outbound_redis_connection: txredisapi.ConnectionHandler
|
||||||
):
|
):
|
||||||
|
|
||||||
super().__init__(
|
super().__init__(
|
||||||
|
@ -353,7 +353,7 @@ def lazyConnection(
|
||||||
reconnect: bool = True,
|
reconnect: bool = True,
|
||||||
password: Optional[str] = None,
|
password: Optional[str] = None,
|
||||||
replyTimeout: int = 30,
|
replyTimeout: int = 30,
|
||||||
) -> txredisapi.RedisProtocol:
|
) -> txredisapi.ConnectionHandler:
|
||||||
"""Creates a connection to Redis that is lazily set up and reconnects if the
|
"""Creates a connection to Redis that is lazily set up and reconnects if the
|
||||||
connections is lost.
|
connections is lost.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -145,7 +145,7 @@ from synapse.util.stringutils import random_string
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from txredisapi import RedisProtocol
|
from txredisapi import ConnectionHandler
|
||||||
|
|
||||||
from synapse.handlers.oidc import OidcHandler
|
from synapse.handlers.oidc import OidcHandler
|
||||||
from synapse.handlers.saml import SamlHandler
|
from synapse.handlers.saml import SamlHandler
|
||||||
|
@ -807,7 +807,7 @@ class HomeServer(metaclass=abc.ABCMeta):
|
||||||
return AccountHandler(self)
|
return AccountHandler(self)
|
||||||
|
|
||||||
@cache_in_self
|
@cache_in_self
|
||||||
def get_outbound_redis_connection(self) -> "RedisProtocol":
|
def get_outbound_redis_connection(self) -> "ConnectionHandler":
|
||||||
"""
|
"""
|
||||||
The Redis connection used for replication.
|
The Redis connection used for replication.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue