Grouping & Filter Engine#

Sub-group resolution, filter engine, and preset templates.

SubGroup#

Sub-group dataclass for grouping resolution results.

class ccat_workflow_manager.grouping.resolver.SubGroup(key: str, metadata: dict, raw_data_package_ids: ~typing.List[int], input_product_ids: ~typing.List[int] = <factory>)[source]#

Bases: object

Represents a resolved sub-group with a unique key and metadata.

key: str#
metadata: dict#
raw_data_package_ids: List[int]#
input_product_ids: List[int]#
__init__(key: str, metadata: dict, raw_data_package_ids: ~typing.List[int], input_product_ids: ~typing.List[int] = <factory>) None#

FilterEngine#

Generic filter engine for resolving DataGroupings into sub-groups.

Replaces the polymorphic resolver registry with a declarative, data-driven approach. Filter rules and group_by dimensions are JSON on the models.

class ccat_workflow_manager.grouping.engine.FilterEngine[source]#

Bases: object

Resolves a DataGrouping’s filter_rules + group_by into SubGroups.

resolve(session: Session, data_grouping: DataGrouping, group_by: List[str] | None = None) List[SubGroup][source]#

Presets#

Curated filter preset templates for the frontend.

Presets are data dicts — no code changes needed to add new presets.

ccat_workflow_manager.grouping.presets.get_preset(name: str) dict[source]#

Get a preset by name.

ccat_workflow_manager.grouping.presets.list_presets() list[source]#

List all available presets.