class documentation

Selects the samples in a group collection from the given slice(s).

The returned view is a flattened non-grouped view containing only the slice(s) of interest.

Note

This stage performs a $lookup that pulls the requested slice(s) for each sample in the input collection from the source dataset. As a result, this stage always emits unfiltered samples.

Examples:

import fiftyone as fo

dataset = fo.Dataset()
dataset.add_group_field("group", default="ego")

group1 = fo.Group()
group2 = fo.Group()

dataset.add_samples(
    [
        fo.Sample(
            filepath="/path/to/left-image1.jpg",
            group=group1.element("left"),
        ),
        fo.Sample(
            filepath="/path/to/video1.mp4",
            group=group1.element("ego"),
        ),
        fo.Sample(
            filepath="/path/to/right-image1.jpg",
            group=group1.element("right"),
        ),
        fo.Sample(
            filepath="/path/to/left-image2.jpg",
            group=group2.element("left"),
        ),
        fo.Sample(
            filepath="/path/to/video2.mp4",
            group=group2.element("ego"),
        ),
        fo.Sample(
            filepath="/path/to/right-image2.jpg",
            group=group2.element("right"),
        ),
    ]
)

#
# Retrieve the samples from the "ego" group slice
#

stage = fo.SelectGroupSlices("ego")
view = dataset.add_stage(stage)

#
# Retrieve the samples from the "left" or "right" group slices
#

stage = fo.SelectGroupSlices(["left", "right"])
view = dataset.add_stage(stage)

#
# Retrieve all image samples
#

stage = fo.SelectGroupSlices(media_type="image")
view = dataset.add_stage(stage)
Parameters
slicesa group slice or iterable of group slices to select. If neither argument is provided, a flattened list of all samples is returned
media_typea media type whose slice(s) to select
Method __init__ Undocumented
Method get_media_type Returns the media type outputted by this stage when applied to the given collection, if and only if it is different from the input type.
Method to_mongo Returns the MongoDB aggregation pipeline for the stage.
Method validate Validates that the stage can be applied to the given collection.
Property media_type The media type whose slices to select.
Property slices The group slice(s) to select.
Class Method _params Returns a list of JSON dicts describing the stage's supported parameters.
Method _get_group_media_types Undocumented
Method _get_slices Undocumented
Method _kwargs Returns a list of [name, value] lists describing the parameters of this stage instance.
Method _make_pipeline Undocumented
Method _make_root_pipeline Undocumented
Instance Variable _allow_mixed Undocumented
Instance Variable _force_mixed Undocumented
Instance Variable _media_type Undocumented
Instance Variable _slices Undocumented

Inherited from ViewStage:

Method __eq__ Undocumented
Method __repr__ Undocumented
Method __str__ Undocumented
Method get_edited_fields Returns a list of names of fields or embedded fields that may have been edited by the stage, if any.
Method get_excluded_fields Returns a list of fields that have been excluded by the stage, if any.
Method get_filtered_fields Returns a list of names of fields or embedded fields that contain arrays have been filtered by the stage, if any.
Method get_group_expr Returns the dynamic group expression for the given stage, if any.
Method get_selected_fields Returns a list of fields that have been selected by the stage, if any.
Method load_view Loads the fiftyone.core.view.DatasetView containing the output of the stage.
Property has_view Whether this stage's output view should be loaded via load_view rather than appending stages to an aggregation pipeline via to_mongo.
Property outputs_dynamic_groups Whether this stage outputs or flattens dynamic groups.
Class Method _from_dict Creates a ViewStage instance from a serialized JSON dict representation of it.
Method _needs_frames Whether the stage requires frame labels of video samples to be attached.
Method _needs_group_slices Whether the stage requires group slice(s) to be attached.
Method _serialize Returns a JSON dict representation of the ViewStage.
Instance Variable _uuid Undocumented
def __init__(self, slices=None, media_type=None, _allow_mixed=False, _force_mixed=False): (source)

Undocumented

def get_media_type(self, sample_collection): (source)

Returns the media type outputted by this stage when applied to the given collection, if and only if it is different from the input type.

Parameters
sample_collectionthe fiftyone.core.collections.SampleCollection to which the stage is being applied
Returns
the media type, or None if the stage does not change the type
def to_mongo(self, sample_collection): (source)

Returns the MongoDB aggregation pipeline for the stage.

Only usable if has_view is False.

Parameters
sample_collectionthe fiftyone.core.collections.SampleCollection to which the stage is being applied
Returns
a MongoDB aggregation pipeline (list of dicts)
def validate(self, sample_collection): (source)

Validates that the stage can be applied to the given collection.

Parameters
sample_collectiona fiftyone.core.collections.SampleCollection
Raises
ViewStageErrorif the stage cannot be applied to the collection

The media type whose slices to select.

The group slice(s) to select.

@classmethod
def _params(cls): (source)

Returns a list of JSON dicts describing the stage's supported parameters.

Returns
a list of JSON dicts
def _get_group_media_types(self, sample_collection): (source)

Undocumented

def _get_slices(self, sample_collection): (source)

Undocumented

def _kwargs(self): (source)

Returns a list of [name, value] lists describing the parameters of this stage instance.

Returns
a list of [name, value] lists
def _make_pipeline(self, sample_collection): (source)

Undocumented

def _make_root_pipeline(self, sample_collection): (source)

Undocumented

_allow_mixed = (source)

Undocumented

_force_mixed = (source)

Undocumented

_media_type = (source)

Undocumented

Undocumented