bpo-38870: Correctly handle empty docstrings in ast.unparse (GH-18768)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
This commit is contained in:
Batuhan Taskaya 2020-05-17 01:49:07 +03:00 committed by GitHub
parent d5a980a607
commit e966af7cff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 7 deletions

View file

@ -1075,11 +1075,14 @@ class _Unparser(NodeVisitor):
if node.kind == "u":
self.write("u")
# Preserve quotes in the docstring by escaping them
value = node.value.replace("\\", "\\\\")
value = value.replace('"""', '""\"')
if value[-1] == '"':
value = value.replace('"', '\\"', -1)
value = node.value
if value:
# Preserve quotes in the docstring by escaping them
value = value.replace("\\", "\\\\")
value = value.replace('"""', '""\"')
value = value.replace("\r", "\\r")
if value[-1] == '"':
value = value.replace('"', '\\"', -1)
self.write(f'"""{value}"""')