def load_bytes(self, bytestring, data_source=''):
load_methods = [
msgpack_lz4_to_series,
pd.read_msgpack,
pickle.loads,
]
seria = None
for loader in load_methods:
try:
loaded = loader(bytestring)
except Exception as err:
continue
if isinstance(loaded, pd.Series):
seria = [loaded]
elif isinstance(loaded, pd.DataFrame):
seria = list(map(
itemgetter(1),
loaded.iteritems()
))
elif isinstance(loaded, list):
seria = loaded
else:
logger.error('Unexpected object found: {:.30}... (using deserializer {}'
''.format(seria, loader))
return
if seria is None:
logger.error('Could not deserialize contents of {} with any of {}'
''.format(data_source, load_methods))
return
for idx, series in enumerate(seria):
if not series.name:
if os.path.exists(data_source):
prefix = os.path.split(data_source)[1]
else:
prefix=data_source
series.name = '{}_{}'.join(map(str, [prefix, idx]))
self.model.add_dataitem(series, name=series.name)
logger.info('Loaded "{n}" ({v} values) from {src}'
''.format(n=series.name, v=len(series), src=data_source))
评论列表
文章目录