-
- Downloads
Use mypy 1.0 (#15052)
* Update mypy and mypy-zope * Remove unused ignores These used to suppress ``` synapse/storage/engines/__init__.py:28: error: "__new__" must return a class instance (got "NoReturn") [misc] ``` and ``` synapse/http/matrixfederationclient.py:1270: error: "BaseException" has no attribute "reasons" [attr-defined] ``` (note that we check `hasattr(e, "reasons")` above) * Avoid empty body warnings, sometimes by marking methods as abstract E.g. ``` tests/handlers/test_register.py:58: error: Missing return statement [empty-body] tests/handlers/test_register.py:108: error: Missing return statement [empty-body] ``` * Suppress false positive about `JaegerConfig` Complaint was ``` synapse/logging/opentracing.py:450: error: Function "Type[Config]" could always be true in boolean context [truthy-function] ``` * Fix not calling `is_state()` Oops! ``` tests/rest/client/test_third_party_rules.py:428: error: Function "Callable[[], bool]" could always be true in boolean context [truthy-function] ``` * Suppress false positives from ParamSpecs ```` synapse/logging/opentracing.py:971: error: Argument 2 to "_custom_sync_async_decorator" has incompatible type "Callable[[Arg(Callable[P, R], 'func'), **P], _GeneratorContextManager[None]]"; expected "Callable[[Callable[P, R], **P], _GeneratorContextManager[None]]" [arg-type] synapse/logging/opentracing.py:1017: error: Argument 2 to "_custom_sync_async_decorator" has incompatible type "Callable[[Arg(Callable[P, R], 'func'), **P], _GeneratorContextManager[None]]"; expected "Callable[[Callable[P, R], **P], _GeneratorContextManager[None]]" [arg-type] ```` * Drive-by improvement to `wrapping_logic` annotation * Workaround false "unreachable" positives See https://github.com/Shoobx/mypy-zope/issues/91 ``` tests/http/test_proxyagent.py:626: error: Statement is unreachable [unreachable] tests/http/test_proxyagent.py:762: error: Statement is unreachable [unreachable] tests/http/test_proxyagent.py:826: error: Statement is unreachable [unreachable] tests/http/test_proxyagent.py:838: error: Statement is unreachable [unreachable] tests/http/test_proxyagent.py:845: error: Statement is unreachable [unreachable] tests/http/federation/test_matrix_federation_agent.py:151: error: Statement is unreachable [unreachable] tests/http/federation/test_matrix_federation_agent.py:452: error: Statement is unreachable [unreachable] tests/logging/test_remote_handler.py:60: error: Statement is unreachable [unreachable] tests/logging/test_remote_handler.py:93: error: Statement is unreachable [unreachable] tests/logging/test_remote_handler.py:127: error: Statement is unreachable [unreachable] tests/logging/test_remote_handler.py:152: error: Statement is unreachable [unreachable] ``` * Changelog * Tweak DBAPI2 Protocol to be accepted by mypy 1.0 Some extra context in: - https://github.com/matrix-org/python-canonicaljson/pull/57 - https://github.com/python/mypy/issues/6002 - https://mypy.readthedocs.io/en/latest/common_issues.html#covariant-subtyping-of-mutable-protocol-members-is-rejected * Pull in updated canonicaljson lib so the protocol check just works * Improve comments in opentracing I tried to workaround the ignores but found it too much trouble. I think the corresponding issue is https://github.com/python/mypy/issues/12909. The mypy repo has a PR claiming to fix this (https://github.com/python/mypy/pull/14677) which might mean this gets resolved soon? * Better annotation for INTERACTIVE_AUTH_CHECKERS * Drive-by AUTH_TYPE annotation, to remove an ignore
Showing
- changelog.d/15052.misc 1 addition, 0 deletionschangelog.d/15052.misc
- poetry.lock 36 additions, 33 deletionspoetry.lock
- synapse/handlers/auth.py 1 addition, 1 deletionsynapse/handlers/auth.py
- synapse/handlers/ui_auth/checkers.py 14 additions, 4 deletionssynapse/handlers/ui_auth/checkers.py
- synapse/http/matrixfederationclient.py 1 addition, 1 deletionsynapse/http/matrixfederationclient.py
- synapse/logging/opentracing.py 17 additions, 7 deletionssynapse/logging/opentracing.py
- synapse/rest/media/v1/_base.py 6 additions, 3 deletionssynapse/rest/media/v1/_base.py
- synapse/storage/engines/__init__.py 2 additions, 2 deletionssynapse/storage/engines/__init__.py
- synapse/storage/types.py 62 additions, 12 deletionssynapse/storage/types.py
- synapse/streams/__init__.py 4 additions, 3 deletionssynapse/streams/__init__.py
- tests/handlers/test_register.py 2 additions, 2 deletionstests/handlers/test_register.py
- tests/http/federation/test_matrix_federation_agent.py 6 additions, 5 deletionstests/http/federation/test_matrix_federation_agent.py
- tests/http/test_proxyagent.py 19 additions, 21 deletionstests/http/test_proxyagent.py
- tests/logging/test_remote_handler.py 9 additions, 8 deletionstests/logging/test_remote_handler.py
- tests/rest/client/test_auth.py 3 additions, 0 deletionstests/rest/client/test_auth.py
- tests/rest/client/test_third_party_rules.py 1 addition, 1 deletiontests/rest/client/test_third_party_rules.py
- tests/utils.py 25 additions, 1 deletiontests/utils.py
Loading
Please register or sign in to comment