from ._version import __version__ # noqa: F401 import packaging.version import torch # Load all installed nequip extension packages # This allows installed extensions to register themselves in # the nequip infrastructure with calls like `register_fields` # see https://packaging.python.org/en/guides/creating-and-discovering-plugins/#using-package-metadata # we use "try ... except ..." to avoid importing sys.version_info try: # python >= 3.10 from importlib.metadata import entry_points _DISCOVERED_NEQUIP_EXTENSION = entry_points(group="nequip.extension") except (ImportError, TypeError): # python < 3.10 from importlib_metadata import entry_points _DISCOVERED_NEQUIP_EXTENSION = entry_points(group="nequip.extension") from onescience.utils.nequip.internal.resolvers import _register_default_resolvers from onescience.utils.nequip.internal.versions.version_utils import get_version_safe # torch version checks torch_version = packaging.version.parse(get_version_safe(torch.__name__).split("+")[0]) # only allow 2.2.* or higher, required for `lightning` and `torchmetrics` compatibility assert torch_version >= packaging.version.parse("2.2"), ( f"NequIP supports 2.2.* or later, but {torch_version} found" ) for ep in _DISCOVERED_NEQUIP_EXTENSION: if ep.name == "init_always": ep.load() # register OmegaConf resolvers _register_default_resolvers()