code: def evaluate(self, sequence, transformations):
          
          result = sequence
          parallel = partial(
              parallelize, processes=self.processes, partition_size=self.partition_size)
          staged = []
          for transform in transformations:
              strategies = transform.execution_strategies or {}
              if ExecutionStrategies.PARALLEL in strategies:
                  staged.insert(0, transform.function)
              else:
                  if staged:
                      result = parallel(compose(*staged), result)
                      staged = []
                  if ExecutionStrategies.PRE_COMPUTE in strategies:
                      result = list(result)
                  result = transform.function(result)
          if staged:
              result = parallel(compose(*staged), result)
          return iter(result)
docs: Execute the sequence of transformations in parallel
          :param sequence: Sequence to evaluation
          :param transformations: Transformations to apply
          :return: Resulting sequence or value