def METHOD_NAME(files, save_path, pattern):
    """
    Parse and save files from FTP
    """
    save_path = Path(save_path)
    save_path.mkdir(parents=True, exist_ok=True)
    if pattern == "ARQ2001":
        columns = {
            "orgao_transcritor": 9,
            "codigo_sici": 7,
            "numero_processo": 15,
            "tipo_processo": 12,
            "numero_documento_identidade": 15,
            "tipo_documento_identidade": 3,
            "descricao_tipo_documento_identidade": 31,
            "requerente": 51,
            "data_processo": 11,
            "codigo_assunto": 6,
            "descricao_assunto": 51,
            "data_cadastro": 11,
            "assunto_complementar": 225,
            "matricula_digitador": 9,
            "prazo_cadastro": 26,
        }
    elif pattern == "ARQ2296":
        columns = {
            "codigo_orgao": 8,
            "codigo_sici": 6,
            "tipo_documento": 2,
            "data_cadastro": 10,
            "numero_documento": 14,
            "requerente": 60,
            "codigo_assunto": 5,
            "descricao_assunto": 50,
            "data_tramitacao": 10,
            "orgao_destino": 8,
            "codigo_despacho": 5,
            "data_inicio": 10,
            "data_fim": 10,
            "orgao_inicio": 8,
            "orgao_fim": 8,
            "dias_parados": 6,
            "matricula_digitador": 8,
            "opcao": 1,
            "descricao_relatorio": 16,
            "filler": 3,
            "orgao_responsavel": 8,
            "informacao_complementar": 256,
        }
    else:
        raise "Pattern not found"
    table_columns = list(columns.keys())
    widths_columns = list(columns.values())
    for file in files:
        if file.stat().st_size != 0:
            dataframe = pd.read_fwf(
                file,
                encoding="cp1251",
                widths=widths_columns,
                header=None,
            )
            dataframe.columns = table_columns
            for col in dataframe.columns:
                dataframe[col] = dataframe[col].astype(str).str.replace(";", "")
            file_original_name = str(file).split("/")[-1]
            data_hora = file_original_name.split("_")[1] + file_original_name.split(
                "_"
            )[2].replace(".TXT", "")
            dataframe.insert(0, "data_arquivo", data_hora)
            dataframe["data_arquivo"] = pd.to_datetime(dataframe["data_arquivo"])
            dataframe, date_partition_columns = parse_date_columns(
                dataframe=dataframe, partition_date_column="data_arquivo"
            )
            log(f"dataframe: {dataframe.head()}")
            to_partitions(
                data=dataframe,
                partition_columns=date_partition_columns,
                savepath=save_path,
                data_type="csv",
            )
            log(f"parsed and saved: {file}")
        else:
            log(f"File has no data : {file}")
    return save_path