#! /usr/bin/env python

from abjad.tools import iotools
import os


def _conjoin_multiline_import_statements():
    total_multiline_import_statements = 0
    for path, subdirectories, files in os.walk('.'):
        for f in files:
            file_lines_to_output = [ ]
            found_import_statement_in_file = False
            if f.endswith('.py'):
                full_file_name = os.path.join(path, f)
                fp = file(full_file_name, 'r')
                within_multiline_import, constituent_lines = False, [ ]
                for line in fp:
                    if ('import' in line or line.startswith('from')) and line.endswith('\\\n'):
                        # strip only right edge of first line to preserve indentation at left
                        constituent_lines.append(line.rstrip())
                        within_multiline_import = True
                    elif within_multiline_import:
                        # strip both left and right edges of subsequent lines
                        constituent_lines.append(line.strip())
                        if not line.endswith('\\\n'):
                            conjoined_line = ' '.join(constituent_lines) + '\n'
                            conjoined_line = conjoined_line.replace(' \\', '')
                            print conjoined_line
                            file_lines_to_output.append(conjoined_line)
                            within_multiline_import, constituent_lines = False, [ ]
                    else:
                        file_lines_to_output.append(line)
                fp.close()
                fp = file(full_file_name, 'w')
                fp.write(''.join(file_lines_to_output))
                fp.close()


if __name__ == '__main__':
    iotools.clear_terminal()
    #print 'Conjoining multiline import statements ...'
    #print ''
    #_conjoin_multiline_import_statements()
    print 'Coding standards now allow for multiline import statements.'
    print 'So running this script is no longer recommended.'
    print ''
