diff options
author | Timothy Crosley <timothy.crosley@gmail.com> | 2019-12-22 23:36:26 -0800 |
---|---|---|
committer | Timothy Crosley <timothy.crosley@gmail.com> | 2019-12-22 23:36:26 -0800 |
commit | dd339f68e89c8cfa821f66039808d9cd272e3b42 (patch) | |
tree | 08a5acb89bd6afa1e423b600c833c62b5a827f95 | |
parent | 65caf07e823c504fa5f6e9a547ee0a2f4dacbd25 (diff) | |
download | isort-dd339f68e89c8cfa821f66039808d9cd272e3b42.tar.gz |
Move import adding to api.sort_imports
-rw-r--r-- | isort/api.py | 6 | ||||
-rw-r--r-- | isort/parse.py | 4 |
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]] = {} |