From 6828e18a6a0d63f2203f5043bda0018925244188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= <martin@v.loewis.de> Date: Sat, 18 Oct 2003 09:55:08 +0000 Subject: [PATCH] Patch #825679: Clarify semantics of .isfoo on empty strings. Backported to 2.3. --- Doc/lib/libstdtypes.tex | 12 +++++++----- Objects/stringobject.c | 25 +++++++++++++------------ Objects/unicodeobject.c | 21 +++++++++++---------- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/Doc/lib/libstdtypes.tex b/Doc/lib/libstdtypes.tex index 531e385e9d9..ca9724dbdb4 100644 --- a/Doc/lib/libstdtypes.tex +++ b/Doc/lib/libstdtypes.tex @@ -613,7 +613,8 @@ is at least one character, false otherwise. \end{methoddesc} \begin{methoddesc}[string]{isdigit}{} -Return true if there are only digit characters, false otherwise. +Return true if all characters in the string are digits and there +is at least one character, false otherwise. \end{methoddesc} \begin{methoddesc}[string]{islower}{} @@ -623,13 +624,14 @@ there is at least one cased character, false otherwise. \begin{methoddesc}[string]{isspace}{} Return true if there are only whitespace characters in the string and -the string is not empty, false otherwise. +there is at least one character, false otherwise. \end{methoddesc} \begin{methoddesc}[string]{istitle}{} -Return true if the string is a titlecased string: uppercase -characters may only follow uncased characters and lowercase characters -only cased ones. Return false otherwise. +Return true if the string is a titlecased string and there is at least one +character, i.e. uppercase characters may only follow uncased +characters and lowercase characters only cased ones. Return false +otherwise. \end{methoddesc} \begin{methoddesc}[string]{isupper}{} diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 04c9c9887a2..7143a815963 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -2733,10 +2733,10 @@ string_zfill(PyStringObject *self, PyObject *args) } PyDoc_STRVAR(isspace__doc__, -"S.isspace() -> bool\n" -"\n" -"Return True if there are only whitespace characters in S,\n" -"False otherwise."); +"S.isspace() -> bool\n\ +\n\ +Return True if all characters in S are whitespace\n\ +and there is at least one character in S, False otherwise."); static PyObject* string_isspace(PyStringObject *self) @@ -2766,7 +2766,7 @@ string_isspace(PyStringObject *self) PyDoc_STRVAR(isalpha__doc__, "S.isalpha() -> bool\n\ \n\ -Return True if all characters in S are alphabetic\n\ +Return True if all characters in S are alphabetic\n\ and there is at least one character in S, False otherwise."); static PyObject* @@ -2797,7 +2797,7 @@ string_isalpha(PyStringObject *self) PyDoc_STRVAR(isalnum__doc__, "S.isalnum() -> bool\n\ \n\ -Return True if all characters in S are alphanumeric\n\ +Return True if all characters in S are alphanumeric\n\ and there is at least one character in S, False otherwise."); static PyObject* @@ -2828,8 +2828,8 @@ string_isalnum(PyStringObject *self) PyDoc_STRVAR(isdigit__doc__, "S.isdigit() -> bool\n\ \n\ -Return True if there are only digit characters in S,\n\ -False otherwise."); +Return True if all characters in S are digits\n\ +and there is at least one character in S, False otherwise."); static PyObject* string_isdigit(PyStringObject *self) @@ -2893,7 +2893,7 @@ string_islower(PyStringObject *self) PyDoc_STRVAR(isupper__doc__, "S.isupper() -> bool\n\ \n\ -Return True if all cased characters in S are uppercase and there is\n\ +Return True if all cased characters in S are uppercase and there is\n\ at least one cased character in S, False otherwise."); static PyObject* @@ -2927,9 +2927,10 @@ string_isupper(PyStringObject *self) PyDoc_STRVAR(istitle__doc__, "S.istitle() -> bool\n\ \n\ -Return True if S is a titlecased string, i.e. uppercase characters\n\ -may only follow uncased characters and lowercase characters only cased\n\ -ones. Return False otherwise."); +Return True if S is a titlecased string and there is at least one\n\ +character in S, i.e. uppercase characters may only follow uncased\n\ +characters and lowercase characters only cased ones. Return False\n\ +otherwise."); static PyObject* string_istitle(PyStringObject *self, PyObject *uncased) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index f0480fbba7b..03559da9671 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -4897,7 +4897,7 @@ unicode_islower(PyUnicodeObject *self) PyDoc_STRVAR(isupper__doc__, "S.isupper() -> bool\n\ \n\ -Return True if all cased characters in S are uppercase and there is\n\ +Return True if all cased characters in S are uppercase and there is\n\ at least one cased character in S, False otherwise."); static PyObject* @@ -4931,9 +4931,10 @@ unicode_isupper(PyUnicodeObject *self) PyDoc_STRVAR(istitle__doc__, "S.istitle() -> bool\n\ \n\ -Return True if S is a titlecased string, i.e. upper- and titlecase\n\ -characters may only follow uncased characters and lowercase characters\n\ -only cased ones. Return False otherwise."); +Return True if S is a titlecased string and there is at least one\n\ +character in S, i.e. upper- and titlecase characters may only\n\ +follow uncased characters and lowercase characters only cased ones.\n\ +Return False otherwise."); static PyObject* unicode_istitle(PyUnicodeObject *self) @@ -4978,8 +4979,8 @@ unicode_istitle(PyUnicodeObject *self) PyDoc_STRVAR(isspace__doc__, "S.isspace() -> bool\n\ \n\ -Return True if there are only whitespace characters in S,\n\ -False otherwise."); +Return True if all characters in S are whitespace\n\ +and there is at least one character in S, False otherwise."); static PyObject* unicode_isspace(PyUnicodeObject *self) @@ -5007,7 +5008,7 @@ unicode_isspace(PyUnicodeObject *self) PyDoc_STRVAR(isalpha__doc__, "S.isalpha() -> bool\n\ \n\ -Return True if all characters in S are alphabetic\n\ +Return True if all characters in S are alphabetic\n\ and there is at least one character in S, False otherwise."); static PyObject* @@ -5036,7 +5037,7 @@ unicode_isalpha(PyUnicodeObject *self) PyDoc_STRVAR(isalnum__doc__, "S.isalnum() -> bool\n\ \n\ -Return True if all characters in S are alphanumeric\n\ +Return True if all characters in S are alphanumeric\n\ and there is at least one character in S, False otherwise."); static PyObject* @@ -5094,8 +5095,8 @@ unicode_isdecimal(PyUnicodeObject *self) PyDoc_STRVAR(isdigit__doc__, "S.isdigit() -> bool\n\ \n\ -Return True if there are only digit characters in S,\n\ -False otherwise."); +Return True if all characters in S are digits\n\ +and there is at least one character in S, False otherwise."); static PyObject* unicode_isdigit(PyUnicodeObject *self) -- 2.30.9