コード例 #1
0
ファイル: joinbolt.py プロジェクト: nlu90/heron
 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")
     }
コード例 #2
0
    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)
コード例 #3
0
ファイル: stream_unittest.py プロジェクト: ashvina/heron
  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)
コード例 #4
0
 def _calculate_inputs(self):
     return {
         GlobalStreamId(self._parent.get_name(), self._parent._output):
         Grouping.custom(
             "heronpy.streamlet.impl.reducebykeyandwindowbolt.ReduceGrouping"
         )
     }
コード例 #5
0
    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))
コード例 #6
0
ファイル: stream_unittest.py プロジェクト: ashvina/heron
  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))
コード例 #7
0
 def _calculate_inputs(self):
     return {
         GlobalStreamId(self._parent.get_name(), self._parent._output):
         Grouping.custom(
             RepartitionCustomGrouping(self._repartition_function))
     }
コード例 #8
0
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})
コード例 #9
0
 def _calculate_inputs(self):
     return {
         GlobalStreamId(self._parents[0]._stage_name, self._parents[0]._output):
         Grouping.custom(
             "heronpy.dsl.reducebykeyandwindowbolt.ReduceGrouping")
     }
コード例 #10
0
 def _calculate_inputs(self):
   return {GlobalStreamId(self._parent.get_name(), self._parent._output) :
           Grouping.custom("heronpy.streamlet.impl.reducebykeyandwindowbolt.ReduceGrouping")}
コード例 #11
0
 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
コード例 #12
0
ファイル: joinbolt.py プロジェクト: ashvina/heron
 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")}
コード例 #13
0
ファイル: repartitionbolt.py プロジェクト: lucperkins/heron
 def _calculate_inputs(self):
   return {GlobalStreamId(self._parent.get_name(), self._parent._output) :
           Grouping.custom(RepartitionCustomGrouping(self._repartition_function))}