From 65c9e9f0a899602e59d5bfdca26f5f23f36c23a3 Mon Sep 17 00:00:00 2001 From: "ezio.melotti" Date: Sat, 26 Sep 2009 11:20:53 +0000 Subject: [PATCH] #7000: document "sep" in capwords. Add a few tests git-svn-id: http://svn.python.org/projects/python/trunk@75070 6015fed2-1504-0410-9fe1-9d1591cc4771 --- Doc/library/string.rst | 14 ++++++++------ Lib/string.py | 10 ++++++---- Lib/test/test_string.py | 3 +++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Doc/library/string.rst b/Doc/library/string.rst index 52aa41c12d..9a13dc6667 100644 --- a/Doc/library/string.rst +++ b/Doc/library/string.rst @@ -585,12 +585,14 @@ The following functions are available to operate on string and Unicode objects. They are not available as string methods. -.. function:: capwords(s) - - Split the argument into words using :func:`split`, capitalize each word using - :func:`capitalize`, and join the capitalized words using :func:`join`. Note - that this replaces runs of whitespace characters by a single space, and removes - leading and trailing whitespace. +.. function:: capwords(s[, sep]) + + Split the argument into words using :meth:`str.split`, capitalize each word + using :meth:`str.capitalize`, and join the capitalized words using + :meth:`str.join`. If the optional second argument *sep* is absent + or ``None``, runs of whitespace characters are replaced by a single space + and leading and trailing whitespace are removed, otherwise *sep* is used to + split and join the words. .. function:: maketrans(from, to) diff --git a/Lib/string.py b/Lib/string.py index e4d9e4f21f..6faa1f02c8 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -43,15 +43,17 @@ del l # Capitalize the words in a string, e.g. " aBc dEf " -> "Abc Def". def capwords(s, sep=None): - """capwords(s, [sep]) -> string + """capwords(s [,sep]) -> string Split the argument into words using split, capitalize each word using capitalize, and join the capitalized words using - join. Note that this replaces runs of whitespace characters by - a single space. + join. If the optional second argument sep is absent or None, + runs of whitespace characters are replaced by a single space + and leading and trailing whitespace are removed, otherwise + sep is used to split and join the words. """ - return (sep or ' ').join([x.capitalize() for x in s.split(sep)]) + return (sep or ' ').join(x.capitalize() for x in s.split(sep)) # Construct a translation string diff --git a/Lib/test/test_string.py b/Lib/test/test_string.py index 35ab117df4..7947e43e9e 100644 --- a/Lib/test/test_string.py +++ b/Lib/test/test_string.py @@ -105,6 +105,9 @@ class ModuleTest(unittest.TestCase): self.assertEqual(string.capwords('ABC DEF GHI'), 'Abc Def Ghi') self.assertEqual(string.capwords('ABC-DEF-GHI', '-'), 'Abc-Def-Ghi') self.assertEqual(string.capwords('ABC-def DEF-ghi GHI'), 'Abc-def Def-ghi Ghi') + self.assertEqual(string.capwords(' aBc DeF '), 'Abc Def') + self.assertEqual(string.capwords('\taBc\tDeF\t'), 'Abc Def') + self.assertEqual(string.capwords('\taBc\tDeF\t', '\t'), '\tAbc\tDef\t') def test_formatter(self): fmt = string.Formatter() -- 2.11.4.GIT