diff options
author | Daniel Hahler <git@thequod.de> | 2019-03-01 12:16:43 +0100 |
---|---|---|
committer | Daniel Hahler <git@thequod.de> | 2019-03-01 12:17:49 +0100 |
commit | 93a04585381defde79323611c9a8f1cc418db71c (patch) | |
tree | 685df51c07bf7b2583760259c9f48d90f7834f14 /isort | |
parent | f0badf18389935b0275660f8f3ef9899dc4c4f49 (diff) | |
download | isort-93a04585381defde79323611c9a8f1cc418db71c.tar.gz |
Fix no_lines_before with empty section
This fixes "no_lines_before" to also be respected from previous empty
sections.
Diffstat (limited to 'isort')
-rw-r--r-- | isort/isort.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/isort/isort.py b/isort/isort.py index ca28d56d..270f984d 100644 --- a/isort/isort.py +++ b/isort/isort.py @@ -558,7 +558,7 @@ class SortImports(object): sections = ('no_sections', ) output = [] # type: List[str] - prev_section_has_imports = False + pending_lines_before = False for section in sections: straight_modules = self.imports[section]['straight'] straight_modules = nsorted(straight_modules, key=lambda key: self._module_key(key, self.config, section_name=section)) @@ -591,8 +591,11 @@ class SortImports(object): line = line.lower() return '{0}{1}'.format(section, line) section_output = nsorted(section_output, key=by_module) + + section_name = section + no_lines_before = section_name in self.config['no_lines_before'] + if section_output: - section_name = section if section_name in self.place_imports: self.place_imports[section_name] = section_output continue @@ -602,11 +605,16 @@ class SortImports(object): section_comment = "# {0}".format(section_title) if section_comment not in self.out_lines[0:1] and section_comment not in self.in_lines[0:1]: section_output.insert(0, section_comment) - if prev_section_has_imports and section_name in self.config['no_lines_before']: - while output and output[-1].strip() == '': - output.pop() - output += section_output + ([''] * self.config['lines_between_sections']) - prev_section_has_imports = bool(section_output) + + if pending_lines_before or not no_lines_before: + output += ([''] * self.config['lines_between_sections']) + + output += section_output + + pending_lines_before = False + else: + pending_lines_before = pending_lines_before or not no_lines_before + while output and output[-1].strip() == '': output.pop() while output and output[0].strip() == '': |