<!-- # hard line break macro for HTML -->

# fiftyone.core.singletons

FiftyOne singleton implementations.

Copyright 2017-2026, Voxel51, Inc.
<br/>
[voxel51.com](https://voxel51.com/)
<br/>
<br/>

**Classes:**

| [`DatasetSingleton`](#fiftyone.core.singletons.DatasetSingleton)(\*args, \*\*kwargs)   | Singleton metaclass for [`fiftyone.core.dataset.Dataset`](fiftyone.core.dataset.md#fiftyone.core.dataset.Dataset).                           |
|----------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| [`DocumentSingleton`](#fiftyone.core.singletons.DocumentSingleton)                     | Singleton metaclass interface for [`fiftyone.core.document.Document`](fiftyone.core.document.md#fiftyone.core.document.Document) subclasses. |
| [`SampleSingleton`](#fiftyone.core.singletons.SampleSingleton)(\*args, \*\*kwargs)     | Singleton metaclass for [`fiftyone.core.sample.Sample`](fiftyone.core.sample.md#fiftyone.core.sample.Sample).                                |
| [`FrameSingleton`](#fiftyone.core.singletons.FrameSingleton)(\*args, \*\*kwargs)       | Singleton metaclass for [`fiftyone.core.frame.Frame`](fiftyone.core.frame.md#fiftyone.core.frame.Frame).                                     |

### *class* fiftyone.core.singletons.DatasetSingleton(\*args, \*\*kwargs)

Bases: `type`

Singleton metaclass for [`fiftyone.core.dataset.Dataset`](fiftyone.core.dataset.md#fiftyone.core.dataset.Dataset).

Datasets are singletons keyed by the dataset’s `name`.

Note that new [`fiftyone.core.dataset.Dataset`](fiftyone.core.dataset.md#fiftyone.core.dataset.Dataset) instances are always
created if the `_create == True`.

**Methods:**

| [`mro`](#fiftyone.core.singletons.DatasetSingleton.mro)()   | Return a type's method resolution order.   |
|-------------------------------------------------------------|--------------------------------------------|

#### mro()

Return a type’s method resolution order.

### *class* fiftyone.core.singletons.DocumentSingleton

Bases: `type`

Singleton metaclass interface for
[`fiftyone.core.document.Document`](fiftyone.core.document.md#fiftyone.core.document.Document) subclasses.

The methods declared by this interface are used by the
[`fiftyone.core.document.Document`](fiftyone.core.document.md#fiftyone.core.document.Document) class to manage all instances
of a class that implements this type.

**Methods:**

| [`mro`](#fiftyone.core.singletons.DocumentSingleton.mro)()   | Return a type's method resolution order.   |
|--------------------------------------------------------------|--------------------------------------------|

#### mro()

Return a type’s method resolution order.

### *class* fiftyone.core.singletons.SampleSingleton(\*args, \*\*kwargs)

Bases: [`DocumentSingleton`](#fiftyone.core.singletons.DocumentSingleton)

Singleton metaclass for [`fiftyone.core.sample.Sample`](fiftyone.core.sample.md#fiftyone.core.sample.Sample).

This metaclass maintains a weakref dictionary of all in-memory
[`fiftyone.core.sample.Sample`](fiftyone.core.sample.md#fiftyone.core.sample.Sample) instances keyed by
`[collection name][sample ID]`.

**Methods:**

| [`mro`](#fiftyone.core.singletons.SampleSingleton.mro)()   | Return a type's method resolution order.   |
|------------------------------------------------------------|--------------------------------------------|

#### mro()

Return a type’s method resolution order.

### *class* fiftyone.core.singletons.FrameSingleton(\*args, \*\*kwargs)

Bases: [`DocumentSingleton`](#fiftyone.core.singletons.DocumentSingleton)

Singleton metaclass for [`fiftyone.core.frame.Frame`](fiftyone.core.frame.md#fiftyone.core.frame.Frame).

This metaclass maintains a weakref dictionary of all in-memory
[`fiftyone.core.frame.Frame`](fiftyone.core.frame.md#fiftyone.core.frame.Frame) instances keyed by
`[collection name][sample ID][frame number]`.

**Methods:**

| [`mro`](#fiftyone.core.singletons.FrameSingleton.mro)()   | Return a type's method resolution order.   |
|-----------------------------------------------------------|--------------------------------------------|

#### mro()

Return a type’s method resolution order.
