def to_dtype_dformat(data):
"""Transforms the given data parameter (string/ or sequence of string or
sequence of sequence of string/:obj:`DataType`) into a tuple of two
elements (:obj:`DataType`, :obj:`DataFormat`).
:param data: the data information to be transformed
:type data: str or seq<str> or seq<seq<str>>
:return: a tuple <:obj:`DataType`, :obj:`DataFormat`> for the given data
:rtype: tuple<:obj:`DataType`, :obj:`DataFormat`>
"""
import operator
dtype, dformat = data, DataFormat.Scalar
if isinstance(data, (str, unicode)):
dtype, dformat = from_dtype_str(data)
elif operator.isSequenceType(data):
dformat = DataFormat.OneD
dtype = data[0]
if isinstance(dtype, str):
dtype, dformat2 = from_dtype_str(dtype)
if dformat2 == DataFormat.OneD:
dformat = DataFormat.TwoD
elif operator.isSequenceType(dtype):
dformat = DataFormat.TwoD
dtype = dtype[0]
if isinstance(dtype, str):
dtype, _ = from_dtype_str(dtype)
dtype = DTYPE_MAP.get(dtype, DataType.Invalid)
return dtype, dformat
评论列表
文章目录