MCPcopy Create free account
hub / github.com/StackStorm/st2 / get_params_view

Function get_params_view

st2common/st2common/models/utils/action_param_utils.py:54–95  ·  view source on GitHub ↗
(action_db=None, runner_db=None, merged_only=False)

Source from the content-addressed store, hash-verified

52
53
54def get_params_view(action_db=None, runner_db=None, merged_only=False):
55 if runner_db:
56 runner_params = (
57 fast_deepcopy_dict(getattr(runner_db, "runner_parameters", {})) or {}
58 )
59 else:
60 runner_params = {}
61
62 if action_db:
63 action_params = fast_deepcopy_dict(getattr(action_db, "parameters", {})) or {}
64 else:
65 action_params = {}
66
67 parameters = set(runner_params.keys()).union(set(action_params.keys()))
68
69 merged_params = {}
70 for param in parameters:
71 merged_params[param] = _merge_param_meta_values(
72 action_meta=action_params.get(param), runner_meta=runner_params.get(param)
73 )
74
75 if merged_only:
76 return merged_params
77
78 def is_required(param_meta):
79 return param_meta.get("required", False)
80
81 def is_immutable(param_meta):
82 return param_meta.get("immutable", False)
83
84 immutable = {
85 param for param in parameters if is_immutable(merged_params.get(param))
86 }
87 required = {param for param in parameters if is_required(merged_params.get(param))}
88 required = required - immutable
89 optional = parameters - required - immutable
90
91 required_params = {k: merged_params[k] for k in required}
92 optional_params = {k: merged_params[k] for k in optional}
93 immutable_params = {k: merged_params[k] for k in immutable}
94
95 return (required_params, optional_params, immutable_params)
96
97
98def cast_params(action_ref, params, cast_overrides=None):

Callers

nothing calls this directly

Calls 6

fast_deepcopy_dictFunction · 0.90
_merge_param_meta_valuesFunction · 0.85
is_immutableFunction · 0.85
is_requiredFunction · 0.85
keysMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected