from __future__ import annotations

from .base import (
    get_module_path,
    create_unique_secret_key,
    create_unique_id,
    update_dict,
    diff_dict,
    fail_after,
    is_coro_func,
    extract_function_kwargs,
)

from .batching import (
    split_into_batches,
    split_into_batches_with_index,
    split_into_batches_of_n,
    split_into_n_batches,
)

from .caching import (
    timed_cache,
    is_in_async_loop,
)

from .dates import (
    create_timestamp,
    is_expired_datetime,
    get_current_datetime,
    parse_datetime,
    parse_datetime_from_timestamp,
)

from .envvars import (
    parse_envvars_from_text,
    load_env_vars,
)

from .formatting import (
    build_dict_from_str,
    build_dict_from_list,
    build_dict_from_query,
    combine_parts,
)

from .timing import (
    Timer,
    timer,
    DynamicInterval,
)

from .extra import generate_json_schema_from_model