synapse/changelog.d/11356.misc
Sean Quah 7862f821de
Annotate string constants in synapse.api.constants with Final (#11356)
This change makes mypy complain if the constants are ever reassigned,
and, more usefully, makes mypy type them as `Literal`s instead of `str`s,
allowing code of the following form to pass mypy:
```py
def do_something(membership: Literal["join", "leave"], ...): ...

do_something(Membership.JOIN, ...)
```
2021-11-25 16:14:23 +00:00

1 line
108 B
Text

Add `Final` annotation to string constants in `synapse.api.constants` so that they get typed as `Literal`s.