diff options
author | Batuhan Taskaya <batuhanosmantaskaya@gmail.com> | 2020-05-16 22:49:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-16 22:49:07 (GMT) |
commit | e966af7cff78e14e1d289db587433504b4b53533 (patch) | |
tree | 372fc4aed9cf42fb0a05062738abe16892c35246 /Lib/ast.py | |
parent | d5a980a60790571ec88aba4e011c91e099e31e98 (diff) | |
download | cpython-e966af7cff78e14e1d289db587433504b4b53533.zip cpython-e966af7cff78e14e1d289db587433504b4b53533.tar.gz cpython-e966af7cff78e14e1d289db587433504b4b53533.tar.bz2 |
bpo-38870: Correctly handle empty docstrings in ast.unparse (GH-18768)
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Diffstat (limited to 'Lib/ast.py')
-rw-r--r-- | Lib/ast.py | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -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}"""') |