diff --git a/CHANGES.md b/CHANGES.md index 22939e3..1b7a54a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,7 @@ ### _Black_ +- A space is no longer inserted into empty docstrings (#2249) - Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229) - Respect `.gitignore` files in all levels, not only `root/.gitignore` file (apply `.gitignore` rules like `git` does) (#2225) diff --git a/src/black/linegen.py b/src/black/linegen.py index 2e16b6f..7949654 100644 --- a/src/black/linegen.py +++ b/src/black/linegen.py @@ -236,6 +236,7 @@ def visit_STRING(self, leaf: Leaf) -> Iterator[Line]: # characters but only if they are the same as the first. quote_len = 1 if docstring[1] != quote_char else 3 docstring = docstring[quote_len:-quote_len] + docstring_started_empty = not docstring if is_multiline_string(leaf): indent = " " * 4 * self.current_line.depth @@ -255,8 +256,7 @@ def visit_STRING(self, leaf: Leaf) -> Iterator[Line]: # Odd number of tailing backslashes, add some padding to # avoid escaping the closing string quote. docstring += " " - else: - # Add some padding if the docstring is empty. + elif not docstring_started_empty: docstring = " " # We could enforce triple quotes at this point. diff --git a/tests/data/docstring.py b/tests/data/docstring.py index e977619..96bcf52 100644 --- a/tests/data/docstring.py +++ b/tests/data/docstring.py @@ -102,7 +102,7 @@ def and_this(): "hey yah"''' -def empty(): +def multiline_whitespace(): ''' @@ -111,11 +111,11 @@ def empty(): ''' -def oneline_empty(): +def oneline_whitespace(): ''' ''' -def oneline_nothing(): +def empty(): """""" @@ -293,16 +293,16 @@ def and_this(): "hey yah"''' +def multiline_whitespace(): + """ """ + + +def oneline_whitespace(): + """ """ + + def empty(): - """ """ - - -def oneline_empty(): - """ """ - - -def oneline_nothing(): - """ """ + """""" def single_quotes(): @@ -374,4 +374,4 @@ def my_god_its_full_of_stars_1(): # the space below is actually a \u2001, removed in output def my_god_its_full_of_stars_2(): - "I'm sorry Dave" \ No newline at end of file + "I'm sorry Dave"