Replace deprecated cgi module usage with email#340
Replace deprecated cgi module usage with email#340cjwatson merged 2 commits intotesting-cabal:masterfrom
cgi module usage with email#340Conversation
In Python 3.11 the standard library `cgi` module was deprecated with a planned removal set for Python 3.13. In preparation for that removal, this commit removes the usage of this deprecated module and replaces it with the still supported standard library `email` module which is what the documentation points to as an alternative for how `cgi` was previously used. This should still be compatible with all the supported Python versions but will be more future proof and not emit any deprecation warnings with Python 3.11 anymore.
jugmac00
left a comment
There was a problem hiding this comment.
Thanks for your pull request. There is one change necessary, then I think we are good to go.
| msg = email.message.EmailMessage() | ||
| msg['content-type'] = mime_type | ||
|
|
||
| full_type, parameters = msg.get_content_type(), msg['content-type'].params |
There was a problem hiding this comment.
The new parameters now is a mappingproxy, so your solution is not equivalent to the old one.
When you scroll down a bit you can see that parameters will be manipulated, which does not work for a mappingproxy.
Unfortunately, the test coverage does not seem to be high for this package, so this was not uncovered.
You can workaround that issue when you wrap msg['content-type'].params in a dict().
There was a problem hiding this comment.
@mtreinish Do you think you can push the requested changes? I see the deprecation warning daily and I'd really like to get rid of it :-D Thank you!
There was a problem hiding this comment.
Sorry for the delay I missed this comment at first. I've added the dict wrapping in: 54ea8f2
In Python 3.11 the standard library
cgimodule was deprecated with a planned removal set for Python 3.13. In preparation for that removal, this commit removes the usage of this deprecated module and replaces it with the still supported standard libraryemailmodule which is what the documentation points to as an alternative for howcgiwas previously used. This should still be compatible with all the supported Python versions but will be more future proof and not emit any deprecation warnings with Python 3.11 anymore.