Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix mypy errors on Twisted 24.11.0 #17998

Merged
merged 5 commits into from
Dec 18, 2024

Conversation

anoadragon453
Copy link
Member

Fixes various mypy errors associated with Twisted 24.11.0.

Hopefully addresses #17075, though I've yet to test against trunk.

Changes should be compatible with our currently pinned Twisted version of 24.7.0.

resolveHostName wanted an instance of a type. We also had to switch from provider to
implementer, as the latter implies that any instances implement the given interface.

Fixed the following error:

synapse/http/client.py:243: error: Argument 1 to "resolveHostName" of "IHostnameResolver" has incompatible type "type[EndpointReceiver]"; expected "IResolutionReceiver"  [arg-type]
mypy would not accept passing a **kwargs to `HostnameEndpoint`.

Resolves the following errors:

 synapse/http/proxyagent.py:385: error: Argument 4 to "HostnameEndpoint" has incompatible type "**dict[str, object]"; expected "float"  [arg-type]
synapse/http/proxyagent.py:385: error: Argument 4 to "HostnameEndpoint" has incompatible type "**dict[str, object]"; expected "Union[bytes, str, tuple[Union[bytes, str], int], None]"  [arg-type]
synapse/http/proxyagent.py:385: error: Argument 4 to "HostnameEndpoint" has incompatible type "**dict[str, object]"; expected "Optional[float]"  [arg-type]
`._hostStr` was replaced with `._hostText` in twisted/twisted#12351

Resolves the following errors:

tests/http/test_proxyagent.py:857: error: "HostnameEndpoint" has no attribute "_hostStr"  [attr-defined]
tests/http/test_proxyagent.py:869: error: "HostnameEndpoint" has no attribute "_hostStr"  [attr-defined]
just mypy being particular about changing the type of an already-defined variable.

Resolves the following mypy errors:

synapse/http/replicationagent.py:92: error: Incompatible types in assignment (expression has type "_WrapperEndpoint", variable has type "HostnameEndpoint")  [assignment]
synapse/http/proxyagent.py:394: error: Incompatible types in assignment (expression has type "_WrapperEndpoint", variable has type "HostnameEndpoint")  [assignment]
@anoadragon453 anoadragon453 changed the title pass an instance, not a type, to resolveHostName Fix mypy errors on Twisted 24.11.0 Dec 4, 2024
@anoadragon453 anoadragon453 marked this pull request as ready for review December 4, 2024 18:51
@anoadragon453 anoadragon453 requested a review from a team as a code owner December 4, 2024 18:51
@anoadragon453 anoadragon453 merged commit 3eb9236 into develop Dec 18, 2024
39 checks passed
@anoadragon453 anoadragon453 deleted the anoa/fix_mypy_errors_latest_twisted branch December 18, 2024 11:49
yingziwu added a commit to yingziwu/synapse that referenced this pull request Jan 16, 2025
Please note that this version of Synapse drops support for PostgreSQL 11 and 12. The minimum version of PostgreSQL supported is now version 13.

No significant changes since 1.122.0rc1.

- Remove support for PostgreSQL 11 and 12. Contributed by @clokep. ([\#18034](element-hq/synapse#18034))

- Added the `email.tlsname` config option.  This allows specifying the domain name used to validate the SMTP server's TLS certificate separately from the `email.smtp_host` to connect to. ([\#17849](element-hq/synapse#17849))
- Module developers will have access to the user ID of the requester when adding `check_username_for_spam` callbacks to `spam_checker_module_callbacks`. Contributed by [email protected]. ([\#17916](element-hq/synapse#17916))
- Add endpoints to the Admin API to fetch the number of invites the provided user has sent after a given timestamp,
  fetch the number of rooms the provided user has joined after a given timestamp, and get report IDs of event
  reports against a provided user (i.e. where the user was the sender of the reported event). ([\#17948](element-hq/synapse#17948))
- Support stable account suspension from [MSC3823](matrix-org/matrix-spec-proposals#3823). ([\#17964](element-hq/synapse#17964))
- Add `macaroon_secret_key_path` config option. ([\#17983](element-hq/synapse#17983))

- Fix bug when rejecting withdrew invite with a `third_party_rules` module, where the invite would be stuck for the client. ([\#17930](element-hq/synapse#17930))
- Properly purge state groups tables when purging a room with the Admin API. ([\#18024](element-hq/synapse#18024))
- Fix a bug preventing the admin redaction endpoint from working on messages from remote users. ([\#18029](element-hq/synapse#18029), [\#18043](element-hq/synapse#18043))

- Update `synapse.app.generic_worker` documentation to only recommend `GET` requests for stream writer routes by default, unless the worker is also configured as a stream writer. Contributed by @evoL. ([\#17954](element-hq/synapse#17954))
- Add documentation for the previously-undocumented `last_seen_ts` query parameter to the query user Admin API. ([\#17976](element-hq/synapse#17976))
- Improve documentation for the `TaskScheduler` class. ([\#17992](element-hq/synapse#17992))
- Fix example in reverse proxy docs to include server port. ([\#17994](element-hq/synapse#17994))
- Update Alpine Linux Synapse Package Maintainer within the installation instructions. ([\#17846](element-hq/synapse#17846))

- Add `RoomID` & `EventID` rust types. ([\#17996](element-hq/synapse#17996))
- Fix various type errors across the codebase. ([\#17998](element-hq/synapse#17998))
- Disable DB statement timeout when doing a room purge since it can be quite long. ([\#18017](element-hq/synapse#18017))
- Remove some remaining uses of `twisted.internet.defer.returnValue`. Contributed by Colin Watson. ([\#18020](element-hq/synapse#18020))
- Refactor `get_profile` to no longer include fields with a value of `None`. ([\#18063](element-hq/synapse#18063))

* Bump anyhow from 1.0.93 to 1.0.95. ([\#18012](element-hq/synapse#18012), [\#18045](element-hq/synapse#18045))
* Bump authlib from 1.3.2 to 1.4.0. ([\#18048](element-hq/synapse#18048))
* Bump dawidd6/action-download-artifact from 6 to 7. ([\#17981](element-hq/synapse#17981))
* Bump http from 1.1.0 to 1.2.0. ([\#18013](element-hq/synapse#18013))
- Bump mypy from 1.11.2 to 1.12.1. ([\#17999](element-hq/synapse#17999))
* Bump mypy-zope from 1.0.8 to 1.0.9. ([\#18047](element-hq/synapse#18047))
* Bump pillow from 10.4.0 to 11.0.0. ([\#18015](element-hq/synapse#18015))
* Bump pydantic from 2.9.2 to 2.10.3. ([\#18014](element-hq/synapse#18014))
* Bump pyicu from 2.13.1 to 2.14. ([\#18060](element-hq/synapse#18060))
* Bump pyo3 from 0.23.2 to 0.23.3. ([\#18001](element-hq/synapse#18001))
* Bump python-multipart from 0.0.16 to 0.0.18. ([\#17985](element-hq/synapse#17985))
* Bump sentry-sdk from 2.17.0 to 2.19.2. ([\#18061](element-hq/synapse#18061))
* Bump serde from 1.0.215 to 1.0.217. ([\#18031](element-hq/synapse#18031), [\#18059](element-hq/synapse#18059))
* Bump serde_json from 1.0.133 to 1.0.134. ([\#18044](element-hq/synapse#18044))
* Bump twine from 5.1.1 to 6.0.1. ([\#18049](element-hq/synapse#18049))

**Changelogs for older versions can be found [here](docs/changelogs/).**
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants