code: def fit_transform(
          self,
          X,
          projection="sum",
          scaler=preprocessing.MinMaxScaler(),
          distance_matrix=False,
      ):
          
  
          projections = projection
          scalers = scaler
          distance_matrices = distance_matrix
  
          # Turn single projection arguments into a pipeline
          if isinstance(projection, list) and isinstance(projection[0], int):
              projections = [projection]
  
          if not isinstance(projection, list):
              projections = [projection]
  
          # Turn single scaler arguments into a pipeline
          if not isinstance(scaler, list):
              scalers = [scaler]
  
          # Turn single distance matrix arguments into a pipeline
          if not isinstance(distance_matrix, list):
              distance_matrices = [distance_matrix]
  
          # set defaults to first list item, if not (correctly) set by the user
          if len(scalers) != len(projections):
              scalers = [scalers[0]] * len(projections)
  
          if len(distance_matrices) != len(projections):
              distance_matrices = [distance_matrices[0]] * len(projections)
  
          if self.verbose > 0:
              print("..Composing projection pipeline of length %s:" % (len(projections)))
              print("\tProjections: %s" % ("\n\t\t".join(map(str, projections))))
              print("\tDistance matrices: %s" % ("\n".join(map(str, distance_matrices))))
              print("\tScalers: %s" % ("\n".join(map(str, scalers))))
  
          # Pipeline Stack the projection functions
          lens = X
          for projection, scaler, distance_matrix in zip(
              projections, scalers, distance_matrices
          ):
              lens = self.project(
                  lens,
                  projection=projection,
                  scaler=scaler,
                  distance_matrix=distance_matrix,
              )
  
          return lens
docs: Same as .project() but accepts lists for arguments so you can chain.