diff --git a/rdfproxy/utils/mapper_utils.py b/rdfproxy/utils/mapper_utils.py index 05764e4..affeedc 100644 --- a/rdfproxy/utils/mapper_utils.py +++ b/rdfproxy/utils/mapper_utils.py @@ -15,8 +15,13 @@ def _is_list_type(obj: type | None) -> bool: return _is_type(obj, list) -def _is_scalar_type(t) -> bool: - return (not _is_list_type(t)) and (not issubclass(t, BaseModel)) +def _is_scalar_type(obj) -> bool: + if obj is None: + return True + elif args := get_args(obj): + return all(_is_scalar_type(o) for o in args) + else: + return (not _is_list_type(obj)) and (not issubclass(obj, BaseModel)) def _is_list_basemodel_type(obj: type | None) -> bool: