code: def __recursive_transform(self, jam, steps):
          '''A recursive transformation pipeline'''
  
          if len(steps) > 0:
              head_transformer = steps[0][1]
              for t_jam in head_transformer.transform(jam):
                  for q in self.__recursive_transform(t_jam, steps[1:]):
                      yield q
          else:
              yield jaf __recursive_transform(self, jam, steps):
          '''A recursive transformation pipeline'''
  
          if len(steps) > 0:
              head_transformer = steps[0][1]
              for t_jam in head_transformer.transform(jam):
                  for q in self.__recursive_transform(t_jam, steps[1:]):
                      yield q
          else:
              yield jam
docs: A recursive transformation pipeline