From 4e8e8aabc6e6ae1c989ef288be7bddfdbbc3187d Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Tue, 9 Apr 2019 21:49:49 +0900 Subject: bpo-30134: fix BytesWarning doc, docstring and message (GH-12739) --- Doc/library/exceptions.rst | 2 +- Doc/library/warnings.rst | 2 +- Include/code.h | 2 +- Objects/bytearrayobject.c | 10 +--------- Objects/exceptions.c | 4 ++-- Python/pythonrun.c | 2 +- 6 files changed, 7 insertions(+), 15 deletions(-) diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 2bc2bce..3cb9445 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -526,7 +526,7 @@ module for more information. .. exception:: BytesWarning - Base class for warnings related to :class:`str` and :class:`bytearray`. + Base class for warnings related to bytes and bytearray. .. versionadded:: 2.6 diff --git a/Doc/library/warnings.rst b/Doc/library/warnings.rst index b5b89c9..2f699ea 100644 --- a/Doc/library/warnings.rst +++ b/Doc/library/warnings.rst @@ -92,7 +92,7 @@ following warnings category classes are currently defined: | | Unicode. | +----------------------------------+-----------------------------------------------+ | :exc:`BytesWarning` | Base category for warnings related to | -| | str and bytearray. | +| | bytes and bytearray. | +----------------------------------+-----------------------------------------------+ While these are technically built-in exceptions, they are documented here, diff --git a/Include/code.h b/Include/code.h index 7456fd6..26c571a 100644 --- a/Include/code.h +++ b/Include/code.h @@ -104,7 +104,7 @@ PyAPI_FUNC(int) _PyCode_CheckLineNumber(PyCodeObject* co, * * Return (type(obj), obj, ...): a tuple with variable size (at least 2 items) * depending on the type and the value. The type is the first item to not - * compare bytes and str which can raise a BytesWarning exception. */ + * compare bytes and unicode which can raise a BytesWarning exception. */ PyAPI_FUNC(PyObject*) _PyCode_ConstantKey(PyObject *obj); PyAPI_FUNC(PyObject*) PyCode_Optimize(PyObject *code, PyObject* consts, diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index a96d6d9..5824832 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -1027,14 +1027,6 @@ bytearray_repr(PyByteArrayObject *self) static PyObject * bytearray_str(PyObject *op) { -#if 0 - if (Py_BytesWarningFlag) { - if (PyErr_WarnEx(PyExc_BytesWarning, - "str() on a bytearray instance", 1)) - return NULL; - } - return bytearray_repr((PyByteArrayObject*)op); -#endif return PyBytes_FromStringAndSize(((PyByteArrayObject*)op)->ob_bytes, Py_SIZE(op)); } @@ -1059,7 +1051,7 @@ bytearray_richcompare(PyObject *self, PyObject *other, int op) if (rc) { if (Py_BytesWarningFlag && op == Py_EQ) { if (PyErr_WarnEx(PyExc_BytesWarning, - "Comparison between bytearray and string", 1)) + "Comparison between bytearray and unicode", 1)) return NULL; } diff --git a/Objects/exceptions.c b/Objects/exceptions.c index 224d1ba..fc60152 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -2014,8 +2014,8 @@ SimpleExtendsException(PyExc_Warning, UnicodeWarning, * BytesWarning extends Warning */ SimpleExtendsException(PyExc_Warning, BytesWarning, - "Base class for warnings about bytes and buffer related problems, mostly\n" - "related to conversion from str or comparing to str."); + "Base class for warnings about bytes and bytearray related problems, \n" + "mostly related to comparing to str."); /* Pre-computed MemoryError instance. Best to create this as early as * possible and not wait until a MemoryError is actually raised! diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 2c9f55f..abdfb14 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -70,7 +70,7 @@ int Py_VerboseFlag; /* Needed by import.c */ int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */ int Py_InspectFlag; /* Needed to determine whether to exit at SystemExit */ int Py_NoSiteFlag; /* Suppress 'import site' */ -int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */ +int Py_BytesWarningFlag; /* Warn on comparison between bytearray and unicode */ int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */ int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */ int Py_FrozenFlag; /* Needed by getpath.c */ -- cgit v0.12