dataclass.gdimFilters

GDIM table read filter models for getProjectDatum API.

Classes

class dataclass.gdimFilters.GdimContainsFilter

Match filter (API filters).

A scalar value uses LIKE by default; set exact=True for =. A list value is sent as API values (IN). exact is ignored then, because GDIM treats a non-empty values list as exact IN and ignores exactQuery.

Inherits from:

BaseModel

Attributes:

field: str
value: str | int | float | list[str | int | float]
exact: bool = False
class dataclass.gdimFilters.GdimRangeFilter

Range comparison filter (API rangeFilters).

Inherits from:

BaseModel

Attributes:

field: str
operator: Literal[(gt, gte, lt, lte)]
value: str | int | float
class dataclass.gdimFilters.GdimFilterGroup

Nested filter group (API filterGroup).

Inherits from:

BaseModel

Attributes:

logic: Literal[(and, or)] = 'and'
ranges: list[GdimRangeFilter] = <ast.Call object at 0x0000017357D266E0>
children: list[GdimFilterGroup] = <ast.Call object at 0x0000017357D26530>
class dataclass.gdimFilters.GdimTableReadFilter

Per-table read filter for GDIM getProjectDatum (advanced filters only).

Inherits from:

BaseModel

Attributes:

contains: list[GdimContainsFilter] = <ast.Call object at 0x0000017357D262C0>
ranges: list[GdimRangeFilter] = <ast.Call object at 0x0000017357D26110>
filter_group: GdimFilterGroup | None = None
class dataclass.gdimFilters.PrimaryKeyValueFilterHelper

Shared primary_key_value_filter state and resolution for GDIM table readers.

Methods:

__init__() None
set_input(value: MainTablePrimaryKeyValueInput | None) None
get_dump_value() MainTablePrimaryKeyValueInput | None

Returns

Any

value only exposes the runtime filter; this method returns the original UI schema / TemplateVariableConfig (with default synced to the current runtime value) so dump_module_params round-trips correctly.

resolve_ui_schema(main_table_name_selections: list[str] | None, main_table_title_selections: list[str] | None) UIAttributeSchema
resolve_parent_table_primary_key_values(tpl_structure: GdimTemplate, table_names: set[str]) dict[str, MainTablePkFilterValue] | None
merge_main_table_pk_filters(tpl_structure: GdimTemplate, table_names: set[str], table_filters: dict[str, GdimTableReadFilter] | None) dict[str, GdimTableReadFilter] | None

Properties:

value

Functions

dataclass.gdimFilters.coerce_table_read_filter(value: GdimTableReadFilter | dict[str, Any] | None) GdimTableReadFilter | None
dataclass.gdimFilters.resolve_filter_field_name(field_key: str, table_metadata: GdimTableMetaData) str
dataclass.gdimFilters.substitute_string_placeholders(value: str, variables: dict[str, Any]) str
dataclass.gdimFilters.substitute_filter_placeholders(filter_spec: GdimTableReadFilter, variables: dict[str, Any]) GdimTableReadFilter
dataclass.gdimFilters.build_filter_api_payload(filter_spec: GdimTableReadFilter | None, table_metadata: GdimTableMetaData) dict[str, Any]
dataclass.gdimFilters.resolve_table_nrows(table_name: str, table_title: str, nrows: int | dict[str, int] | None) int | None
dataclass.gdimFilters.resolve_main_table_primary_key_value(main_table_name: str, main_table_title: str, value: MainTablePrimaryKeyValue | None) MainTablePkFilterValue | None
dataclass.gdimFilters.find_main_tables_in_read_set(table_names: set[str], tpl_structure: GdimTemplate) list[str]

Main tables that have at least one related sub-table in the read set.

Includes:
- Main tables in the read set that have a child also in the read set
- Immediate parents of leaf tables in the read set when the parent itself is
  not being read (sub-table-only reads)
dataclass.gdimFilters.find_main_tables_in_read_set_for_pk_filter(table_names: set[str], tpl_structure: GdimTemplate) list[str]

Main tables (template hierarchy roots) that appear in the read set.

dataclass.gdimFilters.build_parent_key_values_for_tables(table_names: set[str], tpl_structure: GdimTemplate, primary_key_value_filter: MainTablePrimaryKeyValue | None) dict[str, MainTablePkFilterValue]

Map a main-table PK value onto related sub-tables in the read set.

The result is keyed by sub-table name. A scalar is sent as parentTablePrimaryKeyValue; a list is sent as parentTablePrimaryKeyValues (takes priority on GDIM). The parent table does not need to be in the read set.

dataclass.gdimFilters.merge_table_read_filters(base: GdimTableReadFilter, extra: GdimTableReadFilter) GdimTableReadFilter
dataclass.gdimFilters.build_main_table_pk_filters(table_names: set[str], tpl_structure: GdimTemplate, primary_key_value_filter: MainTablePrimaryKeyValue | None) dict[str, GdimTableReadFilter]

Build exact-match filters for main tables from primary_key_value_filter.

dataclass.gdimFilters.is_main_table_pk_schema(value: Any) bool
dataclass.gdimFilters.collect_template_variable_names_from_filter(filter_spec: GdimTableReadFilter | dict[str, Any] | None) set[str]