<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def increment_name(name: str, start_marker: str = " (", end_marker: str = ")") -> str: """ Increment the name where the incremental part is given by parameters. Parameters name : str, nbformat.notebooknode.NotebookNode Name start_marker : str The marker used before the incremental end_marker : str The marker after the incrementa Returns ------- str Incremented name. 'abc (1)' 'abc(1) (1)' 'abc (124)' 'abc-2' 'abc[3]' Traceback (most recent call last):
 ValueError: start_marker can not be the empty string. """

    if start_marker == '':
        raise ValueError("start_marker can not be the empty string.")
    a = name
    start = len(a)-a[::-1].find(start_marker[::-1])

    if (a[len(a)-len(end_marker):len(a)] == end_marker
            and start < (len(a)-len(end_marker))
            and a[start-len(start_marker):start] == start_marker
            and a[start:len(a)-len(end_marker)].isdigit()):

        old_int = int(a[start:len(a)-len(end_marker)])
        new_int = old_int+1
        new_name = a[:start]+str(new_int)+end_marker
    else:
        new_name = a+start_marker+'1'+end_marker
    return new_name