]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-41139: Deprecate `cgi.log()` (GH-25625)
authorInada Naoki <songofacandy@gmail.com>
Thu, 29 Apr 2021 02:36:04 +0000 (11:36 +0900)
committerGitHub <noreply@github.com>
Thu, 29 Apr 2021 02:36:04 +0000 (11:36 +0900)
Doc/whatsnew/3.10.rst
Lib/cgi.py
Lib/test/test_cgi.py
Misc/NEWS.d/next/Library/2021-04-26-17-47-48.bpo-41139.ROhn1k.rst [new file with mode: 0644]

index 37c1b8a0cb2ebc6f79027a7958a285a5eb628814..fa99ce57929943f51957aa783f2dbfe4940487b4 100644 (file)
@@ -1427,6 +1427,9 @@ Deprecated
   Python 3.12. Use :meth:`pathlib.Path.hardlink_to` instead.
   (Contributed by Barney Gale in :issue:`39950`.)
 
+* ``cgi.log()`` is deprecated and slated for for removal in Python 3.12.
+  (Contributed by Inada Naoki in :issue:`41139`.)
+
 
 Removed
 =======
index 6c72507c2087de4d83c6cc6db564325b56dc870a..6cb8cf28bd66457ef05a8cc19bb53b8f2afbb780 100755 (executable)
@@ -41,6 +41,7 @@ from email.message import Message
 import html
 import locale
 import tempfile
+import warnings
 
 __all__ = ["MiniFieldStorage", "FieldStorage", "parse", "parse_multipart",
            "parse_header", "test", "print_exception", "print_environ",
@@ -77,9 +78,11 @@ def initlog(*allargs):
 
     """
     global log, logfile, logfp
+    warnings.warn("cgi.log() is deprecated as of 3.10. Use logging instead",
+                  DeprecationWarning, stacklevel=2)
     if logfile and not logfp:
         try:
-            logfp = open(logfile, "a")
+            logfp = open(logfile, "a", encoding="locale")
         except OSError:
             pass
     if not logfp:
index 239d97589cac26d45f8049280ded010bfe94a7f8..c1b893d3fe534a396152a481db571e72c442b7fb 100644 (file)
@@ -6,6 +6,7 @@ import unittest
 from collections import namedtuple
 from io import StringIO, BytesIO
 from test import support
+from test.support import warnings_helper
 
 class HackedSysModule:
     # The regression test will have real values in sys.argv, which
@@ -220,6 +221,7 @@ Content-Length: 3
                     else:
                         self.assertEqual(fs.getvalue(key), expect_val[0])
 
+    @warnings_helper.ignore_warnings(category=DeprecationWarning)
     def test_log(self):
         cgi.log("Testing")
 
diff --git a/Misc/NEWS.d/next/Library/2021-04-26-17-47-48.bpo-41139.ROhn1k.rst b/Misc/NEWS.d/next/Library/2021-04-26-17-47-48.bpo-41139.ROhn1k.rst
new file mode 100644 (file)
index 0000000..5df8929
--- /dev/null
@@ -0,0 +1 @@
+Deprecate undocumented ``cgi.log()`` API.