1
- from functools import partial
2
-
3
- import ray
4
-
5
- import semver
6
-
7
1
import btrdb
8
2
from btrdb .conn import BTrDB
3
+ from functools import partial
9
4
10
5
def register_serializer (conn_str = None , apikey = None , profile = None ):
11
6
"""
@@ -24,14 +19,23 @@ def register_serializer(conn_str=None, apikey=None, profile=None):
24
19
found in the user's predictive grid credentials file
25
20
`~/.predictivegrid/credentials.yaml`.
26
21
"""
22
+ try :
23
+ import ray
24
+ except ImportError :
25
+ raise ImportError ("must pip install ray to register custom serializer" )
26
+ try :
27
+ import semver
28
+ except ImportError :
29
+ raise ImportError ("must pip install semver to register custom serializer" )
30
+
27
31
assert ray .is_initialized (), "Need to call ray.init() before registering custom serializer"
28
32
# TODO: check the version using the 'semver' package?
29
33
ver = semver .VersionInfo .parse (ray .__version__ )
30
34
if ver .major == 0 :
31
35
ray .register_custom_serializer (
32
36
BTrDB , serializer = btrdb_serializer , deserializer = partial (btrdb_deserializer , conn_str = conn_str , apikey = apikey , profile = profile ))
33
37
elif ver .major == 1 and ver .minor in range (2 , 4 ):
34
- # TODO: check different versions of ray?
38
+ # TODO: check different versions of ray?
35
39
ray .util .register_serializer (
36
40
BTrDB , serializer = btrdb_serializer , deserializer = partial (btrdb_deserializer , conn_str = conn_str , apikey = apikey , profile = profile ))
37
41
else :
0 commit comments