diff --git a/synapse/logging/_remote.py b/synapse/logging/_remote.py
index 475756f1db..5a61b21eaf 100644
--- a/synapse/logging/_remote.py
+++ b/synapse/logging/_remote.py
@@ -31,7 +31,11 @@ from twisted.internet.endpoints import (
TCP4ClientEndpoint,
TCP6ClientEndpoint,
)
-from twisted.internet.interfaces import IPushProducer, IStreamClientEndpoint
+from twisted.internet.interfaces import (
+ IPushProducer,
+ IReactorTCP,
+ IStreamClientEndpoint,
+)
from twisted.internet.protocol import Factory, Protocol
from twisted.internet.tcp import Connection
from twisted.python.failure import Failure
@@ -59,14 +63,14 @@ class LogProducer:
_buffer: Deque[logging.LogRecord]
_paused: bool = attr.ib(default=False, init=False)
- def pauseProducing(self):
+ def pauseProducing(self) -> None:
self._paused = True
- def stopProducing(self):
+ def stopProducing(self) -> None:
self._paused = True
self._buffer = deque()
- def resumeProducing(self):
+ def resumeProducing(self) -> None:
# If we're already producing, nothing to do.
self._paused = False
@@ -102,8 +106,8 @@ class RemoteHandler(logging.Handler):
host: str,
port: int,
maximum_buffer: int = 1000,
- level=logging.NOTSET,
- _reactor=None,
+ level: int = logging.NOTSET,
+ _reactor: Optional[IReactorTCP] = None,
):
super().__init__(level=level)
self.host = host
@@ -118,7 +122,7 @@ class RemoteHandler(logging.Handler):
if _reactor is None:
from twisted.internet import reactor
- _reactor = reactor
+ _reactor = reactor # type: ignore[assignment]
try:
ip = ip_address(self.host)
@@ -139,7 +143,7 @@ class RemoteHandler(logging.Handler):
self._stopping = False
self._connect()
- def close(self):
+ def close(self) -> None:
self._stopping = True
self._service.stopService()
diff --git a/synapse/logging/formatter.py b/synapse/logging/formatter.py
index c0f12ecd15..c88b8ae545 100644
--- a/synapse/logging/formatter.py
+++ b/synapse/logging/formatter.py
@@ -16,6 +16,8 @@
import logging
import traceback
from io import StringIO
+from types import TracebackType
+from typing import Optional, Tuple, Type
class LogFormatter(logging.Formatter):
@@ -28,10 +30,14 @@ class LogFormatter(logging.Formatter):
where it was caught are logged).
"""
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
-
- def formatException(self, ei):
+ def formatException(
+ self,
+ ei: Tuple[
+ Optional[Type[BaseException]],
+ Optional[BaseException],
+ Optional[TracebackType],
+ ],
+ ) -> str:
sio = StringIO()
(typ, val, tb) = ei
diff --git a/synapse/logging/handlers.py b/synapse/logging/handlers.py
index 478b527494..dec2a2c3dd 100644
--- a/synapse/logging/handlers.py
+++ b/synapse/logging/handlers.py
@@ -49,7 +49,7 @@ class PeriodicallyFlushingMemoryHandler(MemoryHandler):
)
self._flushing_thread.start()
- def on_reactor_running():
+ def on_reactor_running() -> None:
self._reactor_started = True
reactor_to_use: IReactorCore
@@ -74,7 +74,7 @@ class PeriodicallyFlushingMemoryHandler(MemoryHandler):
else:
return True
- def _flush_periodically(self):
+ def _flush_periodically(self) -> None:
"""
Whilst this handler is active, flush the handler periodically.
"""
diff --git a/synapse/logging/scopecontextmanager.py b/synapse/logging/scopecontextmanager.py
index d57e7c5324..a26a1a58e7 100644
--- a/synapse/logging/scopecontextmanager.py
+++ b/synapse/logging/scopecontextmanager.py
@@ -13,6 +13,8 @@
# limitations under the License.import logging
import logging
+from types import TracebackType
+from typing import Optional, Type
from opentracing import Scope, ScopeManager
@@ -107,19 +109,26 @@ class _LogContextScope(Scope):
and - if enter_logcontext was set - the logcontext is finished too.
"""
- def __init__(self, manager, span, logcontext, enter_logcontext, finish_on_close):
+ def __init__(
+ self,
+ manager: LogContextScopeManager,
+ span,
+ logcontext,
+ enter_logcontext: bool,
+ finish_on_close: bool,
+ ):
"""
Args:
- manager (LogContextScopeManager):
+ manager:
the manager that is responsible for this scope.
span (Span):
the opentracing span which this scope represents the local
lifetime for.
logcontext (LogContext):
the logcontext to which this scope is attached.
- enter_logcontext (Boolean):
+ enter_logcontext:
if True the logcontext will be exited when the scope is finished
- finish_on_close (Boolean):
+ finish_on_close:
if True finish the span when the scope is closed
"""
super().__init__(manager, span)
@@ -127,16 +136,21 @@ class _LogContextScope(Scope):
self._finish_on_close = finish_on_close
self._enter_logcontext = enter_logcontext
- def __exit__(self, exc_type, value, traceback):
+ def __exit__(
+ self,
+ exc_type: Optional[Type[BaseException]],
+ value: Optional[BaseException],
+ traceback: Optional[TracebackType],
+ ) -> None:
if exc_type == twisted.internet.defer._DefGen_Return:
# filter out defer.returnValue() calls
exc_type = value = traceback = None
super().__exit__(exc_type, value, traceback)
- def __str__(self):
+ def __str__(self) -> str:
return f"Scope<{self.span}>"
- def close(self):
+ def close(self) -> None:
active_scope = self.manager.active
if active_scope is not self:
logger.error(
|