mirror of
https://github.com/element-hq/synapse.git
synced 2024-12-14 11:57:44 +00:00
Remove the deprecated cgi module (#17741)
Removes all uses of the `cgi` module from Synapse. It was deprecated in Python version 3.11 and removed in version 3.13 ([“dead battery”](https://docs.python.org/3.13/whatsnew/3.13.html#pep-594-remove-dead-batteries-from-the-standard-library)). ### Pull Request Checklist <!-- Please read https://element-hq.github.io/synapse/latest/development/contributing_guide.html before submitting your pull request --> * [x] Pull request is based on the develop branch * [x] Pull request includes a [changelog file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog). The entry should: - Be a short description of your change which makes sense to users. "Fixed a bug that prevented receiving messages from other servers." instead of "Moved X method from `EventStore` to `EventWorkerStore`.". - Use markdown where necessary, mostly for `code blocks`. - End with either a period (.) or an exclamation mark (!). - Start with a capital letter. - Feel free to credit yourself, by adding a sentence "Contributed by @github_username." or "Contributed by [Your Name]." to the end of the entry. * [x] [Code style](https://element-hq.github.io/synapse/latest/code_style.html) is correct (run the [linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters)) --------- Co-authored-by: Quentin Gliech <quenting@element.io>
This commit is contained in:
parent
b0d2aca164
commit
2fc43e4219
3 changed files with 6 additions and 5 deletions
1
changelog.d/17741.misc
Normal file
1
changelog.d/17741.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Remove usage of the deprecated cgi module.
|
|
@ -20,8 +20,8 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import cgi
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import html
|
||||||
import json
|
import json
|
||||||
import urllib.request
|
import urllib.request
|
||||||
from typing import List
|
from typing import List
|
||||||
|
@ -85,7 +85,7 @@ def make_graph(pdus: List[dict], filename_prefix: str) -> None:
|
||||||
"name": name,
|
"name": name,
|
||||||
"type": pdu.get("pdu_type"),
|
"type": pdu.get("pdu_type"),
|
||||||
"state_key": pdu.get("state_key"),
|
"state_key": pdu.get("state_key"),
|
||||||
"content": cgi.escape(json.dumps(pdu.get("content")), quote=True),
|
"content": html.escape(json.dumps(pdu.get("content")), quote=True),
|
||||||
"time": t,
|
"time": t,
|
||||||
"depth": pdu.get("depth"),
|
"depth": pdu.get("depth"),
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
import abc
|
import abc
|
||||||
import cgi
|
|
||||||
import codecs
|
import codecs
|
||||||
import logging
|
import logging
|
||||||
import random
|
import random
|
||||||
|
@ -1813,8 +1812,9 @@ def check_content_type_is(headers: Headers, expected_content_type: str) -> None:
|
||||||
)
|
)
|
||||||
|
|
||||||
c_type = content_type_headers[0].decode("ascii") # only the first header
|
c_type = content_type_headers[0].decode("ascii") # only the first header
|
||||||
val, options = cgi.parse_header(c_type)
|
# Extract the 'essence' of the mimetype, removing any parameter
|
||||||
if val != expected_content_type:
|
c_type_parsed = c_type.split(";", 1)[0].strip()
|
||||||
|
if c_type_parsed != expected_content_type:
|
||||||
raise RequestSendFailed(
|
raise RequestSendFailed(
|
||||||
RuntimeError(
|
RuntimeError(
|
||||||
f"Remote server sent Content-Type header of '{c_type}', not '{expected_content_type}'",
|
f"Remote server sent Content-Type header of '{c_type}', not '{expected_content_type}'",
|
||||||
|
|
Loading…
Reference in a new issue