"{}={}".format(i, r) for i, r in zip(self._params, [sbs.Range.dim_to_string(d) for d in self._range]) ]) + "]" def validate(self, sdfg, state, node): if not data.validate_name(self.label): raise NameError('Invalid map name "%s"' % self.label) def get_param_num(self): """ Returns the number of map dimension parameters/symbols. """ return len(self.params) # Indirect Map properties to MapEntry and MapExit MapEntry = indirect_properties(Map, lambda obj: obj.map)(MapEntry) MapExit = indirect_properties(Map, lambda obj: obj.map)(MapExit) # ------------------------------------------------------------------------------ class ConsumeEntry(EntryNode): """ Node that opens a Consume scope. @see: Consume """ def __init__(self, consume, dynamic_inputs=set()): super(ConsumeEntry, self).__init__(dynamic_inputs) if consume is None: raise ValueError("Consume for ConsumeEntry can not be None.") self._consume = consume self._map_depth = 0
return self.label + "[" + ", ".join([ "{}={}".format(i, r) for i, r in zip( self._params, [sbs.Range.dim_to_string(d) for d in self._range]) ]) + "]" def validate(self, sdfg, state, node): if not dtypes.validate_name(self.label): raise NameError('Invalid map name "%s"' % self.label) def get_param_num(self): """ Returns the number of map dimension parameters/symbols. """ return len(self.params) # Indirect Map properties to MapEntry and MapExit MapEntry = indirect_properties(Map, lambda obj: obj.map)(MapEntry) # ------------------------------------------------------------------------------ @dace.serialize.serializable class ConsumeEntry(EntryNode): """ Node that opens a Consume scope. @see: Consume """ def __init__(self, consume, dynamic_inputs=None): super(ConsumeEntry, self).__init__(dynamic_inputs or set()) if consume is None: raise ValueError("Consume for ConsumeEntry can not be None.") self._consume = consume self.add_in_connector('IN_stream')