Skip to content

Commit ffba9c5

Browse files
committed
chore: update jinja templates
1 parent 028172a commit ffba9c5

2 files changed

Lines changed: 71 additions & 24 deletions

File tree

pyatlan/generator/templates/methods/asset/alpha__d_q_rule.jinja2

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
@classmethod
2+
@classmethod
33
@init_guid
44
def custom_sql_creator(
55
cls,
@@ -137,12 +137,31 @@
137137
],
138138
)
139139
template_config = client.dq_template_config_cache.get_template_config(rule_type)
140-
threshold_compare_operator = alpha_DQRule.Attributes._validate_template_features(
141-
rule_type,
142-
rule_conditions,
143-
row_scope_filtering_enabled,
144-
template_config,
145-
threshold_compare_operator,
140+
141+
asset_for_validation = asset
142+
if row_scope_filtering_enabled and asset.qualified_name:
143+
from pyatlan.model.fluent_search import FluentSearch
144+
145+
search_request = (
146+
FluentSearch()
147+
.where(Asset.QUALIFIED_NAME.eq(asset.qualified_name))
148+
.include_on_results(
149+
Asset.ALPHAASSET_DQ_ROW_SCOPE_FILTER_COLUMN_QUALIFIED_NAME
150+
)
151+
).to_request()
152+
results = client.asset.search(search_request)
153+
if results.count == 1:
154+
asset_for_validation = results.current_page()[0]
155+
156+
threshold_compare_operator = (
157+
alpha_DQRule.Attributes._validate_template_features(
158+
rule_type,
159+
rule_conditions,
160+
row_scope_filtering_enabled,
161+
template_config,
162+
threshold_compare_operator,
163+
asset_for_validation,
164+
)
146165
)
147166

148167
attributes = alpha_DQRule.Attributes.creator(
@@ -222,8 +241,8 @@
222241
retrieved_column = search_result.alpha_dq_rule_base_column # type: ignore[attr-defined]
223242
retrieved_alert_priority = search_result.alpha_dq_rule_alert_priority # type: ignore[attr-defined]
224243
retrieved_row_scope_filtering_enabled = (
225-
search_result.alpha_dq_rule_row_scope_filtering_enabled
226-
) # type: ignore[attr-defined]
244+
search_result.alpha_dq_rule_row_scope_filtering_enabled # type: ignore[attr-defined]
245+
)
227246
retrieved_description = search_result.user_description
228247
retrieved_asset = search_result.alpha_dq_rule_base_dataset # type: ignore[attr-defined]
229248
retrieved_template_rule_name = search_result.alpha_dq_rule_template_name # type: ignore[attr-defined]
@@ -254,20 +273,29 @@
254273
template_config = client.dq_template_config_cache.get_template_config(
255274
retrieved_rule_type
256275
)
257-
validated_threshold_operator = alpha_DQRule.Attributes._validate_template_features(
258-
retrieved_rule_type,
259-
rule_conditions,
260-
row_scope_filtering_enabled,
261-
template_config,
262-
threshold_compare_operator or retrieved_threshold_compare_operator,
276+
validated_threshold_operator = (
277+
alpha_DQRule.Attributes._validate_template_features(
278+
retrieved_rule_type,
279+
rule_conditions,
280+
row_scope_filtering_enabled,
281+
template_config,
282+
threshold_compare_operator or retrieved_threshold_compare_operator,
283+
retrieved_asset,
284+
)
285+
)
286+
287+
final_compare_operator = (
288+
validated_threshold_operator
289+
or threshold_compare_operator
290+
or retrieved_threshold_compare_operator
263291
)
264292

265293
config_arguments_raw = alpha_DQRule.Attributes._generate_config_arguments_raw(
266294
is_alert_enabled=True,
267295
custom_sql=custom_sql or retrieved_custom_sql,
268296
display_name=rule_name or retrieved_rule_name,
269297
dimension=dimension or retrieved_dimension,
270-
compare_operator=validated_threshold_operator,
298+
compare_operator=final_compare_operator,
271299
threshold_value=threshold_value or retrieved_threshold_value,
272300
threshold_unit=threshold_unit or retrieved_threshold_unit,
273301
column=retrieved_column,
@@ -281,7 +309,7 @@
281309
name="",
282310
alpha_dq_rule_config_arguments=alpha_DQRuleConfigArguments(
283311
alpha_dq_rule_threshold_object=alpha_DQRuleThresholdObject(
284-
alpha_dq_rule_threshold_compare_operator=validated_threshold_operator,
312+
alpha_dq_rule_threshold_compare_operator=final_compare_operator,
285313
alpha_dq_rule_threshold_value=threshold_value
286314
or retrieved_threshold_value,
287315
alpha_dq_rule_threshold_unit=threshold_unit

pyatlan/generator/templates/methods/attribute/alpha__d_q_rule.jinja2

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
@staticmethod
22
def _get_template_config_value(
3-
config_value: str, property_name: str = None, value_key: str = "default"
3+
config_value: str,
4+
property_name: Optional[str] = None,
5+
value_key: str = "default",
46
):
57
if not config_value:
68
return None
@@ -26,9 +28,10 @@
2628
threshold_compare_operator: Optional[
2729
alpha_DQRuleThresholdCompareOperator
2830
] = None,
29-
) -> alpha_DQRuleThresholdCompareOperator:
31+
asset: Optional[Asset] = None,
32+
) -> Optional[alpha_DQRuleThresholdCompareOperator]:
3033
if not template_config or not template_config.get("config"):
31-
return
34+
return None
3235

3336
config = template_config["config"]
3437

@@ -41,15 +44,30 @@
4144
)
4245

4346
if row_scope_filtering_enabled:
44-
advanced_settings = config.alpha_dq_rule_template_advanced_settings or ""
47+
advanced_settings = (
48+
config.alpha_dq_rule_template_advanced_settings or ""
49+
)
4550
if "alpha_dqRuleRowScopeFilteringEnabled" not in str(advanced_settings):
4651
raise ErrorCode.DQ_RULE_TYPE_NOT_SUPPORTED.exception_with_parameters(
4752
rule_type, "row scope filtering"
4853
)
4954

55+
if asset and not getattr(
56+
asset,
57+
"alpha_asset_d_q_row_scope_filter_column_qualified_name",
58+
None,
59+
):
60+
raise ErrorCode.DQ_ROW_SCOPE_FILTER_COLUMN_MISSING.exception_with_parameters(
61+
getattr(asset, "qualified_name", "unknown")
62+
)
63+
5064
if rule_conditions:
51-
allowed_rule_conditions = alpha_DQRule.Attributes._get_template_config_value(
52-
config.alpha_dq_rule_template_config_rule_conditions, None, "enum"
65+
allowed_rule_conditions = (
66+
alpha_DQRule.Attributes._get_template_config_value(
67+
config.alpha_dq_rule_template_config_rule_conditions or "",
68+
None,
69+
"enum",
70+
)
5371
)
5472
if allowed_rule_conditions:
5573
try:
@@ -71,7 +89,8 @@
7189
if threshold_compare_operator is None:
7290
return alpha_DQRuleThresholdCompareOperator.EQUAL
7391
elif (
74-
threshold_compare_operator != alpha_DQRuleThresholdCompareOperator.EQUAL
92+
threshold_compare_operator
93+
!= alpha_DQRuleThresholdCompareOperator.EQUAL
7594
):
7695
raise ErrorCode.INVALID_PARAMETER_VALUE.exception_with_parameters(
7796
f"threshold_compare_operator={threshold_compare_operator.value}",

0 commit comments

Comments
 (0)