git.fiddlerwoaroof.com
scripts/importsort
1359b622
 #!/usr/bin/env python3
a0d71cd9
 '''Note, defualt is haskell mode'''
1359b622
 
 import sys
 
 lines = []
 for line in sys.stdin:
a0d71cd9
     line = line.split()
     if line == []: continue
     elif line[0] == 'import':
         qualified = line[1] == 'qualified'
         module = line[1]
         if qualified: module = line[2]
         lines.append(((1 if qualified else 0), module, len(module.split('.')), line))
     else:
         raise ValueError('Can\'t handle lines without import statements')
1359b622
 
 otoplevel = lines[0][1].split('.',1)[0]
 for line in sorted(lines):
a0d71cd9
     toplevel = line[1].split('.',1)[0]
     if toplevel != otoplevel:
         print()
     print(' '.join(line[-1]))
     otoplevel = toplevel