diff options
author | Timothy Crosley <timothy.crosley@gmail.com> | 2019-12-04 23:34:50 -0800 |
---|---|---|
committer | Timothy Crosley <timothy.crosley@gmail.com> | 2019-12-04 23:34:50 -0800 |
commit | c805531052e7aa6ecceb595e134f76c68bae2902 (patch) | |
tree | 3290a1470199156fb181ba54c1a1a03d51e182a9 | |
parent | f02a2a09601d667084778beeaad628fe8544f680 (diff) | |
download | isort-c805531052e7aa6ecceb595e134f76c68bae2902.tar.gz |
First semi-accurate import sectionining
-rw-r--r-- | isort/parse.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/isort/parse.py b/isort/parse.py index c4614efe..9c553643 100644 --- a/isort/parse.py +++ b/isort/parse.py @@ -474,7 +474,7 @@ def identify_contiguous_imports( ): """Parses stream identifying sections of contiguous imports""" output_stream = StringIO() if output_stream is None else output_stream - import_section = [] + import_section: str = "" in_quote: str = "" first_comment_index_start: int = -1 first_comment_index_end: int = -1 @@ -506,16 +506,21 @@ def identify_contiguous_imports( if not in_quote: stripped_line = line.strip() if not stripped_line or stripped_line.startswith("#"): - import_section.append(line) + import_section += line elif stripped_line.startswith(IMPORT_START_IDENTIFIERS): - import_section.append(line) + import_section += line else: not_imports = True if not_imports: - for import_line in import_section: - output_stream.write("AN IMPORT") - output_stream.write(config.line_ending or '\n') + if import_section: + if not import_section.strip() or not ("from" in import_section or "import" in import_section): + output_stream.write(import_section) + else: + for line in import_section.split(config.line_ending or '\n'): + output_stream.write("AN IMPORT") + output_stream.write(config.line_ending or '\n') + import_section = "" output_stream.write(line) not_imports = False |