def write_string_on_file_between_markers(filename: str, string: str,
                                         marker: str):
    r"""Write the table of contents on a single file.

    :parameter filename: the file that needs to be read or modified.
    :parameter string: the string that will be written on the file.
    :parameter marker: a marker that will identify the start
         and the end of the string.
    :type filenames: str
    :type string: str
    :type marker: str
    :returns: None
    :rtype: None
    :raises: StdinIsNotAFileToBeWritten or an fpyutils exception
         or a built-in exception.
    """
    if filename == '-':
        raise StdinIsNotAFileToBeWritten

    final_string = marker + '\n\n' + string.rstrip() + '\n\n' + marker + '\n'
    marker_line_positions = fpyutils.get_line_matches(
        filename, marker, 2, loose_matching=True)

    if 1 in marker_line_positions:
        if 2 in marker_line_positions:
            fpyutils.remove_line_interval(filename, marker_line_positions[1],
                                          marker_line_positions[2], filename)
        else:
            fpyutils.remove_line_interval(filename, marker_line_positions[1],
                                          marker_line_positions[1], filename)
        fpyutils.insert_string_at_line(
            filename,
            final_string,
            marker_line_positions[1],
            filename,
            append=False)
def write_string_on_file_between_markers ( filename : str , string : str , marker : str ) : if filename == '-' : raise StdinIsNotAFileToBeWritten final_string = marker + '\n\n' + string . rstrip ( ) + '\n\n' + marker + '\n' marker_line_positions = fpyutils . get_line_matches ( filename , marker , 2 , loose_matching = True ) if 1 in marker_line_positions : if 2 in marker_line_positions : fpyutils . remove_line_interval ( filename , marker_line_positions [ 1 ] , marker_line_positions [ 2 ] , filename ) else : fpyutils . remove_line_interval ( filename , marker_line_positions [ 1 ] , marker_line_positions [ 1 ] , filename ) fpyutils . insert_string_at_line ( filename , final_string , marker_line_positions [ 1 ] , filename , append = False )
r"""Write the table of contents on a single file.

    :parameter filename: the file that needs to be read or modified.
    :parameter string: the string that will be written on the file.
    :parameter marker: a marker that will identify the start
         and the end of the string.
    :type filenames: str
    :type string: str
    :type marker: str
    :returns: None
    :rtype: None
    :raises: StdinIsNotAFileToBeWritten or an fpyutils exception
         or a built-in exception.