From: Martin v. Löwis Date: Sat, 18 Oct 2003 09:55:08 +0000 (+0000) Subject: Patch #825679: Clarify semantics of .isfoo on empty strings. X-Git-Tag: v2.4a1~1421 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6828e18a6a0d63f2203f5043bda0018925244188;p=python Patch #825679: Clarify semantics of .isfoo on empty strings. Backported to 2.3. --- diff --git a/Doc/lib/libstdtypes.tex b/Doc/lib/libstdtypes.tex index 531e385e9d..ca9724dbdb 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 04c9c9887a..7143a81596 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 f0480fbba7..03559da967 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)