diff --git a/src/cohere/core/unchecked_base_model.py b/src/cohere/core/unchecked_base_model.py index 67d7e3be4..ad39f0298 100644 --- a/src/cohere/core/unchecked_base_model.py +++ b/src/cohere/core/unchecked_base_model.py @@ -360,7 +360,8 @@ def construct_type( if not isinstance(object_, typing.Mapping): return object_ - key_type, items_type = get_args(type_) + args = get_args(type_) + key_type, items_type = args if args else (typing.Any, typing.Any) key_type = _maybe_resolve_forward_ref(key_type, host) items_type = _maybe_resolve_forward_ref(items_type, host) d = { diff --git a/tests/test_unchecked_base_model.py b/tests/test_unchecked_base_model.py new file mode 100644 index 000000000..11ae0dae2 --- /dev/null +++ b/tests/test_unchecked_base_model.py @@ -0,0 +1,11 @@ +import sys +import os +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src")) + +from cohere.core.unchecked_base_model import construct_type + + +def test_construct_type_bare_dict_no_unpack_error(): + # bare dict (unparameterized) must not raise ValueError on get_args unpacking + result = construct_type(type_=dict, object_={"key": "value"}) + assert result == {"key": "value"}