summaryrefslogtreecommitdiff
path: root/isort/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'isort/api.py')
-rw-r--r--isort/api.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/isort/api.py b/isort/api.py
index b7126999..99d717eb 100644
--- a/isort/api.py
+++ b/isort/api.py
@@ -17,8 +17,6 @@ from .format import format_natural, remove_whitespace, show_unified_diff
from .io import File
from .settings import DEFAULT_CONFIG, FILE_SKIP_COMMENTS, Config
-IMPORT_START_IDENTIFIERS = ("from ", "from.import", "import ", "import*")
-
CIMPORT_IDENTIFIERS = ("cimport ", "cimport*", "from.cimport")
IMPORT_START_IDENTIFIERS = ("from ", "from.import", "import ", "import*") + CIMPORT_IDENTIFIERS
COMMENT_INDICATORS = ('"""', "'''", "'", '"', "#")
@@ -249,9 +247,10 @@ def sort_imports(
cimport_statement: bool = False
if (
import_statement.lstrip().startswith(CIMPORT_IDENTIFIERS)
- or "cimport " in import_statement
- or "cimport*" in import_statement
- or "cimport(" in import_statement
+ or " cimport " in import_statement
+ or " cimport*" in import_statement
+ or " cimport(" in import_statement
+ or ".cimport" in import_statement
):
cimport_statement = True
@@ -264,7 +263,7 @@ def sort_imports(
else:
cimports = cimport_statement
- import_section + import_statement
+ import_section += import_statement
else:
not_imports = True
@@ -280,6 +279,10 @@ def sort_imports(
contains_imports = True
add_imports = []
+ if next_import_section and not import_section:
+ import_section = next_import_section
+ next_import_section = ""
+
if import_section:
if add_imports and not indent:
import_section += line_separator.join(add_imports) + line_separator
@@ -313,6 +316,8 @@ def sort_imports(
)
output_stream.write(sorted_import_section)
+ if not line and next_import_section:
+ output_stream.write(line_separator)
if indent:
output_stream.write(line)