module documentation

Backing document classes for fiftyone.core.sample.Sample instances.

Class hierarchy:

SerializableDocument
├── NoDatasetSampleDocument
└── DatasetSampleDocument
    ├── my_custom_dataset
    ├── another_dataset
    └── ...

Design invariants:

Implementation details

When a new fiftyone.core.sample.Sample is created, its _doc attribute is an instance of NoDatasetSampleDocument:

import fiftyone as fo

sample = fo.Sample()
sample._doc  # NoDatasetSampleDocument

When a new fiftyone.core.dataset.Dataset is created, its _sample_doc_cls attribute holds a dynamically created subclass of DatasetSampleDocument whose name is the name of the dataset's sample collection:

dataset = fo.Dataset(name="my_dataset")
dataset._sample_doc_cls  # my_dataset(DatasetSampleDocument)

When a sample is added to a dataset, its _doc attribute is changed from type NoDatasetSampleDocument to type dataset._sample_doc_cls:

dataset.add_sample(sample)
sample._doc  # my_dataset(DatasetSampleDocument)
Copyright 2017-2025, Voxel51, Inc.

Class DatasetSampleDocument Base class for sample documents backing samples in datasets.
Class NoDatasetSampleDocument Backing document for samples that have not been added to a dataset.
Function _generate_rand Undocumented
Variable _random Undocumented
def _generate_rand(filepath=None): (source)

Undocumented

Undocumented