class_docstr: Sequentially apply a list of transforms.
  
  Each of the individual steps in the chain must be transformers (i.e a child
  class of `TransformerBase`) which can be one of the following:
  
  - Native transformer modules in Turi Create (e.g.
    :py:class:`~turicreate.toolkits.feature_engineering._feature_hasher.FeatureHasher`).
  - User-created modules (defined by inheriting
    :py:class:`~turicreate.toolkits.feature_engineering._feature_engineering.TransformerBase`).
  
  Parameters
  ----------
  steps: list[Transformer]
      The list of transformers to be chained. A step in the chain can be
      another chain.
  
  See Also
  --------
  turicreate.toolkits.feature_engineering.create
  
  Examples
  --------
  
  .. sourcecode:: python
  
      # Create data.
      >>> sf = turicreate.SFrame({'a': [1,2,3], 'b' : [2,3,4]})
  
      # Create a chain a transformers.
      >>> from turicreate.feature_engineering import *
  
      # Create a chain of transformers.
      >>> chain = turicreate.feature_engineering.create(sf,[
                                  QuadraticFeatures(),
                                  FeatureHasher()
                                ])
  
      # Create a chain of transformers with names for each of the steps.
      >>> chain = turicreate.feature_engineering.create(sf, [
                                  ('quadratic', QuadraticFeatures()),
                                  ('hasher', FeatureHasher())
                                ])
  
      # Transform the data.
      >>> transformed_sf = chain.transform(sf)
  
      # Save the transformer.
      >>> chain.save('save-path')
  
      # Access each of the steps in the transformer by name or index
      >>> steps = chain['steps']
      >>> steps = chain['steps_by_name']
class_docstr_tok: ["Sequentially","apply","a","list","of","transforms",".","Each","of","the","individual","steps","in","the","chain","must","be","transformers","(","i.e","a","child","class","of","`","TransformerBase","`",")","which","can","be","one","of","the","following",":","-","Native","transformer","modules","in","Turi","Create","(","e.g",".",":","py",":","class",":","`","~turicreate.toolkits.feature_engineering._feature_hasher.FeatureHasher","`",")",".","-","User-created","modules","(","defined","by","inheriting",":","py",":","class",":","`","~turicreate.toolkits.feature_engineering._feature_engineering.TransformerBase","`",")",".","Parameters","--","--","--","--","--","steps",":","list","[","Transformer","]","The","list","of","transformers","to","be","chained",".","A","step","in","the","chain","can","be","another","chain",".","See","Also","--","--","--","--","turicreate.toolkits.feature_engineering.create","Examples","--","--","--","--","..","sourcecode",":",":","python","#","Create","data",".",">",">",">","sf","=","turicreate.SFrame","(","{","'","a","'",":","[","1,2,3","]",",","'","b","'",":","[","2,3,4","]","}",")","#","Create","a","chain","a","transformers",".",">",">",">","from","turicreate.feature_engineering","import","*","#","Create","a","chain","of","transformers",".",">",">",">","chain","=","turicreate.feature_engineering.create","(","sf",",","[","QuadraticFeatures","(",")",",","FeatureHasher","(",")","]",")","#","Create","a","chain","of","transformers","with","names","for","each","of","the","steps",".",">",">",">","chain","=","turicreate.feature_engineering.create","(","sf",",","[","(","'quadratic","'",",","QuadraticFeatures","(",")",")",",","(","'hasher","'",",","FeatureHasher","(",")",")","]",")","#","Transform","the","data",".",">",">",">","transformed_sf","=","chain.transform","(","sf",")","#","Save","the","transformer",".",">",">",">","chain.save","(","'save-path","'",")","#","Access","each","of","the","steps","in","the","transformer","by","name","or","index",">",">",">","steps","=","chain","[","'steps","'","]",">",">",">","steps","=","chain","[","'steps_by_name","'","]"]
docstr: Fits a transformer using the SFrame `data`.
  
  Parameters
  ----------
  data : SFrame
      The data used to fit the transformer.
  
  Returns
  -------
  self (A fitted object)
  
  See Also
  --------
  transform, fit_transform
  
  Examples
  --------
  .. sourcecode:: python
  
    >> chain = chain.fit(sf)
docstr_tok: ["Fits","a","transformer","using","the","SFrame","`","data","`",".","Parameters","--","--","--","--","--","data",":","SFrame","The","data","used","to","fit","the","transformer",".","Returns","--","--","--","-","self","(","A","fitted","object",")","See","Also","--","--","--","--","transform",",","fit_transform","Examples","--","--","--","--","..","sourcecode",":",":","python",">",">","chain","=","chain.fit","(","sf",")"]
code: def fit(self, data):
      """
      Fits a transformer using the SFrame `data`.
  
      Parameters
      ----------
      data : SFrame
          The data used to fit the transformer.
  
      Returns
      -------
      self (A fitted object)
  
      See Also
      --------
      transform, fit_transform
  
      Examples
      --------
      .. sourcecode:: python
  
        >> chain = chain.fit(sf)
      """
      if not self._transformers:
          return
  
      transformed_data = self._preprocess(data)
      final_step = self._transformers[-1]
      final_step[1].fit(transformed_data)
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import turicreate
  from turicreate.toolkits._internal_utils import _toolkit_repr_print
  from turicreate.toolkits._internal_utils import _precomputed_field
  from turicreate.util import _raise_error_if_not_of_type
  from .None import _internal_utils
  from ._feature_engineering import TransformerBase
  from ._feature_engineering import Transformer
  from copy import copy
  import inspect
  import sys
label_desc: Use image node_id 7 for calling the TransformerChain obj's underlying member method code with example usage: obj.fit(data) without return types