From 9bcd6d7dd58d9d7846e4d857c275115329ebdedb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Antonio=20Perdiguero=20L=C3=B3pez?= Date: Thu, 25 Apr 2024 14:46:12 +0200 Subject: [PATCH] :bug: Accept empty body as a valid input for schema validation --- flama/schemas/data_structures.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/flama/schemas/data_structures.py b/flama/schemas/data_structures.py index f7dae180..ac3d1020 100644 --- a/flama/schemas/data_structures.py +++ b/flama/schemas/data_structures.py @@ -189,6 +189,10 @@ def nested_schemas(self, schema: t.Any = UNKNOWN) -> t.List[t.Any]: return [] + @t.overload + def validate(self, values: None, *, partial: bool = False) -> t.Dict[str, t.Any]: + ... + @t.overload def validate(self, values: t.Dict[str, t.Any], *, partial: bool = False) -> t.Dict[str, t.Any]: ... @@ -197,11 +201,11 @@ def validate(self, values: t.Dict[str, t.Any], *, partial: bool = False) -> t.Di def validate(self, values: t.List[t.Dict[str, t.Any]], *, partial: bool = False) -> t.List[t.Dict[str, t.Any]]: ... - def validate(self, values, *, partial=False): + def validate(self, values: t.Union[t.Dict[str, t.Any], t.List[t.Dict[str, t.Any]], None], *, partial=False): if isinstance(values, (list, tuple)): return [schemas.adapter.validate(self.schema, value, partial=partial) for value in values] - return schemas.adapter.validate(self.schema, values, partial=partial) + return schemas.adapter.validate(self.schema, values or {}, partial=partial) @t.overload def load(self, values: t.Dict[str, t.Any]) -> t.Any: