# piker: trading gear for hackers
# Copyright (C) Tyler Goodlet (in stewardship for pikers)

# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU Affero General Public
# License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <https://www.gnu.org/licenses/>.

'''
Historical TSP (time-series processing) lowlevel mgmt machinery and biz logic for,

- hi-level biz logics using the `.storage` subpkg APIs for (I/O)
  orchestration and mgmt of tsdb data sets.
- core data-provider history backfilling middleware (as task-funcs) via
  (what will eventually be `datad`, but are rn is the) `.brokers` backend
  APIs.
- various data set cleaning, repairing and issue-detection/analysis
  routines to ensure consistent series whether in shm or when
  stored offline (in a tsdb).

'''
from ._anal import (
    get_null_segs as get_null_segs,

    # `polars` specific
    dedupe as dedupe,
    detect_time_gaps as detect_time_gaps,
    pl2np as pl2np,
    np2pl as np2pl,

    # `numpy` only
    slice_from_time as slice_from_time,
)
from ._dedupe_smart import (
    dedupe_ohlcv_smart as dedupe_ohlcv_smart,
)
from ._history import (
    iter_dfs_from_shms as iter_dfs_from_shms,
    manage_history as manage_history,
)
from ._annotate import (
    markup_gaps as markup_gaps,
)
