"""abstract_pandas — pandas/geopandas helpers for reading, filtering and saving tabular data.

The public API is re-exported explicitly below so that `from abstract_pandas import <name>`
keeps working. Note: unlike previous versions, this package no longer re-exports the entire
`abstract_utilities` namespace as a side effect of a wildcard import. Import those helpers
directly from `abstract_utilities` instead.
"""
from .general_functions import (
    capitalize, add_to_dict, get_dict, get_env, generate_date_formats,
    is_datetime_string, find_datetime_format, compare_datetime_formats, make_type,
    convert_column, return_float_or_int, safe_get, get_number, all_combinations_of_strings,
    clean_list, split_and_clean_lines, all_date_formats, convert_date_to_timestamp,
    analyze_and_compare_dates, is_file_path, find_numbers_of_length,
)
from .proj_tools import (
    is_wkt_string, get_crs, get_wkt_string, correct_prj, validate_prj, save_valid_crs,
)
from .location_functions import (
    get_geo_location_master, get_geo_location_master_headers, distance_within_range,
)
from .file_utils import (
    source_ext, source_engine_for_ext, is_file, is_valid_file_path, isDataFrame, is_dataframe,
    create_dataframe, read_ods_file, read_ods, read_ods_as_excel, filter_df, read_shape_file,
    pdf_to_text, read_directory, read_any_file, read_file_as_text, get_df, save_df,
    safe_excel_save, move_excel_file, unique_name, get_new_excel_path, ods_to_xlsx,
    get_caller_path, mkdir, get_excels_dir, get_filtered_dir, get_original_dir, get_path_pieces,
    get_filtered_file_path, get_original_file_path, save_original_excel, save_filtered_excel,
)
from .query_tools import (
    is_inverse, update_excel, merge_dataframes, excel_to_dict, get_headers, get_row_as_list,
    get_row_number, get_int_from_column, get_column_from_int, find_row_with_matching_cell,
    get_itter, safe_itter_get, get_expected_headers, get_closest_headers, find_closest_header,
    get_first_for_each, get_cell_value, count_rows_columns, count_rows_in_excel,
    read_excel_range, get_row, search_column, convert_value,
)
from .excel_module import (
    add_data_point, add_or_update_headers, does_not_equal_in_list, update_or_append_data,
    get_min_max_from_query, search_df_for_values, search_df_with_condition, query_dataframe,
    filter_and_deduplicate_df, get_range, filter_dataframe, filter_excel,
)
from .pdf_to_excel import pdf_to_excel

__all__ = [
    "capitalize", "add_to_dict", "get_dict", "get_env", "generate_date_formats",
    "is_datetime_string", "find_datetime_format", "compare_datetime_formats", "make_type",
    "convert_column", "return_float_or_int", "safe_get", "get_number",
    "all_combinations_of_strings", "clean_list", "split_and_clean_lines", "all_date_formats",
    "convert_date_to_timestamp", "analyze_and_compare_dates", "is_file_path",
    "find_numbers_of_length", "is_wkt_string", "get_crs", "get_wkt_string", "correct_prj",
    "validate_prj", "save_valid_crs", "get_geo_location_master",
    "get_geo_location_master_headers", "distance_within_range", "source_ext",
    "source_engine_for_ext", "is_file", "is_valid_file_path", "isDataFrame", "is_dataframe",
    "create_dataframe", "read_ods_file", "read_ods", "read_ods_as_excel", "filter_df",
    "read_shape_file", "pdf_to_text", "read_directory", "read_any_file", "read_file_as_text",
    "get_df", "save_df", "safe_excel_save", "move_excel_file",
    "unique_name", "get_new_excel_path", "ods_to_xlsx", "get_caller_path", "mkdir",
    "get_excels_dir", "get_filtered_dir", "get_original_dir", "get_path_pieces",
    "get_filtered_file_path", "get_original_file_path", "save_original_excel",
    "save_filtered_excel", "is_inverse", "update_excel", "merge_dataframes", "excel_to_dict",
    "get_headers", "get_row_as_list", "get_row_number", "get_int_from_column",
    "get_column_from_int", "find_row_with_matching_cell", "get_itter", "safe_itter_get",
    "get_expected_headers", "get_closest_headers", "find_closest_header", "get_first_for_each",
    "get_cell_value", "count_rows_columns", "count_rows_in_excel", "read_excel_range",
    "get_row", "search_column", "convert_value", "add_data_point", "add_or_update_headers",
    "does_not_equal_in_list", "update_or_append_data", "get_min_max_from_query",
    "search_df_for_values", "search_df_with_condition", "query_dataframe",
    "filter_and_deduplicate_df", "get_range", "filter_dataframe", "filter_excel",
    "pdf_to_excel",
]
