Skip to content

Commit

Permalink
Don't add newlines if there are is no output
Browse files Browse the repository at this point in the history
  • Loading branch information
timothycrosley committed Mar 4, 2021
1 parent dd1059e commit 7508a0a
Showing 1 changed file with 40 additions and 37 deletions.
77 changes: 40 additions & 37 deletions isort/output.py
Expand Up @@ -148,43 +148,46 @@ def sorted_imports(
output_at = parsed.import_index
formatted_output[output_at:0] = output

imports_tail = output_at + len(output)
while [
character.strip() for character in formatted_output[imports_tail : imports_tail + 1]
] == [""]:
formatted_output.pop(imports_tail)

if len(formatted_output) > imports_tail:
next_construct = ""
tail = formatted_output[imports_tail:]

for index, line in enumerate(tail):
should_skip, in_quote, *_ = parse.skip_line(
line,
in_quote="",
index=len(formatted_output),
section_comments=config.section_comments,
needs_import=False,
)
if not should_skip and line.strip():
if (
line.strip().startswith("#")
and len(tail) > (index + 1)
and tail[index + 1].strip()
):
continue
next_construct = line
break
if in_quote:
next_construct = line
break

if config.lines_after_imports != -1:
formatted_output[imports_tail:0] = ["" for line in range(config.lines_after_imports)]
elif extension != "pyi" and next_construct.startswith(STATEMENT_DECLARATIONS):
formatted_output[imports_tail:0] = ["", ""]
else:
formatted_output[imports_tail:0] = [""]
if output:
imports_tail = output_at + len(output)
while [
character.strip() for character in formatted_output[imports_tail : imports_tail + 1]
] == [""]:
formatted_output.pop(imports_tail)

if len(formatted_output) > imports_tail:
next_construct = ""
tail = formatted_output[imports_tail:]

for index, line in enumerate(tail):
should_skip, in_quote, *_ = parse.skip_line(
line,
in_quote="",
index=len(formatted_output),
section_comments=config.section_comments,
needs_import=False,
)
if not should_skip and line.strip():
if (
line.strip().startswith("#")
and len(tail) > (index + 1)
and tail[index + 1].strip()
):
continue
next_construct = line
break
if in_quote:
next_construct = line
break

if config.lines_after_imports != -1:
formatted_output[imports_tail:0] = [
"" for line in range(config.lines_after_imports)
]
elif extension != "pyi" and next_construct.startswith(STATEMENT_DECLARATIONS):
formatted_output[imports_tail:0] = ["", ""]
else:
formatted_output[imports_tail:0] = [""]

if parsed.place_imports:
new_out_lines = []
Expand Down

0 comments on commit 7508a0a

Please sign in to comment.