diff --git a/griptape/schemas/base_schema.py b/griptape/schemas/base_schema.py index 6f279b183..82bc072fb 100644 --- a/griptape/schemas/base_schema.py +++ b/griptape/schemas/base_schema.py @@ -107,8 +107,9 @@ def _resolve_types(cls, attrs_cls: type) -> None: from griptape.structures import Structure from griptape.utils import PromptStack from griptape.tokenizers.base_tokenizer import BaseTokenizer + from typing import Any - boto3 = import_optional_dependency("boto3") if is_dependency_installed("boto3") else {} + boto3 = import_optional_dependency("boto3") if is_dependency_installed("boto3") else Any attrs.resolve_types( attrs_cls, diff --git a/tests/unit/utils/test_import_utils.py b/tests/unit/utils/test_import_utils.py new file mode 100644 index 000000000..bcfb06c87 --- /dev/null +++ b/tests/unit/utils/test_import_utils.py @@ -0,0 +1,17 @@ +import pytest +from griptape.utils import import_optional_dependency, is_dependency_installed + + +class TestImportUtils: + def test_import_optional_dependency(self): + assert import_optional_dependency("os") + assert import_optional_dependency("boto3") + + with pytest.raises(ImportError): + assert import_optional_dependency("foobar") + + def test_is_dependency_installed(self): + assert is_dependency_installed("os") is True + assert is_dependency_installed("boto3") is True + + assert is_dependency_installed("foobar") is False