75 lines
2.4 KiB
Diff
75 lines
2.4 KiB
Diff
From b5a1489e0c00701aee43ca207cdde093726890e4 Mon Sep 17 00:00:00 2001
|
|
From: reivilibre <oliverw@matrix.org>
|
|
Date: Wed, 2 Feb 2022 16:51:00 +0000
|
|
Subject: [PATCH 2/2] Fix type errors introduced by new annotations in the
|
|
Prometheus Client library. (#11832)
|
|
|
|
Co-authored-by: David Robertson <davidr@element.io>
|
|
---
|
|
changelog.d/11832.misc | 1 +
|
|
synapse/metrics/__init__.py | 10 +++++++++-
|
|
synapse/python_dependencies.py | 3 +--
|
|
3 files changed, 11 insertions(+), 3 deletions(-)
|
|
create mode 100644 changelog.d/11832.misc
|
|
|
|
diff --git a/changelog.d/11832.misc b/changelog.d/11832.misc
|
|
new file mode 100644
|
|
index 0000000000..5ff117d933
|
|
--- /dev/null
|
|
+++ b/changelog.d/11832.misc
|
|
@@ -0,0 +1 @@
|
|
+Fix type errors introduced by new annotations in the Prometheus Client library.
|
|
\ No newline at end of file
|
|
diff --git a/synapse/metrics/__init__.py b/synapse/metrics/__init__.py
|
|
index 9e6c1b2f3b..cca084c18c 100644
|
|
--- a/synapse/metrics/__init__.py
|
|
+++ b/synapse/metrics/__init__.py
|
|
@@ -30,6 +30,7 @@ from typing import (
|
|
Type,
|
|
TypeVar,
|
|
Union,
|
|
+ cast,
|
|
)
|
|
|
|
import attr
|
|
@@ -60,7 +61,7 @@ all_gauges: "Dict[str, Union[LaterGauge, InFlightGauge]]" = {}
|
|
HAVE_PROC_SELF_STAT = os.path.exists("/proc/self/stat")
|
|
|
|
|
|
-class RegistryProxy:
|
|
+class _RegistryProxy:
|
|
@staticmethod
|
|
def collect() -> Iterable[Metric]:
|
|
for metric in REGISTRY.collect():
|
|
@@ -68,6 +69,13 @@ class RegistryProxy:
|
|
yield metric
|
|
|
|
|
|
+# A little bit nasty, but collect() above is static so a Protocol doesn't work.
|
|
+# _RegistryProxy matches the signature of a CollectorRegistry instance enough
|
|
+# for it to be usable in the contexts in which we use it.
|
|
+# TODO Do something nicer about this.
|
|
+RegistryProxy = cast(CollectorRegistry, _RegistryProxy)
|
|
+
|
|
+
|
|
@attr.s(slots=True, hash=True, auto_attribs=True)
|
|
class LaterGauge:
|
|
|
|
diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py
|
|
index d25f6e18e3..c7cfa9ae87 100644
|
|
--- a/synapse/python_dependencies.py
|
|
+++ b/synapse/python_dependencies.py
|
|
@@ -76,8 +76,7 @@ REQUIREMENTS = [
|
|
"msgpack>=0.5.2",
|
|
"phonenumbers>=8.2.0",
|
|
# we use GaugeHistogramMetric, which was added in prom-client 0.4.0.
|
|
- # 0.13.0 has an incorrect type annotation, see #11832.
|
|
- "prometheus_client>=0.4.0,<0.13.0",
|
|
+ "prometheus_client>=0.4.0",
|
|
# we use `order`, which arrived in attrs 19.2.0.
|
|
# Note: 21.1.0 broke `/sync`, see #9936
|
|
"attrs>=19.2.0,!=21.1.0",
|
|
--
|
|
2.34.1
|
|
|