Skip to content

Commit

Permalink
bpo-33422: Fix quotation marks getting deleted when looking up byte/s…
Browse files Browse the repository at this point in the history
…tring literals on pydoc. (GH-6701)

Also update the list of string prefixes.
  • Loading branch information
andresdelfino authored and serhiy-storchaka committed May 5, 2018
1 parent c4994dc commit b2043bb
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
11 changes: 9 additions & 2 deletions Lib/pydoc.py
Expand Up @@ -1747,8 +1747,9 @@ class Helper:
}
# Either add symbols to this dictionary or to the symbols dictionary
# directly: Whichever is easier. They are merged later.
_strprefixes = [p + q for p in ('b', 'f', 'r', 'u') for q in ("'", '"')]
_symbols_inverse = {
'STRINGS' : ("'", "'''", "r'", "b'", '"""', '"', 'r"', 'b"'),
'STRINGS' : ("'", "'''", '"', '"""', *_strprefixes),
'OPERATORS' : ('+', '-', '*', '**', '/', '//', '%', '<<', '>>', '&',
'|', '^', '~', '<', '>', '<=', '>=', '==', '!=', '<>'),
'COMPARISON' : ('<', '>', '<=', '>=', '==', '!=', '<>'),
Expand Down Expand Up @@ -1910,7 +1911,13 @@ def interact(self):
if not request: break
except (KeyboardInterrupt, EOFError):
break
request = replace(request, '"', '', "'", '').strip()
request = request.strip()

# Make sure significant trailing quoting marks of literals don't
# get deleted while cleaning input
if (len(request) > 2 and request[0] == request[-1] in ("'", '"')
and request[0] not in request[1:-1]):
request = request[1:-1]
if request.lower() in ('q', 'quit'): break
if request == 'help':
self.intro()
Expand Down
@@ -0,0 +1,2 @@
Fix trailing quotation marks getting deleted when looking up byte/string
literals on pydoc. Patch by Andrés Delfino.

0 comments on commit b2043bb

Please sign in to comment.