.. 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.
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
======================
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"""
--- /dev/null
+: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.