#! /usr/bin/env python
from __future__ import print_function
import os
from abjad.tools import systemtools


def find_initializers():

    initializer_file_paths = []
    for directory, subdirectory_names, file_names in os.walk('.'):
        if 'docs' in directory:
            continue
        for file_name in file_names:
            if file_name == '__init__.py':
                initializer_file_path = os.path.join(directory, file_name)
                initializer_file_paths.append(initializer_file_path)
    total_initializer_count = len(initializer_file_paths)
    print('Total initializers:        {}'.format(total_initializer_count))

    autoloading_initializer_count = 0
    manual_initializer_count = 0
    manual_initializer_file_paths = []
    for initializer_file_path in initializer_file_paths:
        found_autoloading_statement = False
        with open(initializer_file_path, 'r') as file_pointer:
            for line in file_pointer:
                if 'import_structured_package' in line:
                    found_autoloading_statement = True
                    break
        if found_autoloading_statement:
            autoloading_initializer_count += 1
        else:
            manual_initializer_count += 1
            manual_initializer_file_paths.append(initializer_file_path)

    print('Autoloading initializers:  {}'.format(autoloading_initializer_count))
    print('Manual initializers:       {}'.format(manual_initializer_count))
    print()
    if manual_initializer_file_paths:
        print('Printing manual initializers ...')
        print()
        for initializer_file_path in manual_initializer_file_paths:
            print(initializer_file_path)


if __name__ == '__main__':
    systemtools.IOManager.clear_terminal()
    print('Finding initializers ...')
    print()
    find_initializers()
    print()
