git.fiddlerwoaroof.com
scripts/importsort
1359b622
 #!/usr/bin/env python3
 
 import sys
 
 lines = []
 for line in sys.stdin:
 	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')
 
 otoplevel = lines[0][1].split('.',1)[0]
 for line in sorted(lines):
 	toplevel = line[1].split('.',1)[0]
 	if toplevel != otoplevel:
 		print()
 	print(' '.join(line[-1]))
 	otoplevel = toplevel