def test_list_recurse(): assert parse({ "type": "list", "inner_dtype": { "type": "string" } }) == ParamSchema.List(ParamSchema.String())
def _(self, schema: ParamSchema.Multitab, value: List[str]) -> List[str]: slugs = frozenset( # recurse -- the same way we clean a list. slug for slug in self.clean_value_list( ParamSchema.List(inner_schema=ParamSchema.Tab()), value) if slug is not None) # Order based on `self.tabs`. return [slug for slug in self.tabs.keys() if slug in slugs]
def test_list_prompting_error_concatenate_different_type_to_text(self): schema = ParamSchema.List(inner_schema=ParamSchema.Column( column_types=frozenset({"text"}))) with self.assertRaises(PromptingError) as cm: self._call_clean_value( schema, ["A", "B"], input_table_columns=[NUMBER("A"), TIMESTAMP("B")]) self.assertEqual( cm.exception.errors, [ PromptingError.WrongColumnType(["A", "B"], None, frozenset({"text"})) ], )
def test_list_prompting_error_concatenate_same_type(self): schema = ParamSchema.List(inner_schema=ParamSchema.Column( column_types=frozenset({"number"}))) with self.assertRaises(PromptingError) as cm: self._call_clean_value(schema, ["A", "B"], input_table_columns=[TEXT("A"), TEXT("B")]) self.assertEqual( cm.exception.errors, [ PromptingError.WrongColumnType(["A", "B"], "text", frozenset({"number"})) ], )