dataeval.selection.Select

class dataeval.selection.Select(dataset, selections=None)

Dataset wrapper that applies selection criteria for filtering.

Wraps an existing dataset and applies one or more selection filters to create a subset view without modifying the original dataset. Supports chaining multiple selection criteria for complex filtering operations.

Parameters:
dataset : AnnotatedDataset[_TDatum]

Source dataset to wrap and filter. Must implement AnnotatedDataset interface with indexed access to data tuples.

selections : Selection or Sequence[Selection] or None, default None

Selection criteria to apply for filtering the dataset. When None, returns all items from the source dataset. Default None creates unfiltered view for consistent interface.

Notes

Selection criteria are applied in the order provided, allowing for efficient sequential filtering. The wrapper maintains all metadata and interface compatibility with the original dataset.

Examples

>>> from dataeval.selection import ClassFilter, Limit
>>> # Apply selection criteria to the dataset
>>> selections = [Limit(size=5), ClassFilter(classes=[0, 2])]
>>> selected_dataset = Select(dataset, selections=selections)
>>> # View selected dataset information
>>> print(selected_dataset)
Select Dataset
--------------
    Selections: [Limit(size=5), ClassFilter(classes=[0, 2], filter_detections=True)]
    Selected Size: 5

ObjectDetectionDataset(n_images=50, classes=['person', 'car', 'boat', 'plane'])
resolve_indices(indices=None)

Return the list of dataset indices after all selections have been applied.

Parameters:
indices : int or SourceIndex or Sequence[int | SourceIndex] or None, default None

Specific indices from the original dataset to resolve after selection. When None, returns all selected indices.

Returns:

The list of selected indices from the original dataset.

Return type:

list[int]

property metadata : dataeval.protocols.DatasetMetadata

Dataset metadata information including identifier and configuration.

property root_dataset : dataeval.protocols.Dataset[_TDatum]

The original dataset at the bottom of any Select wrapping chain.

property selection_groups : list[list[Selection[_TDatum]]]

Selection lists from each construction call, innermost (oldest) first.

Select(Select(base, [A, B]), [C]) returns [[A, B], [C]]. Empty wrappers contribute nothing — a chain with no selectors anywhere returns []. The grouping matches the user’s nesting intent and is the natural shape for sidecar metadata (see dataeval.io).