#!/usr/bin/env python
"""Script to do exam task 9"""
import sys
import re

# echo "**** GREP1 test **** -- two or more deed"
# grep -e "deed.*deed" "$MATCHFILE"
# echo
# echo "**** GREP2 test **** -- end with deed"
# grep -e "deed$" "$MATCHFILE"
# echo
# echo "**** GREP3 test **** -- i, o, and u at least once"
# grep -E "i.*o.*u|i.*u.*o|o.*i.*u|o.*u.*i|u.*i.*o|u.*o.*i" "$MATCHFILE"
# echo
# echo "**** GREP4 test **** -- exactly two e"
# grep -e "^[^e]*e[^e]*e[^e]*$" "$MATCHFILE"


def plan9():
    """Python function to do exam task 9"""
    re_matches = [
        re.compile('deed.*deed'),
        re.compile('deed$'),
        re.compile('i.*o.*u|i.*u.*o|o.*i.*u|o.*u.*i|u.*i.*o|u.*o.*i'),
        re.compile('^[^e]*e[^e]*e[^e]*$')
    ]
    re_explanation = [
        'two deeds',
        'ends with deed',
        'i,o,u at least once',
        "exactly two e's"]
    in_file_name = 'testlines.txt'
    try:
        in_file_hand = open(in_file_name, 'r')
    except IOError as read_open_io_error:
        print 'Failed to open {0} for reading: {1}'.format(
            in_file_name, read_open_io_error.strerror)
        return 1
    in_lines = []
    for line in in_file_hand:
        in_lines.append(line[:-1])
    in_file_hand.close()
    for line in in_lines:
        print 'Matching line --> {0}'.format(line)
        for re_num in range(0, len(re_matches)):
            match_obj_result = re_matches[re_num].search(line)
            if match_obj_result is None:
                match_result = '*NOPE*'
            else:
                match_result = 'MATCH!'
            print '  RE # {0:2d} {1:21s}: {2}'.format(
                re_num+1, re_explanation[re_num], match_result)
    return 0

if __name__ == "__main__":
    sys.exit(plan9())


