code: def _step(self):
          
  
          # Pull and check data
          input_bag = self._get()
  
          # Sent through the stack
          results = self._stack(input_bag)
  
          # self._exec_time += timer.duration
          # Put data onto output channels
  
          if isinstance(results, GeneratorType):
              while True:
                  try:
                      # if kill flag was step, stop iterating.
                      if self._killed:
                          break
                      result = next(results)
                  except StopIteration:
                      # That's not an error, we're just done.
                      break
                  else:
                      # Push data (in case of an iterator)
                      self._put(self._cast(input_bag, result))
          elif results:
              # Push data (returned value)
              self._put(self._cast(input_bag, results))
          else:
              # case with no result, an execution went through anyway, use for stats.
              # self._exec_count += 1
              pass
docs: A single step in the loop.
  
          Basically gets an input bag, send it to the node, interpret the results.