diff --git a/emmet-core/emmet/core/utils.py b/emmet-core/emmet/core/utils.py index f057c5c1b7..6e93cb4044 100644 --- a/emmet-core/emmet/core/utils.py +++ b/emmet-core/emmet/core/utils.py @@ -4,7 +4,6 @@ from typing import Any, Iterator, List, Tuple, Dict, Union import copy -import bson import numpy as np from monty.json import MSONable from pydantic import BaseModel @@ -17,6 +16,11 @@ from emmet.core.settings import EmmetSettings +try: + import bson +except ImportError: + bson = None # type: ignore + SETTINGS = EmmetSettings() @@ -165,6 +169,7 @@ def jsanitize(obj, strict=False, allow_bson=False): or (bson is not None and isinstance(obj, bson.objectid.ObjectId)) ): return obj + if isinstance(obj, (list, tuple, set)): return [jsanitize(i, strict=strict, allow_bson=allow_bson) for i in obj] if np is not None and isinstance(obj, np.ndarray): diff --git a/emmet-core/setup.py b/emmet-core/setup.py index 96cf7f7378..a3ec441360 100644 --- a/emmet-core/setup.py +++ b/emmet-core/setup.py @@ -32,7 +32,7 @@ "pydantic==1.10.1", "pybtex~=0.24", "typing-extensions>=3.7,<5.0", - "spglib<3.0.0", + "spglib<2.0.0", ], extras_require={ "all": [