(seq: SequenceBase[T_Data], trans_cfg: SimpleNamespace | dict[str, Any] | list)
| 118 | |
| 119 | |
| 120 | def smart_transform(seq: SequenceBase[T_Data], trans_cfg: SimpleNamespace | dict[str, Any] | list) -> SequenceBase[T_Data]: |
| 121 | if isinstance(trans_cfg, dict): |
| 122 | trans_cfg = build_dynamic_config(trans_cfg)[0] |
| 123 | elif isinstance(trans_cfg, list): |
| 124 | trans_cfg = [ |
| 125 | tcfg if isinstance(tcfg, SimpleNamespace) else build_dynamic_config(tcfg)[0] |
| 126 | for tcfg in trans_cfg |
| 127 | ] |
| 128 | |
| 129 | if isinstance(trans_cfg, list): |
| 130 | transform_cfg = trans_cfg |
| 131 | else: |
| 132 | seq_type = seq.name() |
| 133 | if not hasattr(trans_cfg, seq_type): return seq |
| 134 | transform_cfg = getattr(trans_cfg, seq_type) |
| 135 | |
| 136 | Logger.write("info", "Using data transformation:\n- " + '\n- '.join([str(x) for x in transform_cfg])) |
| 137 | trans_fn = [ |
| 138 | IDataTransform.instantiate(tcfg.type, tcfg.args) |
| 139 | for tcfg in transform_cfg |
| 140 | ] |
| 141 | return seq.transform(trans_fn) |
no test coverage detected