recon_gen.common.tree.parameters
Typed ParameterDecl subtypes — one per models.py declaration variant.
StringParam / IntegerParam / DateTimeParam map to the
three declaration types in models.py. Each carries its own
ParameterName at the constructor (single construction site);
controls and filter parameter bindings reference the parameter by
object ref.
Each variant optionally carries a list of (Dataset, str) tuples in
mapped_dataset_params. Each tuple binds the analysis-level
parameter to a dataset-level parameter declared inside the
referenced Dataset’s CustomSql (substituted via <<$paramName>>
at QS query time). Use this to bridge an analysis param into one or
more parameterized datasets — the cascading-filter pattern that
M.3.10c established.
Classes
|
DateTime parameter declaration. |
|
Integer-valued parameter declaration. |
|
Structural type for parameter declaration tree nodes. |
|
String-valued parameter declaration. |
- class recon_gen.common.tree.parameters.DateTimeParam(name, default, time_granularity=None, mapped_dataset_params=None)[source]
Bases:
objectDateTime parameter declaration.
Pass
time_granularity="DAY" | "HOUR" | "MINUTE" | …to bound the picker’s resolution.defaultis required — DateTimeDefaultValues with one of StaticValues / DynamicValue / RollingDate populated. Common rolling default for “today”:DateTimeDefaultValues(RollingDate={"Expression": "truncDate('DD', now())"}).Why default is required (M.4.4.10d): without one, QS UI’s date picker initializes with no value and crashes on editor open with “epochMilliseconds must be a number, you gave: null”. Making the field type-required prevents the bug class from recurring at the wiring site.
- Parameters:
name (ParameterName)
default (DateTimeDefaultValues)
time_granularity (Literal['YEAR', 'QUARTER', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'] | None)
mapped_dataset_params (list[tuple[Dataset, str]] | None)
- default: DateTimeDefaultValues
- name: ParameterName
- time_granularity: Literal['YEAR', 'QUARTER', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'] | None = None
- class recon_gen.common.tree.parameters.IntegerParam(name, default=<factory>, multi_valued=False, mapped_dataset_params=None)[source]
Bases:
objectInteger-valued parameter declaration.
- Parameters:
name (ParameterName)
default (list[int])
multi_valued (bool)
mapped_dataset_params (list[tuple[Dataset, str]] | None)
- default: list[int]
- multi_valued: bool = False
- name: ParameterName
- class recon_gen.common.tree.parameters.ParameterDeclLike(*args, **kwargs)[source]
Bases:
ProtocolStructural type for parameter declaration tree nodes.
- name: ParameterName
- class recon_gen.common.tree.parameters.StringParam(name, default=<factory>, multi_valued=False, mapped_dataset_params=None, value_when_unset=None)[source]
Bases:
objectString-valued parameter declaration.
Default values are passed as a list — single-valued parameters use
[]for “no default” or["value"]for one default; multi-valued use["a", "b", "c"].mapped_dataset_params: optional list of(Dataset, name)pairs binding this analysis parameter to one or more dataset-level parameters substituted via<<$name>>in the dataset’s CustomSql.value_when_unset: optional string value QS substitutes when this parameter is “unset” at evaluation time. REQUIRED when this parameter feeds aCascadingControlConfiguration— the cascade machinery substitutes this value into its internal match expression; the QS UI default of NULL makes the expression invalid (“calculated field has invalid syntax” tooltip on the target control). Set to the same sentinel used for the dataset’s default so cascade-without-pick is a no-op narrowing instead of a NULL comparison. Seedocs/reference/quicksight-quirks.md.- Parameters:
name (ParameterName)
default (list[str])
multi_valued (bool)
mapped_dataset_params (list[tuple[Dataset, str]] | None)
value_when_unset (str | None)
- default: list[str]
- multi_valued: bool = False
- name: ParameterName
- value_when_unset: str | None = None