[Python-checkins] gh-94196: Remove gzip.GzipFile.filename attribute (#94197)

vstinner webhook-mailer at python.org
Fri Jun 24 05:59:41 EDT 2022


https://github.com/python/cpython/commit/d3a27e4c9339d787f2eb3e68fd3b12e303cb4a42
commit: d3a27e4c9339d787f2eb3e68fd3b12e303cb4a42
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2022-06-24T11:59:32+02:00
summary:

gh-94196: Remove gzip.GzipFile.filename attribute (#94197)

gzip: Remove the filename attribute of gzip.GzipFile,
deprecated since Python 2.6, use the name attribute instead. In write
mode, the filename attribute added '.gz' file extension if it was not
present.

files:
A Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst
M Doc/library/gzip.rst
M Doc/whatsnew/3.12.rst
M Lib/gzip.py

diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst
index 8cea2649ee6cb..1a2582d6a904b 100644
--- a/Doc/library/gzip.rst
+++ b/Doc/library/gzip.rst
@@ -165,6 +165,10 @@ The module defines the following items:
    .. versionchanged:: 3.6
       Accepts a :term:`path-like object`.
 
+   .. versionchanged:: 3.12
+      Remove the ``filename`` attribute, use the :attr:`~GzipFile.name`
+      attribute instead.
+
    .. deprecated:: 3.9
       Opening :class:`GzipFile` for writing without specifying the *mode*
       argument is deprecated.
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst
index 8526a130b3674..625790151f70c 100644
--- a/Doc/whatsnew/3.12.rst
+++ b/Doc/whatsnew/3.12.rst
@@ -218,6 +218,12 @@ Removed
   use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead.
   (Contributed by Victor Stinner in :gh:`94199`.)
 
+* :mod:`gzip`: Remove the ``filename`` attribute of :class:`gzip.GzipFile`,
+  deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute
+  instead. In write mode, the ``filename`` attribute added ``'.gz'`` file
+  extension if it was not present.
+  (Contributed by Victor Stinner in :gh:`94196`.)
+
 
 Porting to Python 3.12
 ======================
diff --git a/Lib/gzip.py b/Lib/gzip.py
index 5b20e5ba698ee..8edcda4493c89 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -212,14 +212,6 @@ def __init__(self, filename=None, mode=None,
         if self.mode == WRITE:
             self._write_gzip_header(compresslevel)
 
-    @property
-    def filename(self):
-        import warnings
-        warnings.warn("use the name attribute", DeprecationWarning, 2)
-        if self.mode == WRITE and self.name[-3:] != ".gz":
-            return self.name + ".gz"
-        return self.name
-
     @property
     def mtime(self):
         """Last modification time read from stream, or None"""
diff --git a/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst b/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst
new file mode 100644
index 0000000000000..e22776f1b45e6
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst
@@ -0,0 +1,4 @@
+:mod:`gzip`: Remove the ``filename`` attribute of :class:`gzip.GzipFile`,
+deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute
+instead. In write mode, the ``filename`` attribute added ``'.gz'`` file
+extension if it was not present. Patch by Victor Stinner.



More information about the Python-checkins mailing list