summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2022-06-24 11:59:32 +0200
committerGitHub <noreply@github.com>2022-06-24 11:59:32 +0200
commitd3a27e4c9339d787f2eb3e68fd3b12e303cb4a42 (patch)
treeea345636f50dc9dd7f2d4d343ba2c8c0874c248b
parentd435a18c537a62a89a70005885e6e09f58997d8a (diff)
downloadcpython-git-d3a27e4c9339d787f2eb3e68fd3b12e303cb4a42.tar.gz
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.
-rw-r--r--Doc/library/gzip.rst4
-rw-r--r--Doc/whatsnew/3.12.rst6
-rw-r--r--Lib/gzip.py8
-rw-r--r--Misc/NEWS.d/next/Library/2022-06-24-09-41-41.gh-issue-94196.r2KyfS.rst4
4 files changed, 14 insertions, 8 deletions
diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst
index 8cea2649ee..1a2582d6a9 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 8526a130b3..625790151f 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 5b20e5ba69..8edcda4493 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -213,14 +213,6 @@ class GzipFile(_compression.BaseStream):
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"""
return self._buffer.raw._last_mtime
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 0000000000..e22776f1b4
--- /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.