diff options
author | Sviatoslav Sydorenko <wk@sydorenko.org.ua> | 2023-01-05 05:29:43 +0100 |
---|---|---|
committer | Sviatoslav Sydorenko <wk@sydorenko.org.ua> | 2023-01-05 05:29:43 +0100 |
commit | 6b7c2cdc91ca5ba1f6cf3e5d9e8e386266c64ce6 (patch) | |
tree | 30e2fd2c29b55e764de9ea473f75ef82ff94609d | |
parent | 49401127ca9082b5bdf9ea20d71ddf107fa73cb2 (diff) | |
download | cherrypy-git-6b7c2cdc91ca5ba1f6cf3e5d9e8e386266c64ce6.tar.gz |
🔧 Stop using the `cgi` stdlib module
This module is deprecated since Python 3.11.
-rw-r--r-- | CHANGES.rst | 6 | ||||
-rw-r--r-- | cherrypy/lib/httputil.py | 9 |
2 files changed, 13 insertions, 2 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index 35b3f895..641976d4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,9 @@ +v(next) +------- + +* Removed the use of :mod:`cgi` deprecated in Python 3.11 + -- by :user:`webknjaz`. + v18.8.0 ------- diff --git a/cherrypy/lib/httputil.py b/cherrypy/lib/httputil.py index ced310a0..f852cbd6 100644 --- a/cherrypy/lib/httputil.py +++ b/cherrypy/lib/httputil.py @@ -12,8 +12,8 @@ import email.utils import re import builtins from binascii import b2a_base64 -from cgi import parse_header from email.header import decode_header +from email.message import EmailMessage as _EmailMessage from http.server import BaseHTTPRequestHandler from urllib.parse import unquote_plus @@ -155,7 +155,12 @@ class HeaderElement(object): @staticmethod def parse(elementstr): """Transform 'token;key=val' to ('token', {'key': 'val'}).""" - initial_value, params = parse_header(elementstr) + msg = _EmailMessage() + msg['content-type'] = elementstr + + initial_value = msg.get_content_type() + params = dict(msg['content-type'].params) + return initial_value, params @classmethod |