def _calculate_inputs(self): return { GlobalStreamId(self._left.get_name(), self._left._output): Grouping.custom("heronpy.streamlet.impl.joinbolt.JoinGrouping"), GlobalStreamId(self._right.get_name(), self._right._output): Grouping.custom("heronpy.streamlet.impl.joinbolt.JoinGrouping") }
def test_custom(self): # sane sane = Grouping.custom(DummyCustomGrouping()) self.assertEqual(sane.gtype, topology_pb2.Grouping.Value("CUSTOM")) self.assertTrue(isinstance(sane.python_serialized, bytes)) # arg not string with self.assertRaises(TypeError): Grouping.custom(None) with self.assertRaises(TypeError): Grouping.custom(True)
def test_custom(self): # sane sane = Grouping.custom(DummyCustomGrouping()) self.assertEqual(sane.gtype, topology_pb2.Grouping.Value("CUSTOM")) self.assertTrue(isinstance(sane.python_serialized, bytes)) # arg not string with self.assertRaises(TypeError): Grouping.custom(None) with self.assertRaises(TypeError): Grouping.custom(True)
def _calculate_inputs(self): return { GlobalStreamId(self._parent.get_name(), self._parent._output): Grouping.custom( "heronpy.streamlet.impl.reducebykeyandwindowbolt.ReduceGrouping" ) }
def test_is_grouping_sane(self): self.assertTrue(Grouping.is_grouping_sane(Grouping.ALL)) self.assertTrue(Grouping.is_grouping_sane(Grouping.SHUFFLE)) self.assertTrue(Grouping.is_grouping_sane(Grouping.LOWEST)) self.assertTrue(Grouping.is_grouping_sane(Grouping.NONE)) self.assertFalse(Grouping.is_grouping_sane(Grouping.FIELDS)) sane_fields = Grouping.fields(['hello', 'world']) self.assertTrue(Grouping.is_grouping_sane(sane_fields)) self.assertFalse(Grouping.is_grouping_sane(Grouping.CUSTOM)) sane_custom = Grouping.custom(DummyCustomGrouping()) self.assertTrue(Grouping.is_grouping_sane(sane_custom))
def test_is_grouping_sane(self): self.assertTrue(Grouping.is_grouping_sane(Grouping.ALL)) self.assertTrue(Grouping.is_grouping_sane(Grouping.SHUFFLE)) self.assertTrue(Grouping.is_grouping_sane(Grouping.LOWEST)) self.assertTrue(Grouping.is_grouping_sane(Grouping.NONE)) self.assertFalse(Grouping.is_grouping_sane(Grouping.FIELDS)) sane_fields = Grouping.fields(['hello', 'world']) self.assertTrue(Grouping.is_grouping_sane(sane_fields)) self.assertFalse(Grouping.is_grouping_sane(Grouping.CUSTOM)) sane_custom = Grouping.custom(DummyCustomGrouping()) self.assertTrue(Grouping.is_grouping_sane(sane_custom))
def _calculate_inputs(self): return { GlobalStreamId(self._parent.get_name(), self._parent._output): Grouping.custom( RepartitionCustomGrouping(self._repartition_function)) }
class CustomGrouping(Topology): word_spout = WordSpout.spec(par=1) consume_bolt = ConsumeBolt.spec(par=3, inputs={word_spout: Grouping.custom(SampleCustomGrouping())}, config={constants.TOPOLOGY_TICK_TUPLE_FREQ_SECS: 10})
def _calculate_inputs(self): return { GlobalStreamId(self._parents[0]._stage_name, self._parents[0]._output): Grouping.custom( "heronpy.dsl.reducebykeyandwindowbolt.ReduceGrouping") }
def _calculate_inputs(self): return {GlobalStreamId(self._parent.get_name(), self._parent._output) : Grouping.custom("heronpy.streamlet.impl.reducebykeyandwindowbolt.ReduceGrouping")}
def _calculate_inputs(self): inputs = {} for parent in self._parents: inputs[GlobalStreamId(parent._stage_name, parent._output)] = \ Grouping.custom("heronpy.dsl.joinbolt.JoinGrouping") return inputs
def _calculate_inputs(self): return {GlobalStreamId(self._left.get_name(), self._left._output) : Grouping.custom("heronpy.streamlet.impl.joinbolt.JoinGrouping"), GlobalStreamId(self._right.get_name(), self._right._output) : Grouping.custom("heronpy.streamlet.impl.joinbolt.JoinGrouping")}
def _calculate_inputs(self): return {GlobalStreamId(self._parent.get_name(), self._parent._output) : Grouping.custom(RepartitionCustomGrouping(self._repartition_function))}