Part of PEP 594.
* :mod:`aifc`
* :mod:`audioop`
+ * :mod:`cgi`
+ * :mod:`cgitb`
(Contributed by Brett Cannon in :issue:`47061`.)
"print_form", "print_directory", "print_arguments",
"print_environ_usage"]
+
+warnings._deprecated(__name__, remove=(3,13))
+
# Logging support
# ===============
import time
import tokenize
import traceback
+import warnings
from html import escape as html_escape
+warnings._deprecated(__name__, remove=(3, 13))
+
+
def reset():
"""Return a string that resets the CGI and browser to a known state."""
return '''<!--: spam
"""
import os
from configparser import RawConfigParser
+import warnings
from distutils.cmd import Command
def _read_pypi_response(self, response):
"""Read and decode a PyPI HTTP response."""
- import cgi
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore", DeprecationWarning)
+ import cgi
content_type = response.getheader('content-type', 'text/plain')
encoding = cgi.parse_header(content_type)[1].get('charset', 'ascii')
return response.read().decode(encoding)
-import cgi
import os
import sys
import tempfile
from test import support
from test.support import warnings_helper
+cgi = warnings_helper.import_deprecated("cgi")
+
+
class HackedSysModule:
# The regression test will have real values in sys.argv, which
# will completely confuse the test of the cgi module
from test.support.os_helper import temp_dir
from test.support.script_helper import assert_python_failure
+from test.support.warnings_helper import import_deprecated
import unittest
import sys
-import cgitb
+cgitb = import_deprecated("cgitb")
class TestCgitb(unittest.TestCase):
cgi_file2 = """\
#!%s
-import cgi
+import os
+import sys
+import urllib.parse
print("Content-type: text/html")
print()
-form = cgi.FieldStorage()
-print("%%s, %%s, %%s" %% (form.getfirst("spam"), form.getfirst("eggs"),
- form.getfirst("bacon")))
+content_length = int(os.environ["CONTENT_LENGTH"])
+query_string = sys.stdin.buffer.read(content_length)
+params = {key.decode("utf-8"): val.decode("utf-8")
+ for key, val in urllib.parse.parse_qsl(query_string)}
+
+print("%%s, %%s, %%s" %% (params["spam"], params["eggs"], params["bacon"]))
"""
cgi_file4 = """\
--- /dev/null
+Deprecate cgi and cgitb.