# lib/__init__.py

__version__ = '2.0'
__build__ = '2025-08-04'
__modified__ = '2025-09-22'

print(f'Package V{__version__}\nbuilt in {__build__}\nmodified in {__modified__}')
print("""
Feature Factory terdapat 2 versi yaitu newer dan older.
Untuk older terdapat beberapa versi. Older versi 2 merupakan versi yang digunakan untuk awal productionized.
Contoh penggunaan module Feature Factory.
modules = lib.get_versioned_modules("newer")
Rubah newer menjadi versi yang ingin digunakan. Untuk older tambahan 'v2' atau versi older lainnya.
""")

from .extract import read, read_default_tables, get_table_dict
from .session import spark_session
from .utils import (
    last_partition, filter_last_ds, format_ds, branchcode,
    set_timer, get_timer, standardize_regional_office,
    cleanse_nomor_hp, upload_to_telegram, classify_monetary_value,
    get_feature_ratio, stratify_sampling, stratify_sampling_exclusive_optimized, 
    stratify_sampling_exclusive, get_list_partition,
    compare_sample_to_population, get_phone_email, get_branch, 
    process_brimo_campaign_fiturname, get_special_date, get_mau_trx,
		get_status_dict, get_status, get_table, get_last_partition
)
from .load import (
    write_periodic, write_non_periodic,
    write_temp_periodic, write_temp, delete_partition,
    quick_write_periodic, write_to_csv, write_temp_periodic_more_than_one_partition,
    write_temp_periodic_with_partition
)
from .pandas_to_spark import pandas_to_spark
from .df_to_bridrive import dataframe_to_bridrive
from .partition_check import validate_partition
from .bridrive import upload_to_bridrive, download_from_bridrive
from .ff_version import get_versioned_modules

from .campaign_manager import CampaignManager

__all__ = [
    'read', 'spark_session',
    'last_partition', 'filter_last_ds', 'format_ds', 'branchcode',
    'set_timer', 'get_timer',
    'write_periodic', 'write_non_periodic',
    'write_temp_periodic', 'write_temp', 'pandas_to_spark', 
    'standardize_regional_office', 'delete_partition',
    'cleanse_nomor_hp', 'upload_to_telegram', 'classify_monetary_value',
    'read_default_tables', 'quick_write_periodic',
    'dataframe_to_bridrive', 'get_feature_ratio', 'stratify_sampling', 'stratify_sampling_exclusive', 'stratify_sampling_exclusive_optimized',
    'get_list_partition', 'compare_sample_to_population', 'get_phone_email',
    'get_branch', 'get_table_dict', 'validate_partition', 'upload_to_bridrive',
    'download_from_bridrive', 'write_to_csv', 'get_versioned_modules', 
    'process_brimo_campaign_fiturname', 'write_temp_periodic_more_than_one_partition',
    'get_special_date', 'get_mau_trx', "write_temp_periodic_with_partition",
		'get_status_dict', 'get_status', "get_table", "get_last_partition"
]
