def METHOD_NAME(
    df: Union[pd.DataFrame, dd.DataFrame],
    column: str,
    output_format: str = "standard",
    inplace: bool = False,
    errors: str = "coerce",
    progress: bool = True,
) -> pd.DataFrame:
    """
    Clean Canadian Business Numbers (BNs) type data in a DataFrame column.
    Parameters
    ----------
        df
            A pandas or Dask DataFrame containing the data to be cleaned.
        col
            The name of the column containing data of BN type.
        output_format
            The output format of standardized number string.
            If output_format = 'compact', return string without any separators or whitespace.
            If output_format = 'standard', return string with proper separators and whitespace.
            Note: in the case of BN, the compact format is the same as the standard one.
            (default: "standard")
        inplace
           If True, delete the column containing the data that was cleaned.
           Otherwise, keep the original column.
           (default: False)
        errors
            How to handle parsing errors.
            - ‘coerce’: invalid parsing will be set to NaN.
            - ‘ignore’: invalid parsing will return the input.
            - ‘raise’: invalid parsing will raise an exception.
            (default: 'coerce')
        progress
            If True, display a progress bar.
            (default: True)
    Examples
    --------
    Clean a column of BN data.
    >>> df = pd.DataFrame({
            "bn": [
            '12302 6635',
            '12302 6635 RC 0001'
            '12345678Z']
            })
    >>> clean_ca_bn(df, 'bn')
            bn                      bn_clean
    0       12302 6635              123026635
    1       12302 6635 RC 0001      123026635RC0001
    2       12345678Z               NaN
    """
    if output_format not in {"compact", "standard"}:
        raise ValueError(
            f"output_format {output_format} is invalid. " 'It needs to be "compact" or "standard".'
        )
    # convert to dask
    df = to_dask(df)
    # To clean, create a new column "clean_code_tup" which contains
    # the cleaned values and code indicating how the initial value was
    # changed in a tuple. Then split the column of tuples and count the
    # amount of different codes to produce the report
    df["clean_code_tup"] = df[column].map_partitions(
        lambda srs: [_format(x, output_format, errors) for x in srs],
        meta=object,
    )
    df = df.assign(
        _temp_=df["clean_code_tup"].map(itemgetter(0)),
    )
    df = df.rename(columns={"_temp_": f"{column}_clean"})
    df = df.drop(columns=["clean_code_tup"])
    if inplace:
        df[column] = df[f"{column}_clean"]
        df = df.drop(columns=f"{column}_clean")
        df = df.rename(columns={column: f"{column}_clean"})
    with ProgressBar(minimum=1, disable=not progress):
        df = df.compute()
    return df