class_docstr: A class for generating synthetic time series data that undergoes
  fundamental changes to it's behavior that certain points in time.
  For example, with this class one could generate a time series that begins
  as linear and then becomes stationary.
  
  For example, let f = 0 with for 3 steps 0,1,2 and g = 2 * x for the next three
  steps 3,4,5. generate() returns:
  
  - [0, 0, 0, 6, 8, 10] if string_outputs is False
  - [0, 0, 0, 2, 4, 6]  if string_outputs is True.
class_docstr_tok: ["A","class","for","generating","synthetic","time","series","data","that","undergoes","fundamental","changes","to","it","'s","behavior","that","certain","points","in","time",".","For","example",",","with","this","class","one","could","generate","a","time","series","that","begins","as","linear","and","then","becomes","stationary",".","For","example",",","let","f","=","0","with","for","3","steps","0,1,2","and","g","=","2","*","x","for","the","next","three","steps","3,4,5.","generate","(",")","returns",":","-","[","0",",","0",",","0",",","6",",","8",",","10","]","if","string_outputs","is","False","-","[","0",",","0",",","0",",","2",",","4",",","6","]","if","string_outputs","is","True","."]
docstr: Sets the generators for the GeneratorSequence.
  
  :param generators: The list of generators to set. Note that the
      individual generators `step` and `x0` attributes will be overriden
      by the `step` and `x0` belonging to the GeneratorSequence.
docstr_tok: ["Sets","the","generators","for","the","GeneratorSequence",".",":","param","generators",":","The","list","of","generators","to","set",".","Note","that","the","individual","generators","`","step","`","and","`","x0","`","attributes","will","be","overriden","by","the","`","step","`","and","`","x0","`","belonging","to","the","GeneratorSequence","."]
code: def generators(self, generators: List[TimeSeriesGenerator]):
      """
      Sets the generators for the GeneratorSequence.
  
      :param generators: The list of generators to set. Note that the
          individual generators `step` and `x0` attributes will be overriden
          by the `step` and `x0` belonging to the GeneratorSequence.
      """
      for i, generator in enumerate(generators):
          if not self.per_generator_noise:
              generator.noise = self.noise
              generator.distort = self.distort
          if i == 0:
              generator.x0 = self.x0
              self.n = generator.n
          elif i > 0:
              generator.x0 = self.x0 + self.n * self.step
              self.n += generator.n
          generator.step = self.step
      self._generators = generators
  
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 2 for calling the GeneratorConcatenator obj's underlying member method code with example usage: obj.generators(generators) without return types