code: def multi_ops(data_stream, *funcs):
      
  
      assert all(callable(func) for func in funcs), 'multi_ops can only apply functions to the first argument'
      assert len(funcs), 'multi_ops needs at least one function to apply to data_stream'
  
      for i in data_stream:
          if len(funcs) > 1:
              yield tuple(func(i) for func in funcs)
          elif len(funcs) == 1:
              yield funcs[0](i)
docs: fork a generator with multiple operations/functions
  
          data_stream  -  an iterable data structure (ie: list/generator/tuple)
          funcs        -  every function that will be applied to the data_stream