def __init__(self, obj, dshape=None, metadata=None, layout=None, params=None): # Datashape # --------- if isinstance(dshape, basestring): dshape = _dshape(dshape) if not dshape: # No explicit dshape provided. Infer it from the source. # if the source is another blaze array just use its shape, # otherwile let the provider infer its data_shape if isinstance(obj, Array): dshape = obj.datashape else: dshape = CArraySource.infer_datashape(obj) else: # The user overlayed their custom dshape on this # data, check if it makes sense CArraySource.check_datashape(obj, given_dshape=dshape) self._datashape = dshape # Values # ------ # Mimic NumPy behavior in that we have a variety of # possible arguments to the first argument which result # in different behavior for the values. if isinstance(obj, ByteProvider): self.data = obj elif isinstance(obj, Array): self.data = CArraySource(obj.data, dshape=dshape, params=params) else: self.data = CArraySource(obj, dshape=dshape, params=params) # children graph nodes self.children = [] self.space = Space(self.data) # Layout # ------ if layout: self._layout = layout elif not layout: self._layout = self.data.default_layout() # Metadata # -------- self._metadata = NDArray._metaheader + (metadata or []) # Parameters # ---------- self.params = params
def __init__(self, obj, dshape=None, metadata=None, layout=None, params=None): # Datashape # --------- if isinstance(dshape, basestring): dshape = _dshape(dshape) if not dshape: # The user just passed in a raw data source, try # and infer how it should be layed out or fail # back on dynamic types. self._datashape = dshape = CArraySource.infer_datashape(obj) else: # The user overlayed their custom dshape on this # data, check if it makes sense CArraySource.check_datashape(obj, given_dshape=dshape) self._datashape = dshape # Values # ------ # Mimic NumPy behavior in that we have a variety of # possible arguments to the first argument which result # in different behavior for the values. if isinstance(obj, CArraySource): self.data = obj else: self.data = CArraySource(obj, params) # children graph nodes self.children = [] self.space = Space(self.data) # Layout # ------ if layout: self._layout = layout elif not layout: self._layout = ChunkedL(self.data, cdimension=0) # Metadata # -------- self._metadata = NDArray._metaheader + (metadata or []) # Parameters # ---------- self.params = params