# Path: hftools/utils.py
# def is_numlike(a):
#     if isinstance(a, np.ndarray):
#         return np.issubdtype(a.dtype, np.number)
#     else:
#         return np.issubdtype(np.array(a).dtype, np.number)
# 
# def is_integer(a):
#     if isinstance(a, np.ndarray):
#         return a.dtype.kind == "i"
#     else:
#         return isinstance(a, int)
# 
# def deprecate(msg):
#     warnings.warn(msg, HFToolsDeprecationWarning)
# 
# Path: hftools/py3compat.py
# DEFAULT_ENCODING = "cp1252"
#     PY3 = True
#     PY3 = False
# def no_code(x, encoding=None):
# def decode(s, encoding=None):
# def encode(u, encoding=None):
# def cast_unicode(s, encoding=None):
# def cast_bytes(s, encoding=None):
#     def reraise(tp, value, tb=None):
#     def popen(command):
#     def popen(command):
#     def print(*k, **kw):
# def cast_str(s, encoding=None):


import datetime
import numpy as np
import six
from hftools.utils import is_numlike, is_integer, deprecate
from hftools.py3compat import integer_types
            dim_data = [dim_data.tolist()]
        if not isinstance(dim_data, (list, tuple)):
            dim_data = list(dim_data)

        self._data = tuple(flatten(dim_data))
        self._name = dim_name
        self._unit = dim_unit
        self._outputformat = dim_outputformat

    @property
    def data(self):
        if len(self._data) == 0:
            d = np.array([])
        elif isinstance(self._data[0], (np.datetime64, datetime.datetime)):
            d = np.asarray(self._data, np.dtype("datetime64[us]"))
        else:
            d = np.asarray(self._data)
        return d

    @property
    def name(self):
        return self._name

    @property
    def unit(self):
        return self._unit

    @property
    def outputformat(self):
        if self._outputformat is None:

# Path: hftools/utils.py
# def is_numlike(a):
#     if isinstance(a, np.ndarray):
#         return np.issubdtype(a.dtype, np.number)
#     else:
#         return np.issubdtype(np.array(a).dtype, np.number)
# 
# def is_integer(a):
#     if isinstance(a, np.ndarray):
#         return a.dtype.kind == "i"
#     else:
#         return isinstance(a, int)
# 
# def deprecate(msg):
#     warnings.warn(msg, HFToolsDeprecationWarning)
# 
# Path: hftools/py3compat.py
# DEFAULT_ENCODING = "cp1252"
#     PY3 = True
#     PY3 = False
# def no_code(x, encoding=None):
# def decode(s, encoding=None):
# def encode(u, encoding=None):
# def cast_unicode(s, encoding=None):
# def cast_bytes(s, encoding=None):
#     def reraise(tp, value, tb=None):
#     def popen(command):
#     def popen(command):
#     def print(*k, **kw):
# def cast_str(s, encoding=None):


# Path: hftools/dataset/dim.py
import datetime
import numpy as np
import six
from hftools.utils import is_numlike, is_integer, deprecate
from hftools.py3compat import integer_types

            dim_data = [dim_data.tolist()]
        if not isinstance(dim_data, (list, tuple)):
            dim_data = list(dim_data)

        self._data = tuple(flatten(dim_data))
        self._name = dim_name
        self._unit = dim_unit
        self._outputformat = dim_outputformat

    @property
    def data(self):
        if len(self._data) == 0:
            d = np.array([])
        elif isinstance(self._data[0], (np.datetime64, datetime.datetime)):
            d = np.asarray(self._data, np.dtype("datetime64[us]"))
        else:
            d = np.asarray(self._data)
        return d

    @property
    def name(self):
        return self._name

    @property
    def unit(self):
        return self._unit

    @property
    def outputformat(self):
        if self._outputformat is None:

            if is_integer(self._data[0]):