Browse Source

Fix subscriptable type usage in Python <3.9 (#15604)

Fix the following `mypy` errors when running `mypy` with Python 3.7:
```
synapse/storage/controllers/stats.py:58: error: "Counter" is not subscriptable, use "typing.Counter" instead  [misc]

tests/test_state.py:267: error: "dict" is not subscriptable, use "typing.Dict" instead  [misc]
```

Part of https://github.com/matrix-org/synapse/issues/15603

In Python 3.9, `typing` is deprecated and the types are subscriptable (generics) by default, https://peps.python.org/pep-0585/#implementation
Eric Eastwood 1 year ago
parent
commit
c51d2e6199
3 changed files with 3 additions and 3 deletions
  1. 1 0
      changelog.d/15604.misc
  2. 1 2
      synapse/storage/controllers/stats.py
  3. 1 1
      tests/test_state.py

+ 1 - 0
changelog.d/15604.misc

@@ -0,0 +1 @@
+Fix subscriptable type usage in Python <3.9.

+ 1 - 2
synapse/storage/controllers/stats.py

@@ -13,8 +13,7 @@
 # limitations under the License.
 
 import logging
-from collections import Counter
-from typing import TYPE_CHECKING, Collection, List, Tuple
+from typing import TYPE_CHECKING, Collection, Counter, List, Tuple
 
 from synapse.api.errors import SynapseError
 from synapse.storage.database import LoggingTransaction

+ 1 - 1
tests/test_state.py

@@ -264,7 +264,7 @@ class StateTestCase(unittest.TestCase):
 
         self.dummy_store.register_events(graph.walk())
 
-        context_store: dict[str, EventContext] = {}
+        context_store: Dict[str, EventContext] = {}
 
         for event in graph.walk():
             context = yield defer.ensureDeferred(