2011f3a0b2
* PEP 594 has cgi module scheduled for deprecation in Python 3.8. Reimplement cgi.parse_header in Sanic. The new implementation is much faster than either cgi.parse_header or equivalent werkzeug.parse_options_header, and unlike the two, handles also quoted values with semicolons or \" in them. * Fix string escape. * Useless linter complaints. * More linter issues * Add return type hint. * Do not support quoted-pair escapes. - Improved documentation and renamed the function more aptly as it only seems to apply to content-type and content-disposition headers. * Unquote filenames also in normal mode. * Add tests for headers. Adapted from CPython parse_header tests with changes on the final test. * Linter * Revert "Unquote filenames also in normal mode." This reverts commit bf0d502bcd5c443a4178f1c239692976c0f5f185. * Improved parse_content_header and added tests with Firefox and Chrome. - Unescaping of quotes moved to parse_content_header because it affects all fields, not just filenames. - It is impossible to handle all cases correctly but the current heuristics should suffice well for typical cases and beyond. - Added comparisons with cgi.parse_header and werkzeug.parse_options_header. * Updated comments as well.