from typing import List


def txt_python_func(func_list: List[str], func_type: str) -> str:
    """This method creates strings from which the python file in which the simulation functions are defined is created.

    func_list contains the names of all process functions for which a string representation should be generated.
    func_type contains the type of function to be created, possible cases are:
    'p' -> process functions
    's' -> sources and sinks
    'g' -> global functions
    """

    # Make a list of unique elements
    func_list = list(set(func_list))

    # Create functions signature based on the function type
    signature: str = ''
    if func_type == 'p':
        signature = 'env, item, machine, factory'
    elif func_type == 's':
        signature = 'env, factory'
    elif func_type == 'g':
        signature = 'env, factory'

    txt_func: str = ''
    for func in func_list:
        txt_func += 'def ' + func + '(' + signature + '):\n\n\tpass\n\n'

    return txt_func