from typing import NewType from dataclasses import dataclass import numpy as np import pandera as pa from pandera.dtypes import Float32, Float64 VideoFrame = NewType('Frame', float) VideoTimestamp = float def tensor_of(data_type: pa.DataType, cols: list[str]) -> pa.DataFrameSchema: return pa.DataFrameSchema({col: pa.Column(data_type) for col in cols}) DetectedObject_ = tensor_of(Float32, ["xmin", "ymin", "xmax", "ymax", "score", "category"]) TrackedDetectedObject = tensor_of(Float64, list(DetectedObject_.columns) + ["object_id", "index"]) # ["xmin", "ymin", "xmax", "ymax", "object_id", "score", "category", "index"]) Color = tuple[int, int, int]