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

# fiftyone.core.fields

Dataset sample fields.

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

**Functions:**

| [`validate_constraints`](#fiftyone.core.fields.validate_constraints)([ftype, ...])       | Validates the given field constraints.                                                                        |
|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
| [`matches_constraints`](#fiftyone.core.fields.matches_constraints)(field[, ftype, ...])  | Determines whether the field matches the given constraints.                                                   |
| [`validate_field`](#fiftyone.core.fields.validate_field)(field[, path, ftype, ...])      | Validates that the field matches the given constraints.                                                       |
| [`get_field_metadata`](#fiftyone.core.fields.get_field_metadata)(field)                  | Returns a dict of editable metadata for the given field.                                                      |
| [`filter_schema`](#fiftyone.core.fields.filter_schema)(schema[, ftype, ...])             | Filters the schema according to the given constraints.                                                        |
| [`flatten_schema`](#fiftyone.core.fields.flatten_schema)(schema[, ftype, ...])           | Returns a flat version of the given schema where all embedded document fields are included as top-level keys. |
| [`is_integer_mask_targets`](#fiftyone.core.fields.is_integer_mask_targets)(mask_targets) | Determines whether the provided mask targets use integer keys.                                                |
| [`is_integer_target`](#fiftyone.core.fields.is_integer_target)(target)                   | Determines whether the provided target is an integer.                                                         |
| [`is_rgb_mask_targets`](#fiftyone.core.fields.is_rgb_mask_targets)(mask_targets)         | Determines whether the provided mask targets use RGB hex string keys.                                         |
| [`is_rgb_target`](#fiftyone.core.fields.is_rgb_target)(target)                           | Determines whether the provided target is an RGB string.                                                      |
| [`hex_to_int`](#fiftyone.core.fields.hex_to_int)(hex_str)                                | Converts a hex string like `"#ff6d04"` to a hex integer.                                                      |
| [`int_to_hex`](#fiftyone.core.fields.int_to_hex)(value)                                  | Converts an RRGGBB integer value to hex string like `"#ff6d04"`.                                              |
| [`rgb_array_to_int`](#fiftyone.core.fields.rgb_array_to_int)(mask)                       | Converts an RGB mask array to a 2D hex integer mask array.                                                    |
| [`int_array_to_rgb`](#fiftyone.core.fields.int_array_to_rgb)(mask)                       | Converts a 2D hex integer mask array to an RGB mask array.                                                    |

**Classes:**

| [`Field`](#fiftyone.core.fields.Field)([description, info, read_only, created_at])                   | A generic field.                                                                                                                                                 |
|------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`IntField`](#fiftyone.core.fields.IntField)([description, info, read_only, ...])                    | A 32 bit integer field.                                                                                                                                          |
| [`ObjectIdField`](#fiftyone.core.fields.ObjectIdField)([description, info, ...])                     | An Object ID field.                                                                                                                                              |
| [`UUIDField`](#fiftyone.core.fields.UUIDField)([description, info, read_only, ...])                  | A UUID field.                                                                                                                                                    |
| [`BooleanField`](#fiftyone.core.fields.BooleanField)([description, info, read_only, ...])            | A boolean field.                                                                                                                                                 |
| [`DateField`](#fiftyone.core.fields.DateField)([description, info, read_only, ...])                  | A date field.                                                                                                                                                    |
| [`DateTimeField`](#fiftyone.core.fields.DateTimeField)([description, info, ...])                     | A datetime field.                                                                                                                                                |
| [`FloatField`](#fiftyone.core.fields.FloatField)([description, info, read_only, ...])                | A floating point number field.                                                                                                                                   |
| [`StringField`](#fiftyone.core.fields.StringField)([description, info, read_only, ...])              | A unicode string field.                                                                                                                                          |
| [`ColorField`](#fiftyone.core.fields.ColorField)([description, info, read_only, ...])                | A string field that holds a hex color string like '#FF6D04'.                                                                                                     |
| [`ListField`](#fiftyone.core.fields.ListField)([field, description, info, ...])                      | A list field that wraps a standard [`Field`](#fiftyone.core.fields.Field), allowing multiple instances of the field to be stored as a list in the database.      |
| [`HeatmapRangeField`](#fiftyone.core.fields.HeatmapRangeField)(\*\*kwargs)                           | A `[min, max]` range of the values in a [`fiftyone.core.labels.Heatmap`](fiftyone.core.labels.md#fiftyone.core.labels.Heatmap).                                  |
| [`DictField`](#fiftyone.core.fields.DictField)([field, description, info, ...])                      | A dictionary field that wraps a standard Python dictionary.                                                                                                      |
| [`KeypointsField`](#fiftyone.core.fields.KeypointsField)([field, description, info, ...])            | A list of `(x, y)` coordinate pairs.                                                                                                                             |
| [`PolylinePointsField`](#fiftyone.core.fields.PolylinePointsField)([field, description, ...])        | A list of lists of `(x, y)` coordinate pairs.                                                                                                                    |
| [`GeoPointField`](#fiftyone.core.fields.GeoPointField)([description, info, ...])                     | A GeoJSON field storing a longitude and latitude coordinate point.                                                                                               |
| [`GeoLineStringField`](#fiftyone.core.fields.GeoLineStringField)([description, info, ...])           | A GeoJSON field storing a line of longitude and latitude coordinates.                                                                                            |
| [`GeoPolygonField`](#fiftyone.core.fields.GeoPolygonField)([description, info, ...])                 | A GeoJSON field storing a polygon of longitude and latitude coordinates.                                                                                         |
| [`GeoMultiPointField`](#fiftyone.core.fields.GeoMultiPointField)([description, info, ...])           | A GeoJSON field storing a list of points.                                                                                                                        |
| [`GeoMultiLineStringField`](#fiftyone.core.fields.GeoMultiLineStringField)([description, info, ...]) | A GeoJSON field storing a list of lines.                                                                                                                         |
| [`GeoMultiPolygonField`](#fiftyone.core.fields.GeoMultiPolygonField)([description, info, ...])       | A GeoJSON field storing a list of polygons.                                                                                                                      |
| [`VectorField`](#fiftyone.core.fields.VectorField)([description, info, read_only, ...])              | A one-dimensional array field.                                                                                                                                   |
| [`ArrayField`](#fiftyone.core.fields.ArrayField)([description, info, read_only, ...])                | An n-dimensional array field.                                                                                                                                    |
| [`FrameNumberField`](#fiftyone.core.fields.FrameNumberField)([description, info, ...])               | A video frame number field.                                                                                                                                      |
| [`FrameSupportField`](#fiftyone.core.fields.FrameSupportField)(\*\*kwargs)                           | A `[first, last]` frame support in a video.                                                                                                                      |
| [`ClassesField`](#fiftyone.core.fields.ClassesField)(\*\*kwargs)                                     | A [`ListField`](#fiftyone.core.fields.ListField) that stores class label strings.                                                                                |
| [`MaskTargetsField`](#fiftyone.core.fields.MaskTargetsField)(\*\*kwargs)                             | A [`DictField`](#fiftyone.core.fields.DictField) that stores mapping between integer keys or RGB string hex keys and string targets.                             |
| [`EmbeddedDocumentField`](#fiftyone.core.fields.EmbeddedDocumentField)(document_type[, ...])         | A field that stores instances of a given type of [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument) object. |
| [`EmbeddedDocumentListField`](#fiftyone.core.fields.EmbeddedDocumentListField)(document_type[, ...]) | A field that stores a list of a given type of [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument) objects.   |
| [`ReferenceField`](#fiftyone.core.fields.ReferenceField)(document_type[, dbref, ...])                | A reference field.                                                                                                                                               |
| [`MediaReferenceField`](#fiftyone.core.fields.MediaReferenceField)([document_type])                  | A reference-backed sample's media identity: which media source its media comes from, and where in that source it is.                                             |

### fiftyone.core.fields.validate_constraints(ftype=None, embedded_doc_type=None, subfield=None, read_only=None, info_keys=None, created_after=None)

Validates the given field constraints.

* **Parameters:**
  * **ftype** (*None*) – an optional field type or iterable of types to enforce.
    Must be subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **embedded_doc_type** (*None*) – an optional embedded document type or
    iterable of types to enforce. Must be subclass(es) of
    [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument)
  * **subfield** (*None*) – an optional subfield type or iterable of subfield
    types to enforce. Must be subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **read_only** (*None*) – whether to optionally enforce that the field is
    read-only (True) or not read-only (False)
  * **info_keys** (*None*) – an optional key or list of keys that must be in the
    field’s `info` dict
  * **created_after** (*None*) – an optional `datetime` specifying a minimum
    creation date
* **Returns:**
  True/False whether any constraints were provided
* **Raises:**
  **ValueError** – if the constraints are not valid

### fiftyone.core.fields.matches_constraints(field, ftype=None, embedded_doc_type=None, subfield=None, read_only=None, info_keys=None, created_after=None)

Determines whether the field matches the given constraints.

* **Parameters:**
  * **field** – a [`Field`](#fiftyone.core.fields.Field)
  * **ftype** (*None*) – an optional field type or iterable of types to enforce.
    Must be subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **embedded_doc_type** (*None*) – an optional embedded document type or
    iterable of types to enforce. Must be subclass(es) of
    [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument)
  * **subfield** (*None*) – an optional subfield type or iterable of subfield
    types to enforce. Must be subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **read_only** (*None*) – whether to optionally enforce that the field is
    read-only (True) or not read-only (False)
  * **info_keys** (*None*) – an optional key or list of keys that must be in the
    field’s `info` dict
  * **created_after** (*None*) – an optional `datetime` specifying a minimum
    creation date
* **Returns:**
  True/False

### fiftyone.core.fields.validate_field(field, path=None, ftype=None, embedded_doc_type=None, subfield=None, read_only=None)

Validates that the field matches the given constraints.

* **Parameters:**
  * **field** – a [`Field`](#fiftyone.core.fields.Field)
  * **path** (*None*) – the field or `embedded.field.name`. Only used to
    generate more informative error messages
  * **ftype** (*None*) – an optional field type or iterable of types to enforce.
    Must be subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **embedded_doc_type** (*None*) – an optional embedded document type or
    iterable of types to enforce. Must be subclass(es) of
    [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument)
  * **subfield** (*None*) – an optional subfield type or iterable of subfield
    types to enforce. Must be subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **read_only** (*None*) – whether to optionally enforce that the field is
    read-only (True) or not read-only (False)
* **Raises:**
  **ValueError** – if the constraints are not valid

### fiftyone.core.fields.get_field_metadata(field)

Returns a dict of editable metadata for the given field.

* **Parameters:**
  **field** – a [`Field`](#fiftyone.core.fields.Field)
* **Returns:**
  a dict of field metadata

### fiftyone.core.fields.filter_schema(schema, ftype=None, embedded_doc_type=None, subfield=None, read_only=None, info_keys=None, created_after=None, include_private=False, flat=False, unwind=True, mode=None)

Filters the schema according to the given constraints.

* **Parameters:**
  * **schema** – a dict mapping field names to [`Field`](#fiftyone.core.fields.Field) instances
  * **ftype** (*None*) – an optional field type or iterable of types to which
    to restrict the returned schema. Must be subclass(es) of
    [`Field`](#fiftyone.core.fields.Field)
  * **embedded_doc_type** (*None*) – an optional embedded document type or
    iterable of types to which to restrict the returned schema.
    Must be subclass(es) of
    [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument)
  * **subfield** (*None*) – an optional subfield type or iterable of subfield
    types to which to restrict the returned schema. Must be
    subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **read_only** (*None*) – whether to restrict to (True) or exclude (False)
    read-only fields. By default, all fields are included
  * **info_keys** (*None*) – an optional key or list of keys that must be in the
    field’s `info` dict
  * **created_after** (*None*) – an optional `datetime` specifying a minimum
    creation date
  * **include_private** (*False*) – whether to include fields that start with
    `_` in the returned schema
  * **flat** (*False*) – whether to return a flattened schema where all
    embedded document fields are included as top-level keys
  * **unwind** (*True*) – whether to traverse into list fields. Only applicable
    when `flat=True`
  * **mode** (*None*) – whether to apply the above constraints before and/or after
    flattening the schema. Only applicable when `flat=True`.
    Supported values are `("before", "after", "both")`. The default
    is `"after"`
* **Returns:**
  a dict mapping field names to [`Field`](#fiftyone.core.fields.Field) instances

### fiftyone.core.fields.flatten_schema(schema, ftype=None, embedded_doc_type=None, subfield=None, unwind=True, read_only=None, info_keys=None, created_after=None, include_private=False)

Returns a flat version of the given schema where all embedded document
fields are included as top-level keys.

* **Parameters:**
  * **schema** – a dict mapping field names to [`Field`](#fiftyone.core.fields.Field) instances
  * **ftype** (*None*) – an optional field type or iterable of types to which to
    restrict the returned schema. Must be subclass(es) of
    [`Field`](#fiftyone.core.fields.Field)
  * **embedded_doc_type** (*None*) – an optional embedded document type or
    iterable of types to which to restrict the returned schema. Must be
    subclass(es) of [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument)
  * **subfield** (*None*) – an optional subfield type or iterable of subfield
    types to which to restrict the returned schema. Must be
    subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **unwind** (*True*) – whether to traverse into list fields
  * **read_only** (*None*) – whether to restrict to (True) or exclude (False)
    read-only fields. By default, all fields are included
  * **info_keys** (*None*) – an optional key or list of keys that must be in the
    field’s `info` dict
  * **created_after** (*None*) – an optional `datetime` specifying a minimum
    creation date
  * **include_private** (*False*) – whether to include fields that start with
    `_` in the returned schema
* **Returns:**
  a dict mapping flattened paths to [`Field`](#fiftyone.core.fields.Field) instances

### *class* fiftyone.core.fields.Field(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `BaseField`

A generic field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Attributes:**

| [`path`](#fiftyone.core.fields.Field.path)                                   | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset.   |
|------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
| [`description`](#fiftyone.core.fields.Field.description)                     | A user-editable description of the field.                                                                                  |
| [`info`](#fiftyone.core.fields.Field.info)                                   | A user-editable dictionary of information about the field.                                                                 |
| [`read_only`](#fiftyone.core.fields.Field.read_only)                         | Whether the field is read-only.                                                                                            |
| [`created_at`](#fiftyone.core.fields.Field.created_at)                       | The datetime the field was created.                                                                                        |
| [`auto_creation_counter`](#fiftyone.core.fields.Field.auto_creation_counter) |                                                                                                                            |
| [`creation_counter`](#fiftyone.core.fields.Field.creation_counter)           |                                                                                                                            |
| [`name`](#fiftyone.core.fields.Field.name)                                   |                                                                                                                            |
| [`owner_document`](#fiftyone.core.fields.Field.owner_document)               |                                                                                                                            |

**Methods:**

| [`copy`](#fiftyone.core.fields.Field.copy)()                                          | Returns a copy of the field.                                                                                                                        |
|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
| [`save`](#fiftyone.core.fields.Field.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.Field.description) and [`info`](#fiftyone.core.fields.Field.info) attributes. |
| [`error`](#fiftyone.core.fields.Field.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                            |
| [`prepare_query_value`](#fiftyone.core.fields.Field.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                          |
| [`set_auto_dereferencing`](#fiftyone.core.fields.Field.set_auto_dereferencing)(value) |                                                                                                                                                     |
| [`to_mongo`](#fiftyone.core.fields.Field.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                 |
| [`to_python`](#fiftyone.core.fields.Field.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                 |
| [`validate`](#fiftyone.core.fields.Field.validate)(value[, clean])                    | Perform validation on a value.                                                                                                                      |

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### *property* created_at

The datetime the field was created.

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.Field.description) and [`info`](#fiftyone.core.fields.Field.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### auto_creation_counter *= -12*

#### creation_counter *= 341*

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### name *= None*

#### *property* owner_document

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value, clean=True)

Perform validation on a value.

### *class* fiftyone.core.fields.IntField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `IntField`, [`Field`](#fiftyone.core.fields.Field)

A 32 bit integer field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`to_mongo`](#fiftyone.core.fields.IntField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                       |
|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.IntField.copy)()                                          | Returns a copy of the field.                                                                                                                              |
| [`error`](#fiftyone.core.fields.IntField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                  |
| [`prepare_query_value`](#fiftyone.core.fields.IntField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                |
| [`save`](#fiftyone.core.fields.IntField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.IntField.description) and [`info`](#fiftyone.core.fields.IntField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.IntField.set_auto_dereferencing)(value) |                                                                                                                                                           |
| [`to_python`](#fiftyone.core.fields.IntField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                       |
| [`validate`](#fiftyone.core.fields.IntField.validate)(value)                             | Perform validation on a value.                                                                                                                            |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.IntField.auto_creation_counter)   |                                                                                                                          |
|-----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.IntField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.IntField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.IntField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.IntField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.IntField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.IntField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.IntField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.IntField.read_only)                           | Whether the field is read-only.                                                                                          |

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.IntField.description) and [`info`](#fiftyone.core.fields.IntField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Perform validation on a value.

### *class* fiftyone.core.fields.ObjectIdField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `ObjectIdField`, [`Field`](#fiftyone.core.fields.Field)

An Object ID field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`to_mongo`](#fiftyone.core.fields.ObjectIdField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                 |
|-----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`to_python`](#fiftyone.core.fields.ObjectIdField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                 |
| [`copy`](#fiftyone.core.fields.ObjectIdField.copy)()                                          | Returns a copy of the field.                                                                                                                                        |
| [`error`](#fiftyone.core.fields.ObjectIdField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                            |
| [`prepare_query_value`](#fiftyone.core.fields.ObjectIdField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                          |
| [`save`](#fiftyone.core.fields.ObjectIdField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.ObjectIdField.description) and [`info`](#fiftyone.core.fields.ObjectIdField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.ObjectIdField.set_auto_dereferencing)(value) |                                                                                                                                                                     |
| [`validate`](#fiftyone.core.fields.ObjectIdField.validate)(value)                             | Perform validation on a value.                                                                                                                                      |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.ObjectIdField.auto_creation_counter)   |                                                                                                                          |
|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.ObjectIdField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.ObjectIdField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.ObjectIdField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.ObjectIdField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.ObjectIdField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.ObjectIdField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.ObjectIdField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.ObjectIdField.read_only)                           | Whether the field is read-only.                                                                                          |

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.ObjectIdField.description) and [`info`](#fiftyone.core.fields.ObjectIdField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### validate(value)

Perform validation on a value.

### *class* fiftyone.core.fields.UUIDField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `UUIDField`, [`Field`](#fiftyone.core.fields.Field)

A UUID field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.UUIDField.auto_creation_counter)   |                                                                                                                          |
|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.UUIDField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.UUIDField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.UUIDField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.UUIDField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.UUIDField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.UUIDField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.UUIDField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.UUIDField.read_only)                           | Whether the field is read-only.                                                                                          |

**Methods:**

| [`copy`](#fiftyone.core.fields.UUIDField.copy)()                                          | Returns a copy of the field.                                                                                                                                |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`error`](#fiftyone.core.fields.UUIDField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                    |
| [`prepare_query_value`](#fiftyone.core.fields.UUIDField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                  |
| [`save`](#fiftyone.core.fields.UUIDField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.UUIDField.description) and [`info`](#fiftyone.core.fields.UUIDField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.UUIDField.set_auto_dereferencing)(value) |                                                                                                                                                             |
| [`to_mongo`](#fiftyone.core.fields.UUIDField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                         |
| [`to_python`](#fiftyone.core.fields.UUIDField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                         |
| [`validate`](#fiftyone.core.fields.UUIDField.validate)(value)                             | Perform validation on a value.                                                                                                                              |

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.UUIDField.description) and [`info`](#fiftyone.core.fields.UUIDField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Perform validation on a value.

### *class* fiftyone.core.fields.BooleanField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `BooleanField`, [`Field`](#fiftyone.core.fields.Field)

A boolean field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.BooleanField.validate)(value)                             | Perform validation on a value.                                                                                                                                    |
|----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.BooleanField.copy)()                                          | Returns a copy of the field.                                                                                                                                      |
| [`error`](#fiftyone.core.fields.BooleanField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                          |
| [`prepare_query_value`](#fiftyone.core.fields.BooleanField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                        |
| [`save`](#fiftyone.core.fields.BooleanField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.BooleanField.description) and [`info`](#fiftyone.core.fields.BooleanField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.BooleanField.set_auto_dereferencing)(value) |                                                                                                                                                                   |
| [`to_mongo`](#fiftyone.core.fields.BooleanField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                               |
| [`to_python`](#fiftyone.core.fields.BooleanField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                               |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.BooleanField.auto_creation_counter)   |                                                                                                                          |
|---------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.BooleanField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.BooleanField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.BooleanField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.BooleanField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.BooleanField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.BooleanField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.BooleanField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.BooleanField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.BooleanField.description) and [`info`](#fiftyone.core.fields.BooleanField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.DateField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `DateField`, [`Field`](#fiftyone.core.fields.Field)

A date field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`to_mongo`](#fiftyone.core.fields.DateField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                         |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`to_python`](#fiftyone.core.fields.DateField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                         |
| [`validate`](#fiftyone.core.fields.DateField.validate)(value)                             | Perform validation on a value.                                                                                                                              |
| [`copy`](#fiftyone.core.fields.DateField.copy)()                                          | Returns a copy of the field.                                                                                                                                |
| [`error`](#fiftyone.core.fields.DateField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                    |
| [`prepare_query_value`](#fiftyone.core.fields.DateField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                  |
| [`save`](#fiftyone.core.fields.DateField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.DateField.description) and [`info`](#fiftyone.core.fields.DateField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.DateField.set_auto_dereferencing)(value) |                                                                                                                                                             |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.DateField.auto_creation_counter)   |                                                                                                                          |
|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.DateField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.DateField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.DateField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.DateField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.DateField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.DateField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.DateField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.DateField.read_only)                           | Whether the field is read-only.                                                                                          |

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.DateField.description) and [`info`](#fiftyone.core.fields.DateField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

### *class* fiftyone.core.fields.DateTimeField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `DateTimeField`, [`Field`](#fiftyone.core.fields.Field)

A datetime field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.DateTimeField.validate)(value)                             | Perform validation on a value.                                                                                                                                      |
|-----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.DateTimeField.copy)()                                          | Returns a copy of the field.                                                                                                                                        |
| [`error`](#fiftyone.core.fields.DateTimeField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                            |
| [`prepare_query_value`](#fiftyone.core.fields.DateTimeField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                          |
| [`save`](#fiftyone.core.fields.DateTimeField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.DateTimeField.description) and [`info`](#fiftyone.core.fields.DateTimeField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.DateTimeField.set_auto_dereferencing)(value) |                                                                                                                                                                     |
| [`to_mongo`](#fiftyone.core.fields.DateTimeField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                 |
| [`to_python`](#fiftyone.core.fields.DateTimeField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                 |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.DateTimeField.auto_creation_counter)   |                                                                                                                          |
|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.DateTimeField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.DateTimeField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.DateTimeField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.DateTimeField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.DateTimeField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.DateTimeField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.DateTimeField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.DateTimeField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.DateTimeField.description) and [`info`](#fiftyone.core.fields.DateTimeField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.FloatField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `FloatField`, [`Field`](#fiftyone.core.fields.Field)

A floating point number field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`to_mongo`](#fiftyone.core.fields.FloatField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                           |
|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`validate`](#fiftyone.core.fields.FloatField.validate)(value)                             | Perform validation on a value.                                                                                                                                |
| [`copy`](#fiftyone.core.fields.FloatField.copy)()                                          | Returns a copy of the field.                                                                                                                                  |
| [`error`](#fiftyone.core.fields.FloatField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                      |
| [`prepare_query_value`](#fiftyone.core.fields.FloatField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                    |
| [`save`](#fiftyone.core.fields.FloatField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.FloatField.description) and [`info`](#fiftyone.core.fields.FloatField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.FloatField.set_auto_dereferencing)(value) |                                                                                                                                                               |
| [`to_python`](#fiftyone.core.fields.FloatField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                           |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.FloatField.auto_creation_counter)   |                                                                                                                          |
|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.FloatField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.FloatField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.FloatField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.FloatField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.FloatField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.FloatField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.FloatField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.FloatField.read_only)                           | Whether the field is read-only.                                                                                          |

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.FloatField.description) and [`info`](#fiftyone.core.fields.FloatField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.StringField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `StringField`, [`Field`](#fiftyone.core.fields.Field)

A unicode string field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.StringField.auto_creation_counter)   |                                                                                                                          |
|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.StringField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.StringField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.StringField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.StringField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.StringField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.StringField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.StringField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.StringField.read_only)                           | Whether the field is read-only.                                                                                          |

**Methods:**

| [`copy`](#fiftyone.core.fields.StringField.copy)()                                          | Returns a copy of the field.                                                                                                                                    |
|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`error`](#fiftyone.core.fields.StringField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                        |
| [`lookup_member`](#fiftyone.core.fields.StringField.lookup_member)(member_name)             |                                                                                                                                                                 |
| [`prepare_query_value`](#fiftyone.core.fields.StringField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                      |
| [`save`](#fiftyone.core.fields.StringField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.StringField.description) and [`info`](#fiftyone.core.fields.StringField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.StringField.set_auto_dereferencing)(value) |                                                                                                                                                                 |
| [`to_mongo`](#fiftyone.core.fields.StringField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                             |
| [`to_python`](#fiftyone.core.fields.StringField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                             |
| [`validate`](#fiftyone.core.fields.StringField.validate)(value)                             | Perform validation on a value.                                                                                                                                  |

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.StringField.description) and [`info`](#fiftyone.core.fields.StringField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Perform validation on a value.

### *class* fiftyone.core.fields.ColorField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: [`StringField`](#fiftyone.core.fields.StringField)

A string field that holds a hex color string like ‘#FF6D04’.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.ColorField.validate)(value)                             | Perform validation on a value.                                                                                                                                |
|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.ColorField.copy)()                                          | Returns a copy of the field.                                                                                                                                  |
| [`error`](#fiftyone.core.fields.ColorField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                      |
| [`lookup_member`](#fiftyone.core.fields.ColorField.lookup_member)(member_name)             |                                                                                                                                                               |
| [`prepare_query_value`](#fiftyone.core.fields.ColorField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                    |
| [`save`](#fiftyone.core.fields.ColorField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.ColorField.description) and [`info`](#fiftyone.core.fields.ColorField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.ColorField.set_auto_dereferencing)(value) |                                                                                                                                                               |
| [`to_mongo`](#fiftyone.core.fields.ColorField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                           |
| [`to_python`](#fiftyone.core.fields.ColorField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                           |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.ColorField.auto_creation_counter)   |                                                                                                                          |
|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.ColorField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.ColorField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.ColorField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.ColorField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.ColorField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.ColorField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.ColorField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.ColorField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.ColorField.description) and [`info`](#fiftyone.core.fields.ColorField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.ListField(field=None, description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `ListField`, [`Field`](#fiftyone.core.fields.Field)

A list field that wraps a standard [`Field`](#fiftyone.core.fields.Field), allowing multiple
instances of the field to be stored as a list in the database.

If this field is not set, its default value is `[]`.

* **Parameters:**
  * **field** (*None*) – an optional [`Field`](#fiftyone.core.fields.Field) instance describing the
    type of the list elements
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.ListField.auto_creation_counter)   |                                                                                                                          |
|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.ListField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.ListField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.ListField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.ListField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.ListField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.ListField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.ListField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.ListField.read_only)                           | Whether the field is read-only.                                                                                          |

**Methods:**

| [`copy`](#fiftyone.core.fields.ListField.copy)()                                          | Returns a copy of the field.                                                                                                                                |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`error`](#fiftyone.core.fields.ListField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                    |
| [`lookup_member`](#fiftyone.core.fields.ListField.lookup_member)(member_name)             |                                                                                                                                                             |
| [`prepare_query_value`](#fiftyone.core.fields.ListField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                  |
| [`save`](#fiftyone.core.fields.ListField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.ListField.description) and [`info`](#fiftyone.core.fields.ListField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.ListField.set_auto_dereferencing)(value) |                                                                                                                                                             |
| [`to_mongo`](#fiftyone.core.fields.ListField.to_mongo)(value[, use_db_field, fields])     | Convert a Python type to a MongoDB-compatible type.                                                                                                         |
| [`to_python`](#fiftyone.core.fields.ListField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                         |
| [`validate`](#fiftyone.core.fields.ListField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                        |

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.ListField.description) and [`info`](#fiftyone.core.fields.ListField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Make sure that a list of valid fields is being used.

### *class* fiftyone.core.fields.HeatmapRangeField(\*\*kwargs)

Bases: [`ListField`](#fiftyone.core.fields.ListField)

A `[min, max]` range of the values in a
[`fiftyone.core.labels.Heatmap`](fiftyone.core.labels.md#fiftyone.core.labels.Heatmap).

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.HeatmapRangeField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                                        |
|---------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.HeatmapRangeField.copy)()                                          | Returns a copy of the field.                                                                                                                                                |
| [`error`](#fiftyone.core.fields.HeatmapRangeField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                    |
| [`lookup_member`](#fiftyone.core.fields.HeatmapRangeField.lookup_member)(member_name)             |                                                                                                                                                                             |
| [`prepare_query_value`](#fiftyone.core.fields.HeatmapRangeField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                  |
| [`save`](#fiftyone.core.fields.HeatmapRangeField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.HeatmapRangeField.description) and [`info`](#fiftyone.core.fields.HeatmapRangeField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.HeatmapRangeField.set_auto_dereferencing)(value) |                                                                                                                                                                             |
| [`to_mongo`](#fiftyone.core.fields.HeatmapRangeField.to_mongo)(value[, use_db_field, fields])     | Convert a Python type to a MongoDB-compatible type.                                                                                                                         |
| [`to_python`](#fiftyone.core.fields.HeatmapRangeField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                         |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.HeatmapRangeField.auto_creation_counter)   |                                                                                                                          |
|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.HeatmapRangeField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.HeatmapRangeField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.HeatmapRangeField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.HeatmapRangeField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.HeatmapRangeField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.HeatmapRangeField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.HeatmapRangeField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.HeatmapRangeField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Make sure that a list of valid fields is being used.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.HeatmapRangeField.description) and [`info`](#fiftyone.core.fields.HeatmapRangeField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.DictField(field=None, description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `DictField`, [`Field`](#fiftyone.core.fields.Field)

A dictionary field that wraps a standard Python dictionary.

If this field is not set, its default value is `{}`.

* **Parameters:**
  * **field** (*None*) – an optional [`Field`](#fiftyone.core.fields.Field) instance describing the type
    of the values in the dict
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.DictField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                        |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`to_mongo`](#fiftyone.core.fields.DictField.to_mongo)(value[, use_db_field, fields])     | Convert a Python type to a MongoDB-compatible type.                                                                                                         |
| [`copy`](#fiftyone.core.fields.DictField.copy)()                                          | Returns a copy of the field.                                                                                                                                |
| [`error`](#fiftyone.core.fields.DictField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                    |
| [`lookup_member`](#fiftyone.core.fields.DictField.lookup_member)(member_name)             |                                                                                                                                                             |
| [`prepare_query_value`](#fiftyone.core.fields.DictField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                  |
| [`save`](#fiftyone.core.fields.DictField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.DictField.description) and [`info`](#fiftyone.core.fields.DictField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.DictField.set_auto_dereferencing)(value) |                                                                                                                                                             |
| [`to_python`](#fiftyone.core.fields.DictField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                         |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.DictField.auto_creation_counter)   |                                                                                                                          |
|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.DictField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.DictField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.DictField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.DictField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.DictField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.DictField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.DictField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.DictField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Make sure that a list of valid fields is being used.

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.DictField.description) and [`info`](#fiftyone.core.fields.DictField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.KeypointsField(field=None, description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: [`ListField`](#fiftyone.core.fields.ListField)

A list of `(x, y)` coordinate pairs.

If this field is not set, its default value is `[]`.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.KeypointsField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                                  |
|------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.KeypointsField.copy)()                                          | Returns a copy of the field.                                                                                                                                          |
| [`error`](#fiftyone.core.fields.KeypointsField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                              |
| [`lookup_member`](#fiftyone.core.fields.KeypointsField.lookup_member)(member_name)             |                                                                                                                                                                       |
| [`prepare_query_value`](#fiftyone.core.fields.KeypointsField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                            |
| [`save`](#fiftyone.core.fields.KeypointsField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.KeypointsField.description) and [`info`](#fiftyone.core.fields.KeypointsField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.KeypointsField.set_auto_dereferencing)(value) |                                                                                                                                                                       |
| [`to_mongo`](#fiftyone.core.fields.KeypointsField.to_mongo)(value[, use_db_field, fields])     | Convert a Python type to a MongoDB-compatible type.                                                                                                                   |
| [`to_python`](#fiftyone.core.fields.KeypointsField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                   |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.KeypointsField.auto_creation_counter)   |                                                                                                                          |
|-----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.KeypointsField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.KeypointsField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.KeypointsField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.KeypointsField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.KeypointsField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.KeypointsField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.KeypointsField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.KeypointsField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Make sure that a list of valid fields is being used.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.KeypointsField.description) and [`info`](#fiftyone.core.fields.KeypointsField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.PolylinePointsField(field=None, description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: [`ListField`](#fiftyone.core.fields.ListField)

A list of lists of `(x, y)` coordinate pairs.

If this field is not set, its default value is `[]`.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.PolylinePointsField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                                            |
|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.PolylinePointsField.copy)()                                          | Returns a copy of the field.                                                                                                                                                    |
| [`error`](#fiftyone.core.fields.PolylinePointsField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                        |
| [`lookup_member`](#fiftyone.core.fields.PolylinePointsField.lookup_member)(member_name)             |                                                                                                                                                                                 |
| [`prepare_query_value`](#fiftyone.core.fields.PolylinePointsField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                      |
| [`save`](#fiftyone.core.fields.PolylinePointsField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.PolylinePointsField.description) and [`info`](#fiftyone.core.fields.PolylinePointsField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.PolylinePointsField.set_auto_dereferencing)(value) |                                                                                                                                                                                 |
| [`to_mongo`](#fiftyone.core.fields.PolylinePointsField.to_mongo)(value[, use_db_field, fields])     | Convert a Python type to a MongoDB-compatible type.                                                                                                                             |
| [`to_python`](#fiftyone.core.fields.PolylinePointsField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                             |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.PolylinePointsField.auto_creation_counter)   |                                                                                                                          |
|----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.PolylinePointsField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.PolylinePointsField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.PolylinePointsField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.PolylinePointsField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.PolylinePointsField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.PolylinePointsField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.PolylinePointsField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.PolylinePointsField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Make sure that a list of valid fields is being used.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.PolylinePointsField.description) and [`info`](#fiftyone.core.fields.PolylinePointsField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.GeoPointField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `_GeoField`, `PointField`

A GeoJSON field storing a longitude and latitude coordinate point.

The data is stored as `[longitude, latitude]`.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.GeoPointField.validate)(value)                             | Perform validation on a value.                                                                                                                                      |
|-----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.GeoPointField.copy)()                                          | Returns a copy of the field.                                                                                                                                        |
| [`error`](#fiftyone.core.fields.GeoPointField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                            |
| [`prepare_query_value`](#fiftyone.core.fields.GeoPointField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                          |
| [`save`](#fiftyone.core.fields.GeoPointField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.GeoPointField.description) and [`info`](#fiftyone.core.fields.GeoPointField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.GeoPointField.set_auto_dereferencing)(value) |                                                                                                                                                                     |
| [`to_mongo`](#fiftyone.core.fields.GeoPointField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                 |
| [`to_python`](#fiftyone.core.fields.GeoPointField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                 |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.GeoPointField.auto_creation_counter)   |                                                                                                                          |
|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.GeoPointField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.GeoPointField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.GeoPointField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.GeoPointField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.GeoPointField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.GeoPointField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.GeoPointField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.GeoPointField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.GeoPointField.description) and [`info`](#fiftyone.core.fields.GeoPointField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.GeoLineStringField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `_GeoField`, `LineStringField`

A GeoJSON field storing a line of longitude and latitude coordinates.

The data is stored as follows:

```default
[[lon1, lat1], [lon2, lat2], ...]
```

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.GeoLineStringField.validate)(value)                             | Perform validation on a value.                                                                                                                                                |
|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.GeoLineStringField.copy)()                                          | Returns a copy of the field.                                                                                                                                                  |
| [`error`](#fiftyone.core.fields.GeoLineStringField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                      |
| [`prepare_query_value`](#fiftyone.core.fields.GeoLineStringField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                    |
| [`save`](#fiftyone.core.fields.GeoLineStringField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.GeoLineStringField.description) and [`info`](#fiftyone.core.fields.GeoLineStringField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.GeoLineStringField.set_auto_dereferencing)(value) |                                                                                                                                                                               |
| [`to_mongo`](#fiftyone.core.fields.GeoLineStringField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                           |
| [`to_python`](#fiftyone.core.fields.GeoLineStringField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                           |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.GeoLineStringField.auto_creation_counter)   |                                                                                                                          |
|---------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.GeoLineStringField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.GeoLineStringField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.GeoLineStringField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.GeoLineStringField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.GeoLineStringField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.GeoLineStringField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.GeoLineStringField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.GeoLineStringField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.GeoLineStringField.description) and [`info`](#fiftyone.core.fields.GeoLineStringField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.GeoPolygonField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `_GeoField`, `PolygonField`

A GeoJSON field storing a polygon of longitude and latitude coordinates.

The data is stored as follows:

```default
[
    [[lon1, lat1], [lon2, lat2], ...],
    [[lon1, lat1], [lon2, lat2], ...],
    ...
]
```

where the first element describes the boundary of the polygon and any
remaining entries describe holes.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.GeoPolygonField.validate)(value)                             | Perform validation on a value.                                                                                                                                          |
|-------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.GeoPolygonField.copy)()                                          | Returns a copy of the field.                                                                                                                                            |
| [`error`](#fiftyone.core.fields.GeoPolygonField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                |
| [`prepare_query_value`](#fiftyone.core.fields.GeoPolygonField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                              |
| [`save`](#fiftyone.core.fields.GeoPolygonField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.GeoPolygonField.description) and [`info`](#fiftyone.core.fields.GeoPolygonField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.GeoPolygonField.set_auto_dereferencing)(value) |                                                                                                                                                                         |
| [`to_mongo`](#fiftyone.core.fields.GeoPolygonField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                     |
| [`to_python`](#fiftyone.core.fields.GeoPolygonField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                     |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.GeoPolygonField.auto_creation_counter)   |                                                                                                                          |
|------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.GeoPolygonField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.GeoPolygonField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.GeoPolygonField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.GeoPolygonField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.GeoPolygonField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.GeoPolygonField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.GeoPolygonField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.GeoPolygonField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.GeoPolygonField.description) and [`info`](#fiftyone.core.fields.GeoPolygonField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.GeoMultiPointField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `_GeoField`, `MultiPointField`

A GeoJSON field storing a list of points.

The data is stored as follows:

```default
[[lon1, lat1], [lon2, lat2], ...]
```

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.GeoMultiPointField.validate)(value)                             | Perform validation on a value.                                                                                                                                                |
|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.GeoMultiPointField.copy)()                                          | Returns a copy of the field.                                                                                                                                                  |
| [`error`](#fiftyone.core.fields.GeoMultiPointField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                      |
| [`prepare_query_value`](#fiftyone.core.fields.GeoMultiPointField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                    |
| [`save`](#fiftyone.core.fields.GeoMultiPointField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.GeoMultiPointField.description) and [`info`](#fiftyone.core.fields.GeoMultiPointField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.GeoMultiPointField.set_auto_dereferencing)(value) |                                                                                                                                                                               |
| [`to_mongo`](#fiftyone.core.fields.GeoMultiPointField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                           |
| [`to_python`](#fiftyone.core.fields.GeoMultiPointField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                           |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.GeoMultiPointField.auto_creation_counter)   |                                                                                                                          |
|---------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.GeoMultiPointField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.GeoMultiPointField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.GeoMultiPointField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.GeoMultiPointField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.GeoMultiPointField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.GeoMultiPointField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.GeoMultiPointField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.GeoMultiPointField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.GeoMultiPointField.description) and [`info`](#fiftyone.core.fields.GeoMultiPointField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.GeoMultiLineStringField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `_GeoField`, `MultiLineStringField`

A GeoJSON field storing a list of lines.

The data is stored as follows:

```default
[
    [[lon1, lat1], [lon2, lat2], ...],
    [[lon1, lat1], [lon2, lat2], ...],
    ...
]
```

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.GeoMultiLineStringField.validate)(value)                             | Perform validation on a value.                                                                                                                                                          |
|---------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.GeoMultiLineStringField.copy)()                                          | Returns a copy of the field.                                                                                                                                                            |
| [`error`](#fiftyone.core.fields.GeoMultiLineStringField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                                |
| [`prepare_query_value`](#fiftyone.core.fields.GeoMultiLineStringField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                              |
| [`save`](#fiftyone.core.fields.GeoMultiLineStringField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.GeoMultiLineStringField.description) and [`info`](#fiftyone.core.fields.GeoMultiLineStringField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.GeoMultiLineStringField.set_auto_dereferencing)(value) |                                                                                                                                                                                         |
| [`to_mongo`](#fiftyone.core.fields.GeoMultiLineStringField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                                     |
| [`to_python`](#fiftyone.core.fields.GeoMultiLineStringField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                                     |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.GeoMultiLineStringField.auto_creation_counter)   |                                                                                                                          |
|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.GeoMultiLineStringField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.GeoMultiLineStringField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.GeoMultiLineStringField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.GeoMultiLineStringField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.GeoMultiLineStringField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.GeoMultiLineStringField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.GeoMultiLineStringField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.GeoMultiLineStringField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.GeoMultiLineStringField.description) and [`info`](#fiftyone.core.fields.GeoMultiLineStringField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.GeoMultiPolygonField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `_GeoField`, `MultiPolygonField`

A GeoJSON field storing a list of polygons.

The data is stored as follows:

```default
[
    [
        [[lon1, lat1], [lon2, lat2], ...],
        [[lon1, lat1], [lon2, lat2], ...],
        ...
    ],
    [
        [[lon1, lat1], [lon2, lat2], ...],
        [[lon1, lat1], [lon2, lat2], ...],
        ...
    ],
    ...
]
```

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.GeoMultiPolygonField.validate)(value)                             | Perform validation on a value.                                                                                                                                                    |
|------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.GeoMultiPolygonField.copy)()                                          | Returns a copy of the field.                                                                                                                                                      |
| [`error`](#fiftyone.core.fields.GeoMultiPolygonField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                          |
| [`prepare_query_value`](#fiftyone.core.fields.GeoMultiPolygonField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                        |
| [`save`](#fiftyone.core.fields.GeoMultiPolygonField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.GeoMultiPolygonField.description) and [`info`](#fiftyone.core.fields.GeoMultiPolygonField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.GeoMultiPolygonField.set_auto_dereferencing)(value) |                                                                                                                                                                                   |
| [`to_mongo`](#fiftyone.core.fields.GeoMultiPolygonField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                               |
| [`to_python`](#fiftyone.core.fields.GeoMultiPolygonField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                               |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.GeoMultiPolygonField.auto_creation_counter)   |                                                                                                                          |
|-----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.GeoMultiPolygonField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.GeoMultiPolygonField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.GeoMultiPolygonField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.GeoMultiPolygonField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.GeoMultiPolygonField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.GeoMultiPolygonField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.GeoMultiPolygonField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.GeoMultiPolygonField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.GeoMultiPolygonField.description) and [`info`](#fiftyone.core.fields.GeoMultiPolygonField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.VectorField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `BinaryField`, [`Field`](#fiftyone.core.fields.Field)

A one-dimensional array field.

[`VectorField`](#fiftyone.core.fields.VectorField) instances accept numeric lists, tuples, and 1D numpy
array values. The underlying data is serialized and stored in the database
as zlib-compressed bytes generated by `numpy.save` and always retrieved
as a numpy array.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`to_mongo`](#fiftyone.core.fields.VectorField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                             |
|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`to_python`](#fiftyone.core.fields.VectorField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                             |
| [`validate`](#fiftyone.core.fields.VectorField.validate)(value)                             | Perform validation on a value.                                                                                                                                  |
| [`copy`](#fiftyone.core.fields.VectorField.copy)()                                          | Returns a copy of the field.                                                                                                                                    |
| [`error`](#fiftyone.core.fields.VectorField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                        |
| [`prepare_query_value`](#fiftyone.core.fields.VectorField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                      |
| [`save`](#fiftyone.core.fields.VectorField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.VectorField.description) and [`info`](#fiftyone.core.fields.VectorField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.VectorField.set_auto_dereferencing)(value) |                                                                                                                                                                 |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.VectorField.auto_creation_counter)   |                                                                                                                          |
|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.VectorField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.VectorField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.VectorField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.VectorField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.VectorField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.VectorField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.VectorField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.VectorField.read_only)                           | Whether the field is read-only.                                                                                          |

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.VectorField.description) and [`info`](#fiftyone.core.fields.VectorField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

### *class* fiftyone.core.fields.ArrayField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `BinaryField`, [`Field`](#fiftyone.core.fields.Field)

An n-dimensional array field.

[`ArrayField`](#fiftyone.core.fields.ArrayField) instances accept numpy array values. The underlying
data is serialized and stored in the database as zlib-compressed bytes
generated by `numpy.save` and always retrieved as a numpy array.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`to_mongo`](#fiftyone.core.fields.ArrayField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                           |
|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`to_python`](#fiftyone.core.fields.ArrayField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                           |
| [`validate`](#fiftyone.core.fields.ArrayField.validate)(value)                             | Perform validation on a value.                                                                                                                                |
| [`copy`](#fiftyone.core.fields.ArrayField.copy)()                                          | Returns a copy of the field.                                                                                                                                  |
| [`error`](#fiftyone.core.fields.ArrayField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                      |
| [`prepare_query_value`](#fiftyone.core.fields.ArrayField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                    |
| [`save`](#fiftyone.core.fields.ArrayField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.ArrayField.description) and [`info`](#fiftyone.core.fields.ArrayField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.ArrayField.set_auto_dereferencing)(value) |                                                                                                                                                               |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.ArrayField.auto_creation_counter)   |                                                                                                                          |
|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.ArrayField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.ArrayField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.ArrayField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.ArrayField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.ArrayField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.ArrayField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.ArrayField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.ArrayField.read_only)                           | Whether the field is read-only.                                                                                          |

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.ArrayField.description) and [`info`](#fiftyone.core.fields.ArrayField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

### *class* fiftyone.core.fields.FrameNumberField(description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: [`IntField`](#fiftyone.core.fields.IntField)

A video frame number field.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.FrameNumberField.validate)(value)                             | Perform validation on a value.                                                                                                                                            |
|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.FrameNumberField.copy)()                                          | Returns a copy of the field.                                                                                                                                              |
| [`error`](#fiftyone.core.fields.FrameNumberField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                  |
| [`prepare_query_value`](#fiftyone.core.fields.FrameNumberField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                |
| [`save`](#fiftyone.core.fields.FrameNumberField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.FrameNumberField.description) and [`info`](#fiftyone.core.fields.FrameNumberField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.FrameNumberField.set_auto_dereferencing)(value) |                                                                                                                                                                           |
| [`to_mongo`](#fiftyone.core.fields.FrameNumberField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                       |
| [`to_python`](#fiftyone.core.fields.FrameNumberField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                       |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.FrameNumberField.auto_creation_counter)   |                                                                                                                          |
|-------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.FrameNumberField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.FrameNumberField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.FrameNumberField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.FrameNumberField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.FrameNumberField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.FrameNumberField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.FrameNumberField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.FrameNumberField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Perform validation on a value.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.FrameNumberField.description) and [`info`](#fiftyone.core.fields.FrameNumberField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.FrameSupportField(\*\*kwargs)

Bases: [`ListField`](#fiftyone.core.fields.ListField)

A `[first, last]` frame support in a video.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`validate`](#fiftyone.core.fields.FrameSupportField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                                        |
|---------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`copy`](#fiftyone.core.fields.FrameSupportField.copy)()                                          | Returns a copy of the field.                                                                                                                                                |
| [`error`](#fiftyone.core.fields.FrameSupportField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                    |
| [`lookup_member`](#fiftyone.core.fields.FrameSupportField.lookup_member)(member_name)             |                                                                                                                                                                             |
| [`prepare_query_value`](#fiftyone.core.fields.FrameSupportField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                  |
| [`save`](#fiftyone.core.fields.FrameSupportField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.FrameSupportField.description) and [`info`](#fiftyone.core.fields.FrameSupportField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.FrameSupportField.set_auto_dereferencing)(value) |                                                                                                                                                                             |
| [`to_mongo`](#fiftyone.core.fields.FrameSupportField.to_mongo)(value[, use_db_field, fields])     | Convert a Python type to a MongoDB-compatible type.                                                                                                                         |
| [`to_python`](#fiftyone.core.fields.FrameSupportField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                         |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.FrameSupportField.auto_creation_counter)   |                                                                                                                          |
|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.FrameSupportField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.FrameSupportField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.FrameSupportField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.FrameSupportField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.FrameSupportField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.FrameSupportField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.FrameSupportField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.FrameSupportField.read_only)                           | Whether the field is read-only.                                                                                          |

#### validate(value)

Make sure that a list of valid fields is being used.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.FrameSupportField.description) and [`info`](#fiftyone.core.fields.FrameSupportField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.ClassesField(\*\*kwargs)

Bases: [`ListField`](#fiftyone.core.fields.ListField)

A [`ListField`](#fiftyone.core.fields.ListField) that stores class label strings.

If this field is not set, its default value is `[]`.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.ClassesField.auto_creation_counter)   |                                                                                                                          |
|---------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.ClassesField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.ClassesField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.ClassesField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.ClassesField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.ClassesField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.ClassesField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.ClassesField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.ClassesField.read_only)                           | Whether the field is read-only.                                                                                          |

**Methods:**

| [`copy`](#fiftyone.core.fields.ClassesField.copy)()                                          | Returns a copy of the field.                                                                                                                                      |
|----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`error`](#fiftyone.core.fields.ClassesField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                          |
| [`lookup_member`](#fiftyone.core.fields.ClassesField.lookup_member)(member_name)             |                                                                                                                                                                   |
| [`prepare_query_value`](#fiftyone.core.fields.ClassesField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                        |
| [`save`](#fiftyone.core.fields.ClassesField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.ClassesField.description) and [`info`](#fiftyone.core.fields.ClassesField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.ClassesField.set_auto_dereferencing)(value) |                                                                                                                                                                   |
| [`to_mongo`](#fiftyone.core.fields.ClassesField.to_mongo)(value[, use_db_field, fields])     | Convert a Python type to a MongoDB-compatible type.                                                                                                               |
| [`to_python`](#fiftyone.core.fields.ClassesField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                               |
| [`validate`](#fiftyone.core.fields.ClassesField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                              |

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.ClassesField.description) and [`info`](#fiftyone.core.fields.ClassesField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Make sure that a list of valid fields is being used.

### *class* fiftyone.core.fields.MaskTargetsField(\*\*kwargs)

Bases: [`DictField`](#fiftyone.core.fields.DictField)

A [`DictField`](#fiftyone.core.fields.DictField) that stores mapping between integer keys or RGB
string hex keys and string targets.

If this field is not set, its default value is `{}`.

* **Parameters:**
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`to_mongo`](#fiftyone.core.fields.MaskTargetsField.to_mongo)(value)                             | Convert a Python type to a MongoDB-compatible type.                                                                                                                       |
|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`to_python`](#fiftyone.core.fields.MaskTargetsField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                       |
| [`validate`](#fiftyone.core.fields.MaskTargetsField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                                      |
| [`copy`](#fiftyone.core.fields.MaskTargetsField.copy)()                                          | Returns a copy of the field.                                                                                                                                              |
| [`error`](#fiftyone.core.fields.MaskTargetsField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                  |
| [`lookup_member`](#fiftyone.core.fields.MaskTargetsField.lookup_member)(member_name)             |                                                                                                                                                                           |
| [`prepare_query_value`](#fiftyone.core.fields.MaskTargetsField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                |
| [`save`](#fiftyone.core.fields.MaskTargetsField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.MaskTargetsField.description) and [`info`](#fiftyone.core.fields.MaskTargetsField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.MaskTargetsField.set_auto_dereferencing)(value) |                                                                                                                                                                           |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.MaskTargetsField.auto_creation_counter)   |                                                                                                                          |
|-------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.MaskTargetsField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.MaskTargetsField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.MaskTargetsField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.MaskTargetsField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.MaskTargetsField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.MaskTargetsField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.MaskTargetsField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.MaskTargetsField.read_only)                           | Whether the field is read-only.                                                                                          |

#### to_mongo(value)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Make sure that a list of valid fields is being used.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.MaskTargetsField.description) and [`info`](#fiftyone.core.fields.MaskTargetsField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

### fiftyone.core.fields.is_integer_mask_targets(mask_targets)

Determines whether the provided mask targets use integer keys.

* **Parameters:**
  **mask_targets** – a mask targets dict
* **Returns:**
  True/False

### fiftyone.core.fields.is_integer_target(target)

Determines whether the provided target is an integer.

* **Parameters:**
  **target** – an integer or RGB hex string
* **Returns:**
  True/False

### fiftyone.core.fields.is_rgb_mask_targets(mask_targets)

Determines whether the provided mask targets use RGB hex string keys.

* **Parameters:**
  **mask_targets** – a mask targets dict
* **Returns:**
  True/False

### fiftyone.core.fields.is_rgb_target(target)

Determines whether the provided target is an RGB string.

* **Parameters:**
  **target** – an integer or RGB hex string
* **Returns:**
  True/False

### fiftyone.core.fields.hex_to_int(hex_str)

Converts a hex string like `"#ff6d04"` to a hex integer.

* **Parameters:**
  **hex_str** – a hex string
* **Returns:**
  an integer

### fiftyone.core.fields.int_to_hex(value)

Converts an RRGGBB integer value to hex string like `"#ff6d04"`.

* **Parameters:**
  **value** – an integer value
* **Returns:**
  a hex string

### fiftyone.core.fields.rgb_array_to_int(mask)

Converts an RGB mask array to a 2D hex integer mask array.

* **Parameters:**
  **mask** – an RGB mask array
* **Returns:**
  a 2D integer mask array

### fiftyone.core.fields.int_array_to_rgb(mask)

Converts a 2D hex integer mask array to an RGB mask array.

* **Parameters:**
  **mask** – a 2D integer mask array
* **Returns:**
  an RGB mask array

### *class* fiftyone.core.fields.EmbeddedDocumentField(document_type, description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `EmbeddedDocumentField`, [`Field`](#fiftyone.core.fields.Field)

A field that stores instances of a given type of
[`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument) object.

* **Parameters:**
  * **document_type** – the [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument) type
    stored in this field
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Methods:**

| [`has_field`](#fiftyone.core.fields.EmbeddedDocumentField.has_field)(path)                                          | Determines whether this field has the given embedded field.                                                                                                                         |
|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`get_field`](#fiftyone.core.fields.EmbeddedDocumentField.get_field)(path)                                          | Returns the field for the provided path, or `None`.                                                                                                                                 |
| [`get_field_schema`](#fiftyone.core.fields.EmbeddedDocumentField.get_field_schema)([ftype, embedded_doc_type, ...]) | Returns a schema dictionary describing the fields of the embedded document field.                                                                                                   |
| [`validate`](#fiftyone.core.fields.EmbeddedDocumentField.validate)(value, \*\*kwargs)                               | Make sure that the document instance is an instance of the EmbeddedDocument subclass provided when the document was defined.                                                        |
| [`copy`](#fiftyone.core.fields.EmbeddedDocumentField.copy)()                                                        | Returns a copy of the field.                                                                                                                                                        |
| [`error`](#fiftyone.core.fields.EmbeddedDocumentField.error)([message, errors, field_name])                         | Raise a ValidationError.                                                                                                                                                            |
| [`lookup_member`](#fiftyone.core.fields.EmbeddedDocumentField.lookup_member)(member_name)                           |                                                                                                                                                                                     |
| [`prepare_query_value`](#fiftyone.core.fields.EmbeddedDocumentField.prepare_query_value)(op, value)                 | Prepare a value that is being used in a query for PyMongo.                                                                                                                          |
| [`save`](#fiftyone.core.fields.EmbeddedDocumentField.save)([_enforce_read_only])                                    | Saves any edits to this field's [`description`](#fiftyone.core.fields.EmbeddedDocumentField.description) and [`info`](#fiftyone.core.fields.EmbeddedDocumentField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.EmbeddedDocumentField.set_auto_dereferencing)(value)               |                                                                                                                                                                                     |
| [`to_mongo`](#fiftyone.core.fields.EmbeddedDocumentField.to_mongo)(value[, use_db_field, fields])                   | Convert a Python type to a MongoDB-compatible type.                                                                                                                                 |
| [`to_python`](#fiftyone.core.fields.EmbeddedDocumentField.to_python)(value)                                         | Convert a MongoDB-compatible type to a Python type.                                                                                                                                 |

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.EmbeddedDocumentField.auto_creation_counter)   |                                                                                                                          |
|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.EmbeddedDocumentField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.EmbeddedDocumentField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.EmbeddedDocumentField.description)                       | A user-editable description of the field.                                                                                |
| [`document_type`](#fiftyone.core.fields.EmbeddedDocumentField.document_type)                   |                                                                                                                          |
| [`info`](#fiftyone.core.fields.EmbeddedDocumentField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.EmbeddedDocumentField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.EmbeddedDocumentField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.EmbeddedDocumentField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.EmbeddedDocumentField.read_only)                           | Whether the field is read-only.                                                                                          |

#### has_field(path)

Determines whether this field has the given embedded field.

* **Parameters:**
  **path** – the field name or `embedded.field.name`
* **Returns:**
  True/False

#### get_field(path)

Returns the field for the provided path, or `None`.

* **Parameters:**
  **path** – a field name or `embedded.field.name`
* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field) instance or `None`

#### get_field_schema(ftype=None, embedded_doc_type=None, subfield=None, read_only=None, include_private=False, flat=False, unwind=True, mode=None)

Returns a schema dictionary describing the fields of the embedded
document field.

* **Parameters:**
  * **ftype** (*None*) – an optional field type or iterable of types to which
    to restrict the returned schema. Must be subclass(es) of
    [`Field`](#fiftyone.core.fields.Field)
  * **embedded_doc_type** (*None*) – an optional embedded document type or
    iterable of types to which to restrict the returned schema.
    Must be subclass(es) of
    [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument)
  * **subfield** (*None*) – an optional subfield type or iterable of subfield
    types to which to restrict the returned schema. Must be
    subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **read_only** (*None*) – whether to restrict to (True) or exclude (False)
    read-only fields. By default, all fields are included
  * **include_private** (*False*) – whether to include fields that start with
    `_` in the returned schema
  * **flat** (*False*) – whether to return a flattened schema where all
    embedded document fields are included as top-level keys
  * **unwind** (*True*) – whether to traverse into list fields. Only
    applicable when `flat=True`
  * **mode** (*None*) – whether to apply the above constraints before and/or
    after flattening the schema. Only applicable when `flat=True`.
    Supported values are `("before", "after", "both")`. The
    default is `"after"`
* **Returns:**
  a dict mapping field names to [`Field`](#fiftyone.core.fields.Field) instances

#### validate(value, \*\*kwargs)

Make sure that the document instance is an instance of the
EmbeddedDocument subclass provided when the document was defined.

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### *property* document_type

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.EmbeddedDocumentField.description) and [`info`](#fiftyone.core.fields.EmbeddedDocumentField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

### *class* fiftyone.core.fields.EmbeddedDocumentListField(document_type, description=None, info=None, read_only=False, created_at=None, \*\*kwargs)

Bases: `EmbeddedDocumentListField`, [`Field`](#fiftyone.core.fields.Field)

A field that stores a list of a given type of
[`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument) objects.

* **Parameters:**
  * **document_type** – the [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument) type
    stored in this field
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.EmbeddedDocumentListField.auto_creation_counter)   |                                                                                                                          |
|----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.EmbeddedDocumentListField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.EmbeddedDocumentListField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.EmbeddedDocumentListField.description)                       | A user-editable description of the field.                                                                                |
| [`info`](#fiftyone.core.fields.EmbeddedDocumentListField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.EmbeddedDocumentListField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.EmbeddedDocumentListField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.EmbeddedDocumentListField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.EmbeddedDocumentListField.read_only)                           | Whether the field is read-only.                                                                                          |

**Methods:**

| [`copy`](#fiftyone.core.fields.EmbeddedDocumentListField.copy)()                                          | Returns a copy of the field.                                                                                                                                                                |
|-----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`error`](#fiftyone.core.fields.EmbeddedDocumentListField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                                                    |
| [`lookup_member`](#fiftyone.core.fields.EmbeddedDocumentListField.lookup_member)(member_name)             |                                                                                                                                                                                             |
| [`prepare_query_value`](#fiftyone.core.fields.EmbeddedDocumentListField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                                                  |
| [`save`](#fiftyone.core.fields.EmbeddedDocumentListField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.EmbeddedDocumentListField.description) and [`info`](#fiftyone.core.fields.EmbeddedDocumentListField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.EmbeddedDocumentListField.set_auto_dereferencing)(value) |                                                                                                                                                                                             |
| [`to_mongo`](#fiftyone.core.fields.EmbeddedDocumentListField.to_mongo)(value[, use_db_field, fields])     | Convert a Python type to a MongoDB-compatible type.                                                                                                                                         |
| [`to_python`](#fiftyone.core.fields.EmbeddedDocumentListField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                                         |
| [`validate`](#fiftyone.core.fields.EmbeddedDocumentListField.validate)(value)                             | Make sure that a list of valid fields is being used.                                                                                                                                        |

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.EmbeddedDocumentListField.description) and [`info`](#fiftyone.core.fields.EmbeddedDocumentListField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Make sure that a list of valid fields is being used.

### *class* fiftyone.core.fields.ReferenceField(document_type, dbref=False, reverse_delete_rule=0, \*\*kwargs)

Bases: `ReferenceField`, [`Field`](#fiftyone.core.fields.Field)

A reference field.

* **Parameters:**
  **document_type** – the [`fiftyone.core.odm.Document`](fiftyone.core.odm.md#fiftyone.core.odm.Document) type stored in
  this field

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.ReferenceField.auto_creation_counter)   |                                                                                                                          |
|-----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.ReferenceField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.ReferenceField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.ReferenceField.description)                       | A user-editable description of the field.                                                                                |
| [`document_type`](#fiftyone.core.fields.ReferenceField.document_type)                   |                                                                                                                          |
| [`info`](#fiftyone.core.fields.ReferenceField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.ReferenceField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.ReferenceField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.ReferenceField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.ReferenceField.read_only)                           | Whether the field is read-only.                                                                                          |

**Methods:**

| [`copy`](#fiftyone.core.fields.ReferenceField.copy)()                                          | Returns a copy of the field.                                                                                                                                          |
|------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`error`](#fiftyone.core.fields.ReferenceField.error)([message, errors, field_name])           | Raise a ValidationError.                                                                                                                                              |
| [`lookup_member`](#fiftyone.core.fields.ReferenceField.lookup_member)(member_name)             |                                                                                                                                                                       |
| [`prepare_query_value`](#fiftyone.core.fields.ReferenceField.prepare_query_value)(op, value)   | Prepare a value that is being used in a query for PyMongo.                                                                                                            |
| [`save`](#fiftyone.core.fields.ReferenceField.save)([_enforce_read_only])                      | Saves any edits to this field's [`description`](#fiftyone.core.fields.ReferenceField.description) and [`info`](#fiftyone.core.fields.ReferenceField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.ReferenceField.set_auto_dereferencing)(value) |                                                                                                                                                                       |
| [`to_mongo`](#fiftyone.core.fields.ReferenceField.to_mongo)(document)                          | Convert a Python type to a MongoDB-compatible type.                                                                                                                   |
| [`to_python`](#fiftyone.core.fields.ReferenceField.to_python)(value)                           | Convert a MongoDB-compatible type to a Python type.                                                                                                                   |
| [`validate`](#fiftyone.core.fields.ReferenceField.validate)(value)                             | Perform validation on a value.                                                                                                                                        |

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### *property* document_type

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.ReferenceField.description) and [`info`](#fiftyone.core.fields.ReferenceField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(document)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value)

Perform validation on a value.

### *class* fiftyone.core.fields.MediaReferenceField(document_type=None, \*\*kwargs)

Bases: [`EmbeddedDocumentField`](#fiftyone.core.fields.EmbeddedDocumentField)

A reference-backed sample’s media identity: which media source its
media comes from, and where in that source it is.

The source is recorded once on the owning dataset; this field holds only
what is this sample’s alone.

* **Parameters:**
  * **document_type** (*None*) – the
    [`fiftyone.core.media_reference.MediaReference`](fiftyone.core.media_reference.md#fiftyone.core.media_reference.MediaReference) subclass
    stored in this field
  * **description** (*None*) – an optional description
  * **info** (*None*) – an optional info dict
  * **read_only** (*False*) – whether the field is read-only
  * **created_at** (*None*) – the datetime the field was created

**Attributes:**

| [`auto_creation_counter`](#fiftyone.core.fields.MediaReferenceField.auto_creation_counter)   |                                                                                                                          |
|----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [`created_at`](#fiftyone.core.fields.MediaReferenceField.created_at)                         | The datetime the field was created.                                                                                      |
| [`creation_counter`](#fiftyone.core.fields.MediaReferenceField.creation_counter)             |                                                                                                                          |
| [`description`](#fiftyone.core.fields.MediaReferenceField.description)                       | A user-editable description of the field.                                                                                |
| [`document_type`](#fiftyone.core.fields.MediaReferenceField.document_type)                   |                                                                                                                          |
| [`info`](#fiftyone.core.fields.MediaReferenceField.info)                                     | A user-editable dictionary of information about the field.                                                               |
| [`name`](#fiftyone.core.fields.MediaReferenceField.name)                                     |                                                                                                                          |
| [`owner_document`](#fiftyone.core.fields.MediaReferenceField.owner_document)                 |                                                                                                                          |
| [`path`](#fiftyone.core.fields.MediaReferenceField.path)                                     | The fully-qualified path of this field in the dataset's schema, or `None` if the field is not associated with a dataset. |
| [`read_only`](#fiftyone.core.fields.MediaReferenceField.read_only)                           | Whether the field is read-only.                                                                                          |

**Methods:**

| [`copy`](#fiftyone.core.fields.MediaReferenceField.copy)()                                                        | Returns a copy of the field.                                                                                                                                                    |
|-------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`error`](#fiftyone.core.fields.MediaReferenceField.error)([message, errors, field_name])                         | Raise a ValidationError.                                                                                                                                                        |
| [`get_field`](#fiftyone.core.fields.MediaReferenceField.get_field)(path)                                          | Returns the field for the provided path, or `None`.                                                                                                                             |
| [`get_field_schema`](#fiftyone.core.fields.MediaReferenceField.get_field_schema)([ftype, embedded_doc_type, ...]) | Returns a schema dictionary describing the fields of the embedded document field.                                                                                               |
| [`has_field`](#fiftyone.core.fields.MediaReferenceField.has_field)(path)                                          | Determines whether this field has the given embedded field.                                                                                                                     |
| [`lookup_member`](#fiftyone.core.fields.MediaReferenceField.lookup_member)(member_name)                           |                                                                                                                                                                                 |
| [`prepare_query_value`](#fiftyone.core.fields.MediaReferenceField.prepare_query_value)(op, value)                 | Prepare a value that is being used in a query for PyMongo.                                                                                                                      |
| [`save`](#fiftyone.core.fields.MediaReferenceField.save)([_enforce_read_only])                                    | Saves any edits to this field's [`description`](#fiftyone.core.fields.MediaReferenceField.description) and [`info`](#fiftyone.core.fields.MediaReferenceField.info) attributes. |
| [`set_auto_dereferencing`](#fiftyone.core.fields.MediaReferenceField.set_auto_dereferencing)(value)               |                                                                                                                                                                                 |
| [`to_mongo`](#fiftyone.core.fields.MediaReferenceField.to_mongo)(value[, use_db_field, fields])                   | Convert a Python type to a MongoDB-compatible type.                                                                                                                             |
| [`to_python`](#fiftyone.core.fields.MediaReferenceField.to_python)(value)                                         | Convert a MongoDB-compatible type to a Python type.                                                                                                                             |
| [`validate`](#fiftyone.core.fields.MediaReferenceField.validate)(value, \*\*kwargs)                               | Make sure that the document instance is an instance of the EmbeddedDocument subclass provided when the document was defined.                                                    |

#### auto_creation_counter *= -12*

#### copy()

Returns a copy of the field.

The returned copy is not associated with a dataset.

* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field)

#### *property* created_at

The datetime the field was created.

#### creation_counter *= 341*

#### *property* description

A user-editable description of the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
```

#### *property* document_type

#### error(message='', errors=None, field_name=None)

Raise a ValidationError.

#### get_field(path)

Returns the field for the provided path, or `None`.

* **Parameters:**
  **path** – a field name or `embedded.field.name`
* **Returns:**
  a [`Field`](#fiftyone.core.fields.Field) instance or `None`

#### get_field_schema(ftype=None, embedded_doc_type=None, subfield=None, read_only=None, include_private=False, flat=False, unwind=True, mode=None)

Returns a schema dictionary describing the fields of the embedded
document field.

* **Parameters:**
  * **ftype** (*None*) – an optional field type or iterable of types to which
    to restrict the returned schema. Must be subclass(es) of
    [`Field`](#fiftyone.core.fields.Field)
  * **embedded_doc_type** (*None*) – an optional embedded document type or
    iterable of types to which to restrict the returned schema.
    Must be subclass(es) of
    [`fiftyone.core.odm.BaseEmbeddedDocument`](fiftyone.core.odm.md#fiftyone.core.odm.BaseEmbeddedDocument)
  * **subfield** (*None*) – an optional subfield type or iterable of subfield
    types to which to restrict the returned schema. Must be
    subclass(es) of [`Field`](#fiftyone.core.fields.Field)
  * **read_only** (*None*) – whether to restrict to (True) or exclude (False)
    read-only fields. By default, all fields are included
  * **include_private** (*False*) – whether to include fields that start with
    `_` in the returned schema
  * **flat** (*False*) – whether to return a flattened schema where all
    embedded document fields are included as top-level keys
  * **unwind** (*True*) – whether to traverse into list fields. Only
    applicable when `flat=True`
  * **mode** (*None*) – whether to apply the above constraints before and/or
    after flattening the schema. Only applicable when `flat=True`.
    Supported values are `("before", "after", "both")`. The
    default is `"after"`
* **Returns:**
  a dict mapping field names to [`Field`](#fiftyone.core.fields.Field) instances

#### has_field(path)

Determines whether this field has the given embedded field.

* **Parameters:**
  **path** – the field name or `embedded.field.name`
* **Returns:**
  True/False

#### *property* info

A user-editable dictionary of information about the field.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.info)  # {'url': 'https://fiftyone.ai'}
```

#### lookup_member(member_name)

#### name *= None*

#### *property* owner_document

#### *property* path

The fully-qualified path of this field in the dataset’s schema, or
`None` if the field is not associated with a dataset.

#### prepare_query_value(op, value)

Prepare a value that is being used in a query for PyMongo.

#### *property* read_only

Whether the field is read-only.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

field = dataset.get_field("uniqueness")
field.read_only = True
field.save()
```

#### save(\_enforce_read_only=True)

Saves any edits to this field’s [`description`](#fiftyone.core.fields.MediaReferenceField.description) and [`info`](#fiftyone.core.fields.MediaReferenceField.info)
attributes.

Examples:

```default
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
dataset.add_dynamic_sample_fields()

field = dataset.get_field("ground_truth")
field.description = "Ground truth annotations"
field.info = {"url": "https://fiftyone.ai"}
field.save()

field = dataset.get_field("ground_truth.detections.area")
field.description = "Area of the box, in pixels^2"
field.info = {"url": "https://fiftyone.ai"}
field.save()

dataset.reload()

field = dataset.get_field("ground_truth")
print(field.description)  # Ground truth annotations
print(field.info)  # {'url': 'https://fiftyone.ai'}

field = dataset.get_field("ground_truth.detections.area")
print(field.description)  # 'Area of the box, in pixels^2'
field.info = {"url": "https://fiftyone.ai"}
```

#### set_auto_dereferencing(value)

#### to_mongo(value, use_db_field=True, fields=None)

Convert a Python type to a MongoDB-compatible type.

#### to_python(value)

Convert a MongoDB-compatible type to a Python type.

#### validate(value, \*\*kwargs)

Make sure that the document instance is an instance of the
EmbeddedDocument subclass provided when the document was defined.
