def prepand(full_key: str, parent_type: Any, cur_type: Any, key: Any) -> str:
    if isinstance(key, slice):
        key = _slice_to_str(key)
    elif isinstance(key, Enum):
        key = key.name
    elif isinstance(key, (int, float, bool)):
        key = str(key)
    if issubclass(parent_type, ListConfig):
        if (full_key != ''):
            if issubclass(cur_type, ListConfig):
                full_key = f'[{key}]{full_key}'
            else:
                full_key = f'[{key}].{full_key}'
        else:
            full_key = f'[{key}]'
    elif (full_key == ''):
        full_key = key
    elif issubclass(cur_type, ListConfig):
        full_key = f'{key}{full_key}'
    else:
        full_key = f'{key}.{full_key}'
    return full_key
def prepand(full_key: str, parent_type: Any, cur_type: Any, key: Any) -> str:
    if isinstance(key, slice):
        key = _slice_to_str(key)
    elif isinstance(key, Enum):
        key = key.name
    elif isinstance(key, (int, float, bool)):
        key = str(key)
    if issubclass(parent_type, ListConfig):
        if (full_key != ):
            if issubclass(cur_type, ListConfig):
                full_key = f'[{key}]{full_key}'
            else:
                full_key = f'[{key}].{full_key}'
        else:
            full_key = f'[{key}]'
    elif (full_key == ):
        full_key = key
    elif issubclass(cur_type, ListConfig):
        full_key = f'{key}{full_key}'
    else:
        full_key = f'{key}.{full_key}'
    return full_key