diff options
author | Xiang Zhang <angwerzx@126.com> | 2017-01-22 06:37:22 (GMT) |
---|---|---|
committer | Xiang Zhang <angwerzx@126.com> | 2017-01-22 06:37:22 (GMT) |
commit | 7fe28ad8375677a6d696271d48783d6c38a74dce (patch) | |
tree | 50624d4578d72021f5181480e818226181030334 | |
parent | d7d87ca9b0495f1dd04863fbb93226c0e0f7af5f (diff) | |
download | cpython-7fe28ad8375677a6d696271d48783d6c38a74dce.zip cpython-7fe28ad8375677a6d696271d48783d6c38a74dce.tar.gz cpython-7fe28ad8375677a6d696271d48783d6c38a74dce.tar.bz2 |
Issue #29290: argparse help messages won't wrap at non-breaking spaces.
-rw-r--r-- | Lib/argparse.py | 2 | ||||
-rw-r--r-- | Lib/test/test_argparse.py | 17 | ||||
-rw-r--r-- | Misc/NEWS | 5 |
3 files changed, 22 insertions, 2 deletions
diff --git a/Lib/argparse.py b/Lib/argparse.py index 9a06719..0d881b8 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -176,7 +176,7 @@ class HelpFormatter(object): self._root_section = self._Section(self, None) self._current_section = self._root_section - self._whitespace_matcher = _re.compile(r'\s+') + self._whitespace_matcher = _re.compile(r'\s+', _re.ASCII) self._long_break_matcher = _re.compile(r'\n\n\n+') # =============================== diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index 4779a13..197d576 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -1943,6 +1943,23 @@ class TestAddSubparsers(TestCase): ++foo foo help ''')) + def test_help_non_breaking_spaces(self): + parser = ErrorRaisingArgumentParser( + prog='PROG', description='main description') + parser.add_argument( + "--non-breaking", action='store_false', + help='help message containing non-breaking spaces shall not ' + 'wrap\N{NO-BREAK SPACE}at non-breaking spaces') + self.assertEqual(parser.format_help(), textwrap.dedent('''\ + usage: PROG [-h] [--non-breaking] + + main description + + optional arguments: + -h, --help show this help message and exit + --non-breaking help message containing non-breaking spaces shall not + wrap\N{NO-BREAK SPACE}at non-breaking spaces + ''')) def test_help_alternate_prefix_chars(self): parser = self._get_parser(prefix_chars='+:/') @@ -13,9 +13,12 @@ Core and Builtins Library ------- +- Issue #29290: Fix a regression in argparse that help messages would wrap at + non-breaking spaces. + - Issue #28735: Fixed the comparison of mock.MagickMock with mock.ANY. -- Issue #29011: Fix an important omission by adding Deque to the typing module. +- Issue #29011: Fix an important omission by adding Deque to the typing module. - Issue #29219: Fixed infinite recursion in the repr of uninitialized ctypes.CDLL instances. |