This method hints whether the symbol/version are safe for appending in two ways:
    1. It verifies whether the symbol is already corrupted (fast, doesn't read the data)
    2. It verififes that the symbol is safe to append, i.e. there are no subsequent appends,
       or dangling segments from a failed append.
    Parameters
    ----------
    l : `arctic.store.version_store.VersionStore`
        The VersionStore instance against which the analysis will be run.
    sym : `str`
        The symbol to test if is corrupted.
    input_v : `int` or `arctic.store.version_store.VersionedItem`
        The specific version we wish to test if is appendable. This argument is mandatory.

    Returns
    -------
    `bool`
        True if the symbol is safe to append, False otherwise.

def is_safe_to_append(l, sym, input_v):
    """
    This method hints whether the symbol/version are safe for appending in two ways:
    1. It verifies whether the symbol is already corrupted (fast, doesn't read the data)
    2. It verififes that the symbol is safe to append, i.e. there are no subsequent appends,
       or dangling segments from a failed append.
    Parameters
    ----------
    l : `arctic.store.version_store.VersionStore`
        The VersionStore instance against which the analysis will be run.
    sym : `str`
        The symbol to test if is corrupted.
    input_v : `int` or `arctic.store.version_store.VersionedItem`
        The specific version we wish to test if is appendable. This argument is mandatory.

    Returns
    -------
    `bool`
        True if the symbol is safe to append, False otherwise.
    """
    input_v = l._versions.find_one({'symbol': sym, 'version': input_v}) if isinstance(input_v, int) else input_v
    return not _fast_check_corruption(l._collection, sym, input_v,
                                      check_count=True, check_last_segment=True, check_append_safe=True)