summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Crosley <timothy.crosley@gmail.com>2019-12-22 23:36:26 -0800
committerTimothy Crosley <timothy.crosley@gmail.com>2019-12-22 23:36:26 -0800
commitdd339f68e89c8cfa821f66039808d9cd272e3b42 (patch)
tree08a5acb89bd6afa1e423b600c833c62b5a827f95
parent65caf07e823c504fa5f6e9a547ee0a2f4dacbd25 (diff)
downloadisort-dd339f68e89c8cfa821f66039808d9cd272e3b42.tar.gz
Move import adding to api.sort_imports
-rw-r--r--isort/api.py6
-rw-r--r--isort/parse.py4
2 files changed, 5 insertions, 5 deletions
diff --git a/isort/api.py b/isort/api.py
index 6921287f..2ce9ead3 100644
--- a/isort/api.py
+++ b/isort/api.py
@@ -11,7 +11,7 @@ from .exceptions import (
IntroducedSyntaxErrors,
UnableToDetermineEncoding,
)
-from .format import remove_whitespace, show_unified_diff
+from .format import remove_whitespace, show_unified_diff, format_natural
from .io import File
from .settings import DEFAULT_CONFIG, FILE_SKIP_COMMENT, Config
@@ -142,6 +142,7 @@ def sort_imports(
- `output_stream`: Text stream to output sorted inputs into.
- `config`: Config settings to use when sorting imports. Defaults settings.DEFAULT_CONFIG.
"""
+ add_imports = (format_natural(addition) for addition in config.add_imports)
import_section: str = ""
in_quote: str = ""
first_comment_index_start: int = -1
@@ -208,6 +209,7 @@ def sort_imports(
if not_imports:
if import_section:
+ import_section += config.line_ending.join(add_imports)
import_section += line
if not contains_imports:
output_stream.write(import_section)
@@ -227,8 +229,10 @@ def sort_imports(
if not contains_imports:
output_stream.write(import_section)
else:
+ import_section += config.line_ending.join(add_imports)
output_stream.write(
output.sorted_imports(
parse.file_contents(import_section, config=config), config, extension
)
)
+ output_stream.write(config.line_ending.join(add_imports))
diff --git a/isort/parse.py b/isort/parse.py
index 1b459119..a87461ff 100644
--- a/isort/parse.py
+++ b/isort/parse.py
@@ -133,16 +133,12 @@ class ParsedContent(NamedTuple):
def file_contents(contents: str, config: Config = DEFAULT_CONFIG) -> ParsedContent:
"""Parses a python file taking out and categorizing imports."""
line_separator: str = config.line_ending or _infer_line_separator(contents)
- add_imports = (format_natural(addition) for addition in config.add_imports)
in_lines = contents.split(line_separator)
out_lines = []
original_line_count = len(in_lines)
section_comments = [f"# {heading}" for heading in config.import_headings.values()]
finder = FindersManager(config=config)
- if original_line_count > 1 or in_lines[:1] not in ([], [""]) or config.force_adds:
- in_lines.extend(add_imports)
-
line_count = len(in_lines)
place_imports: Dict[str, List[str]] = {}