Splits
API endpoints for train/dev/test data splits.
router = APIRouter(prefix='/api/splits', tags=['splits'])
module-attribute
_backfill_done = False
module-attribute
_SPLIT_COLS = 'split_id, name, created_at, publisher_id, publisher_name, rtype, symbols, symbol_type, total_start, total_end, train_pct, dev_pct, train_end, dev_end, train_bars, dev_bars, test_bars'
module-attribute
SplitCreateRequest
Bases: BaseModel
Source code in src/onesecondtrader/dashboard/routers/splits.py
_compute_date_boundaries(total_start, total_end, train_pct, dev_pct)
Compute train_end and dev_end from percentage of calendar time.
Source code in src/onesecondtrader/dashboard/routers/splits.py
_make_split_name(symbols, created_at)
Generate a human-readable split name.
Source code in src/onesecondtrader/dashboard/routers/splits.py
_source_name(symbols, region, created_at)
Generate a source name for a split region.
Source code in src/onesecondtrader/dashboard/routers/splits.py
_count_bars_per_region(publisher_id, rtype, symbols, symbol_type, total_start, train_end, dev_end, total_end)
Count bars in each train/dev/test region via a single secmaster query.
Returns (train_bars, dev_bars, test_bars).
Source code in src/onesecondtrader/dashboard/routers/splits.py
_row_to_dict(row)
Convert a database row (selected with _SPLIT_COLS) to a dict.
Source code in src/onesecondtrader/dashboard/routers/splits.py
_backfill_bar_counts()
Backfill bar counts for splits that still have all-zero counts.
Source code in src/onesecondtrader/dashboard/routers/splits.py
list_splits()
async
List all splits.
Source code in src/onesecondtrader/dashboard/routers/splits.py
create_split(request)
async
Create a new data split.
Source code in src/onesecondtrader/dashboard/routers/splits.py
list_split_sources()
async
Flat list of all split-derived sources for data source pickers.
Source code in src/onesecondtrader/dashboard/routers/splits.py
delete_split(split_id)
async
Delete a split.