dataclass.gdimFilters
GDIM table read filter models for getProjectDatum API.
Classes
- class dataclass.gdimFilters.GdimContainsFilter
Match filter (API
filters).A scalar
valueuses LIKE by default; setexact=Truefor=. A listvalueis sent as APIvalues(IN).exactis ignored then, because GDIM treats a non-emptyvalueslist as exact IN and ignoresexactQuery.- 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:
- get_dump_value() MainTablePrimaryKeyValueInput | None
Returns
- Any
valueonly exposes the runtime filter; this method returns the original UI schema / TemplateVariableConfig (withdefaultsynced to the current runtime value) sodump_module_paramsround-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_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 asparentTablePrimaryKeyValues(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.