1
1
from io import BytesIO
2
2
import pickle
3
- import plotly
3
+
4
+
5
+ from .utilities import check_extra
4
6
5
7
class Serializer :
6
8
def serialize (self , data , allow_pickle = False ):
@@ -51,16 +53,27 @@ def get_serializer(data, allow_pickle):
51
53
return _serialize_pickle
52
54
return None
53
55
56
+ @check_extra ("plot" )
54
57
def _serialize_plotly_figure (data ):
58
+ try :
59
+ import plotly
60
+ except ImportError :
61
+ return
55
62
mimetype = 'application/vnd.plotly.v1+json'
56
63
data = plotly .io .to_json (data , 'json' )
57
64
return data , mimetype
58
65
66
+ @check_extra ("plot" )
59
67
def _serialize_matplotlib_figure (data ):
68
+ try :
69
+ import plotly
70
+ except ImportError :
71
+ return None
60
72
mimetype = 'application/vnd.plotly.v1+json'
61
73
data = plotly .io .to_json (plotly .tools .mpl_to_plotly (data ), 'json' )
62
74
return data , mimetype
63
75
76
+ @check_extra ("dataset" )
64
77
def _serialize_numpy_array (data ):
65
78
try :
66
79
import numpy as np
@@ -75,6 +88,7 @@ def _serialize_numpy_array(data):
75
88
data = mfile .read ()
76
89
return data , mimetype
77
90
91
+ @check_extra ("dataset" )
78
92
def _serialize_dataframe (data ):
79
93
mimetype = 'application/vnd.simvue.df.v1'
80
94
mfile = BytesIO ()
@@ -83,6 +97,7 @@ def _serialize_dataframe(data):
83
97
data = mfile .read ()
84
98
return data , mimetype
85
99
100
+ @check_extra ("torch" )
86
101
def _serialize_torch_tensor (data ):
87
102
try :
88
103
import torch
@@ -127,14 +142,25 @@ def get_deserializer(mimetype, allow_pickle):
127
142
return _deserialize_pickle
128
143
return None
129
144
145
+ @check_extra ("plot" )
130
146
def _deserialize_plotly_figure (data ):
147
+ try :
148
+ import plotly
149
+ except ImportError :
150
+ return None
131
151
data = plotly .io .from_json (data )
132
152
return data
133
153
154
+ @check_extra ("plot" )
134
155
def _deserialize_matplotlib_figure (data ):
156
+ try :
157
+ import plotly
158
+ except ImportError :
159
+ return None
135
160
data = plotly .io .from_json (data )
136
161
return data
137
162
163
+ @check_extra ("dataset" )
138
164
def _deserialize_numpy_array (data ):
139
165
try :
140
166
import numpy as np
@@ -147,6 +173,7 @@ def _deserialize_numpy_array(data):
147
173
data = np .load (mfile , allow_pickle = False )
148
174
return data
149
175
176
+ @check_extra ("dataset" )
150
177
def _deserialize_dataframe (data ):
151
178
try :
152
179
import pandas as pd
@@ -159,6 +186,7 @@ def _deserialize_dataframe(data):
159
186
data = pd .read_csv (mfile , index_col = 0 )
160
187
return data
161
188
189
+ @check_extra ("torch" )
162
190
def _deserialize_torch_tensor (data ):
163
191
try :
164
192
import torch
0 commit comments