def test_param_schema_implicit(self): spec = ModuleSpec( id_name="googlesheets", name="x", category="Clean", parameters=[ { "id_name": "foo", "type": "string", "default": "X" }, { "id_name": "bar", "type": "secret", "secret_logic": { "provider": "oauth2", "service": "google" }, }, { "id_name": "baz", "type": "menu", "options": [ { "value": "a", "label": "A" }, "separator", { "value": "c", "label": "C" }, ], "default": "c", }, ], ) self.assertEqual( spec.get_param_schema(), ParamDType.Dict({ "foo": ParamDType.String(default="X"), # secret is not in param_schema "baz": ParamDType.Enum(choices=frozenset({"a", "c"}), default="c"), }), )
def dtype(self) -> Optional[ParamDType]: return ParamDType.Enum( choices=frozenset.union(*[o.dtype_choices for o in self.options]), default=self.default, )