from dataclasses import dataclass, field
@dataclass
class iSort:
imports: str = field(default=None)
def _imports(self):
imports = self.imports
imports = self._parse()
imports = self._classify()
imports = self._sort()
self.imports = imports
def _sort(self):
import_imports: List[str] = []
from_imports: List[str] = []
for section in self._sections():
for i in section:
try:
import_type = i.split()[0]
if i.split()[0] == "import":
import_imports.append(i)
else:
from_imports.append(i)
except IndexError:
pass
return map(sorted, import_imports, from_imports)
def _sections(self):
builtins = []
third_party = []
first_party = []
try:
builtins, third_party, first_party = self._parse()
except IndexError:
builtins, third_party = self._parse()
except:
builtins = self._parse()
return builtins, third_party, first_party
def _parse(self):
return self.imports.strip().split("\n")
Last active
October 3, 2019 03:20
-
-
Save zazazack/55875fbb363abf98b8342d637c0c38d4 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Try it