def __init__(self, universe, name, units,
                 data=None, dtype=None, element_shape=None):
        api.validate_type(universe, Universe, "universe")
        self._universe = universe
        api.validate_label(name, "name")
        self._name = name
        api.validate_units(units, "units")
        self._units = units
        if data is None:
            if dtype is None:
                dtype = N.float64
            if dtype not in self._allowed_dtypes:
                raise ValueError("dtype must be " +
                                 " or ".join(str(t)
                                             for t in self._allowed_dtypes))
            if element_shape is None:
                element_shape = ()
            array_shape = (self._number_of_values(),) + element_shape

            self._data = N.empty(array_shape, dtype)
        else:
            api.validate_array(data, None, self._allowed_dtypes, "data")
            if dtype is not None and data.dtype != dtype:
                raise ValueError("elements of data array do not have "
                                 "the requested type")
            if data.shape[0] != self._number_of_values():
                raise ValueError("data array has incorrect shape")
            if element_shape is not None and data.shape[1:] != element_shape:
                raise ValueError("elements of data array do not have "
                                 "the requested shape")
            self._data = data
Ejemplo n.º 2
0
 def __init__(self, universe, name, units, data, property_type):
     api.validate_type(universe, Universe, "universe")
     api.validate_label(name, "name")
     api.validate_units(units, "units")
     api.validate_array(data, None, self._allowed_dtypes, "data")
     api.validate_value(property_type, self._allowed_types, "property_type")
     self._universe = universe
     self._name = name
     self._units = units
     self._data = data
     self._type = property_type
Ejemplo n.º 3
0
 def __init__(self, universe, name, units, data):
     api.validate_type(universe, Universe, "universe")
     self._universe = universe
     api.validate_label(name, "name")
     self._name = name
     api.validate_units(units, "units")
     self._units = units
     api.validate_array(data, None, self._allowed_dtypes, "data")
     if data.shape[0] != self._number_of_values():
         raise ValueError("data array has incorrect shape")
     self._data = data
Ejemplo n.º 4
0
def valid_units(units):
    try:
        validate_units(units, "")
        return True
    except (ValueError, TypeError):
        return False