class_docstr: A class for generating synthetic time series by composing
  other TimeSeriesGenerator's.
class_docstr_tok: ["A","class","for","generating","synthetic","time","series","by","composing","other","TimeSeriesGenerator","'s","."]
docstr: Sets the generators for the GeneratorSequence.
  
  :param generators: The list of generators to set. Note that generators'
      attributes related to forming `steps` will not be relevant.
docstr_tok: ["Sets","the","generators","for","the","GeneratorSequence",".",":","param","generators",":","The","list","of","generators","to","set",".","Note","that","generators'","attributes","related","to","forming","`","steps","`","will","not","be","relevant","."]
code: def generators(self, generators: List[TimeSeriesGenerator]):
      """
      Sets the generators for the GeneratorSequence.
  
      :param generators: The list of generators to set. Note that generators'
          attributes related to forming `steps` will not be relevant.
      """
      if self.per_generator_noise:
          self.noise = lambda: 0
      else:
          for generator in generators:
              generator.noise = lambda: 0
      self.f = reduce(
          lambda f, g: lambda x: f(g(x)),
          [g.f for g in generators],
          lambda x: x,
      )
  
imports: import numpy
  import pandas
  from operator import add
  from functools import reduce
  from typing import Callable, List, Union
  from merlion.utils.time_series import UnivariateTimeSeries, TimeSeries
label_desc: Use image node_id 3 for calling the GeneratorComposer obj's underlying member method code with example usage: obj.generators(generators) without return types