mirror of
https://github.com/python/cpython.git
synced 2025-08-24 18:55:00 +00:00
bpo-33487: improve BZ2File Deprecation and documentation. (GH-6785)
Emit warning when None passed explicitly, list Python version since deprecation in warning message and docs.
This commit is contained in:
parent
f019579828
commit
ffa198c642
3 changed files with 17 additions and 6 deletions
|
@ -81,7 +81,7 @@ All of the classes in this module may safely be accessed from multiple threads.
|
||||||
If *filename* is a file object (rather than an actual file name), a mode of
|
If *filename* is a file object (rather than an actual file name), a mode of
|
||||||
``'w'`` does not truncate the file, and is instead equivalent to ``'a'``.
|
``'w'`` does not truncate the file, and is instead equivalent to ``'a'``.
|
||||||
|
|
||||||
The *buffering* argument is ignored. Its use is deprecated.
|
The *buffering* argument is ignored. Its use is deprecated since Python 3.0.
|
||||||
|
|
||||||
If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be a number between
|
If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be a number between
|
||||||
``1`` and ``9`` specifying the level of compression: ``1`` produces the
|
``1`` and ``9`` specifying the level of compression: ``1`` produces the
|
||||||
|
@ -109,6 +109,10 @@ All of the classes in this module may safely be accessed from multiple threads.
|
||||||
|
|
||||||
.. versionadded:: 3.3
|
.. versionadded:: 3.3
|
||||||
|
|
||||||
|
|
||||||
|
.. deprecated:: 3.0
|
||||||
|
The keyword argument *buffering* was deprecated and is now ignored.
|
||||||
|
|
||||||
.. versionchanged:: 3.1
|
.. versionchanged:: 3.1
|
||||||
Support for the :keyword:`with` statement was added.
|
Support for the :keyword:`with` statement was added.
|
||||||
|
|
||||||
|
|
14
Lib/bz2.py
14
Lib/bz2.py
|
@ -24,6 +24,8 @@ _MODE_READ = 1
|
||||||
# Value 2 no longer used
|
# Value 2 no longer used
|
||||||
_MODE_WRITE = 3
|
_MODE_WRITE = 3
|
||||||
|
|
||||||
|
_sentinel = object()
|
||||||
|
|
||||||
|
|
||||||
class BZ2File(_compression.BaseStream):
|
class BZ2File(_compression.BaseStream):
|
||||||
|
|
||||||
|
@ -36,7 +38,7 @@ class BZ2File(_compression.BaseStream):
|
||||||
returned as bytes, and data to be written should be given as bytes.
|
returned as bytes, and data to be written should be given as bytes.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, filename, mode="r", buffering=None, compresslevel=9):
|
def __init__(self, filename, mode="r", buffering=_sentinel, compresslevel=9):
|
||||||
"""Open a bzip2-compressed file.
|
"""Open a bzip2-compressed file.
|
||||||
|
|
||||||
If filename is a str, bytes, or PathLike object, it gives the
|
If filename is a str, bytes, or PathLike object, it gives the
|
||||||
|
@ -47,7 +49,7 @@ class BZ2File(_compression.BaseStream):
|
||||||
'x' for creating exclusively, or 'a' for appending. These can
|
'x' for creating exclusively, or 'a' for appending. These can
|
||||||
equivalently be given as 'rb', 'wb', 'xb', and 'ab'.
|
equivalently be given as 'rb', 'wb', 'xb', and 'ab'.
|
||||||
|
|
||||||
buffering is ignored. Its use is deprecated.
|
buffering is ignored since Python 3.0. Its use is deprecated.
|
||||||
|
|
||||||
If mode is 'w', 'x' or 'a', compresslevel can be a number between 1
|
If mode is 'w', 'x' or 'a', compresslevel can be a number between 1
|
||||||
and 9 specifying the level of compression: 1 produces the least
|
and 9 specifying the level of compression: 1 produces the least
|
||||||
|
@ -63,9 +65,11 @@ class BZ2File(_compression.BaseStream):
|
||||||
self._closefp = False
|
self._closefp = False
|
||||||
self._mode = _MODE_CLOSED
|
self._mode = _MODE_CLOSED
|
||||||
|
|
||||||
if buffering is not None:
|
if buffering is not _sentinel:
|
||||||
warnings.warn("Use of 'buffering' argument is deprecated",
|
warnings.warn("Use of 'buffering' argument is deprecated and ignored"
|
||||||
DeprecationWarning)
|
"since Python 3.0.",
|
||||||
|
DeprecationWarning,
|
||||||
|
stacklevel=2)
|
||||||
|
|
||||||
if not (1 <= compresslevel <= 9):
|
if not (1 <= compresslevel <= 9):
|
||||||
raise ValueError("compresslevel must be between 1 and 9")
|
raise ValueError("compresslevel must be between 1 and 9")
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
BZ2file now emit a DeprecationWarning when buffering=None is passed, the
|
||||||
|
deprecation message and documentation also now explicitely state it is
|
||||||
|
deprecated since 3.0.
|
Loading…
Add table
Add a link
Reference in a new issue