#!/usr/bin/env python3

def acc_file_search(file_name, search_element):
    import re
    not_needed_informations = ["author=", "version=", "command_type="]
    no_square_bracket = ["name=", "author=", "version=", "command_type="]
    if "=" not in search_element:
        search_element = search_element + "="
    fileprint = open(file_name).read().splitlines()
    acc_search_line = acc_search_file_element(file_name, search_element)
    acc_file_search = fileprint[acc_search_line]
    acc_file_line = []
    if search_element in acc_file_search:
        acc_file_search = acc_file_search.replace(search_element, "")
        if "\n" in acc_file_search:
            acc_file_search = acc_file_search.replace("\n", "")
        acc_file_line.append(acc_file_search)
        if "]" not in acc_file_search:
            if search_element in no_square_bracket:
                pass
            elif search_element not in no_square_bracket:
                acc_first_square_bracket_line = acc_search_file_element(file_name, search_element)
                acc_second_square_bracket_line = acc_search_file_element(file_name, "]", acc_first_square_bracket_line)
                while True:
                    bracket_lines = list(range(acc_first_square_bracket_line, acc_second_square_bracket_line + 1))
                    elements = []
                    for element_numbers in bracket_lines:
                        element_list = fileprint[element_numbers]
                        if search_element in element_list:
                            if not "=" in search_element:
                                search_element = search_element + "="
                            element_list = element_list.replace(search_element, "")
                        element_list = element_list.lstrip()
                        elements.append(element_list)

                    acc_file_line = elements
                    break

    global acc_file
    acc_file_temporary = []
    for acc_file in acc_file_line:
        acc_file = acc_file
        if acc_file == "":
            if search_element in not_needed_informations:
                if "=" in search_element:
                    search_element = search_element.replace("=", "")
                acc_file = ("There is no " + search_element)
                return acc_file
            elif search_element not in not_needed_informations:
                if "=" in search_element:
                    search_element = search_element.replace("=", "")
                    pass
                acc_file = ("There is no " + search_element + ", but it must be something indicated!")
                return acc_file
            else:
                acc_file = "An error appears!"
                return acc_file
        if "[" in acc_file:
            acc_file = acc_file.replace("[", "")
        if "]" in acc_file:
            acc_file = acc_file.replace("]", "")
        if '"' in acc_file:
            acc_file = acc_file.replace('"', "")
        acc_file_temporary.append(acc_file)
        if len(acc_file_temporary) > 1:
            acc_file = (", ".join(acc_file_temporary))
        else:
            acc_file = ("".join(acc_file_temporary))
        if ",," in acc_file:
            acc_file = acc_file.replace(",,", ",")
        if re.search("[a-zA-Z]", acc_file) == None:
            if search_element in no_square_bracket:
                if "=" in search_element:
                    search_element = search_element.replace("=", "")
            print("There is no " + search_element + ", but it must be something indicated!")

    return acc_file

def acc_search_file_element(file_name, search_element, from_line=0):
    if "]" in search_element:
        pass
    if "[" in search_element:
        pass
    while True:
        if search_element in open(file_name, "r").readlines()[from_line]:
            break
        else:
            from_line = from_line + 1
    return from_line

print(acc_file_search("example.cfg", "raw_command"))