Source code for crowsetta.interface.bbox.base

"""An abstract base class defining the interface
for any annotation format
that can be represented as a set of bounding boxes"""
import abc
from typing import Sequence, Union

from ..base import BaseFormat


[docs] class BBoxLike(BaseFormat, abc.ABC): """An abstract base class defining the interface for any annotation format that can be represented as a set of labeled bounding boxes. In terms of code in :mod:`crowsetta`, a bounding box-like format is any format that can be represented as a collection of :class:`crowsetta.BBox` instances. The code block below shows some of the features of this data type. .. code-block:: python >>> from crowsetta import BBox >>> a_bbox = BBox( ... label='a', ... onset=1.0, ... offset=2.0, ... low_freq=5000, ... high_freq=10000, ... ) >>> another_bbox = BBox( ... label='a', ... onset=3.0, ... offset=4.0, ... low_freq=5000, ... high_freq=10000, ... ) >>> list_of_bboxes = [a_bbox, another_bbox] >>> for bbox in list_of_bboxes: print(segment) BBox(onset=1.0, offset=2.0, low_freq=5000, high_freq=10000, label='a') BBox(onset=3.0, offset=4.0, low_freq=5000, high_freq=10000, label='a') >>> a_bbox.onset 1.0 """
[docs] def to_bbox(self) -> "Union[crowsetta.BBox, Sequence[crowsetta.BBox]]": # noqa : F821 """Converts the annotation to a :class:`crowsetta.BBox` instance or a Python :class:`~typing.Sequence` of :class:`crowsetta.BBox` instances. """ ...