File size: 1,403 Bytes
3e02ab8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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()