fiftyone.core.odm.mixins¶
Mixins and helpers for dataset backing documents.
Classes:
Mixin interface for |
|
Mixin for |
Functions:
|
Gets the default fields present on all instances of the given |
-
fiftyone.core.odm.mixins.
get_default_fields
(cls, include_private=False, use_db_fields=False)¶ Gets the default fields present on all instances of the given
DatasetMixin
class.- Parameters
cls – the
DatasetMixin
classinclude_private (False) – whether to include fields starting with
_
use_db_fields (False) – whether to return database fields rather than user-facing fields, when applicable
- Returns
a tuple of field names
-
class
fiftyone.core.odm.mixins.
DatasetMixin
¶ Bases:
object
Mixin interface for
fiftyone.core.odm.document.Document
subclasses that are backed by a dataset.Methods:
add_field
(path, ftype[, embedded_doc_type, …])Adds a new field or embedded field to the document, if necessary.
add_implied_field
(path, value[, …])Adds the field or embedded field to the document, if necessary, inferring the field type from the provided value.
clear_field
(field_name)get_field_schema
([ftype, embedded_doc_type, …])Returns a schema dictionary describing the fields of this document.
merge_field_schema
(schema[, expand_schema, …])Merges the field schema into this document.
set_field
(field_name, value[, create, …])Attributes:
-
property
collection_name
¶
-
property
field_names
¶
-
set_field
(field_name, value, create=True, validate=True, dynamic=False)¶
-
clear_field
(field_name)¶
-
classmethod
get_field_schema
(ftype=None, embedded_doc_type=None, include_private=False)¶ Returns a schema dictionary describing the fields of this document.
If the document belongs to a dataset, the schema will apply to all documents in the collection.
- Parameters
ftype (None) – an optional field type or iterable of field types to which to restrict the returned schema. Must be subclass(es) of
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
include_private (False) – whether to include fields that start with
_
in the returned schema
- Returns
a dictionary mapping field names to field types
-
classmethod
merge_field_schema
(schema, expand_schema=True, recursive=True, validate=True)¶ Merges the field schema into this document.
- Parameters
schema – a dictionary mapping field names or
embedded.field.names
tofiftyone.core.fields.Field
instancesexpand_schema (True) – whether to add new fields to the schema (True) or simply validate that fields already exist with consistent types (False)
recursive (True) – whether to recursively merge embedded document fields
validate (True) – whether to validate the field against an existing field at the same path
- Returns
True/False whether any new fields were added
- Raises
ValueError – if a field in the schema is not compliant with an existing field of the same name or a new field is found but
expand_schema == False
-
classmethod
add_field
(path, ftype, embedded_doc_type=None, subfield=None, fields=None, description=None, info=None, expand_schema=True, recursive=True, validate=True, **kwargs)¶ Adds a new field or embedded field to the document, if necessary.
- Parameters
path – the field name or
embedded.field.name
ftype – the field type to create. Must be a subclass of
fiftyone.core.fields.Field
embedded_doc_type (None) – the
fiftyone.core.odm.BaseEmbeddedDocument
type of the field. Only applicable whenftype
isfiftyone.core.fields.EmbeddedDocumentField
subfield (None) – the
fiftyone.core.fields.Field
type of the contained field. Only applicable whenftype
isfiftyone.core.fields.ListField
orfiftyone.core.fields.DictField
fields (None) – a list of
fiftyone.core.fields.Field
instances defining embedded document attributes. Only applicable whenftype
isfiftyone.core.fields.EmbeddedDocumentField
description (None) – an optional description
info (None) – an optional info dict
expand_schema (True) – whether to add new fields to the schema (True) or simply validate that the field already exists with a consistent type (False)
recursive (True) – whether to recursively add embedded document fields
validate (True) – whether to validate the field against an existing field at the same path
- Returns
True/False whether one or more fields or embedded fields were added to the document or its children
- Raises
ValueError – if a field in the schema is not compliant with an existing field of the same name
-
classmethod
add_implied_field
(path, value, expand_schema=True, dynamic=False, recursive=True, validate=True)¶ Adds the field or embedded field to the document, if necessary, inferring the field type from the provided value.
- Parameters
path – the field name or
embedded.field.name
value – the field value
expand_schema (True) – whether to add new fields to the schema (True) or simply validate that the field already exists with a consistent type (False)
dynamic (False) – whether to declare dynamic embedded document fields
recursive (True) – whether to recursively add embedded document fields
validate (True) – whether to validate the field against an existing field at the same path
- Returns
True/False whether one or more fields or embedded fields were added to the document or its children
- Raises
ValueError – if a field in the schema is not compliant with an existing field of the same name
-
property
-
class
fiftyone.core.odm.mixins.
NoDatasetMixin
¶ Bases:
object
Mixin for
fiftyone.core.odm.document.SerializableDocument
subtypes that are not backed by a dataset.Methods:
clear_field
(field_name)delete
()from_dict
(d[, extended])get_field
(field_name)has_field
(field_name)reload
()save
()set_field
(field_name, value[, create, …])to_dict
([extended])Attributes:
-
property
field_names
¶
-
property
in_db
¶
-
has_field
(field_name)¶
-
get_field
(field_name)¶
-
set_field
(field_name, value, create=True, validate=True, dynamic=False)¶
-
clear_field
(field_name)¶
-
to_dict
(extended=False)¶
-
classmethod
from_dict
(d, extended=False)¶
-
save
()¶
-
reload
()¶
-
delete
()¶
-
property