class_docstr: Creates a "future" reference to a value within an implicit dictionary that
  will be passed to applyValueGettersToContainer() in the future (typically
  called by description.py after its config dictionary has been updated from
  the sub-experiment). The reference is relative to the dictionary that will
  be passed to applyValueGettersToContainer()
class_docstr_tok: ["Creates","a","``","future","''","reference","to","a","value","within","an","implicit","dictionary","that","will","be","passed","to","applyValueGettersToContainer","(",")","in","the","future","(","typically","called","by","description.py","after","its","config","dictionary","has","been","updated","from","the","sub-experiment",")",".","The","reference","is","relative","to","the","dictionary","that","will","be","passed","to","applyValueGettersToContainer","(",")"]
docstr:   dictKeyChain: One or more strings; the first string is a key (that will
                  eventually be defined) in the dictionary that will be passed
                  to applyValueGettersToContainer(). If additional strings are
                  supplied, then the values correspnding to prior key strings
                  must be dictionaries, and each additionl string references a
                  sub-dictionary of the former. The final string is the key of
                  the field whose value will be returned by this value-getter
  
    NOTE: its possible that the referenced value does not yet exist at the
          time of instantiation of this class.  It will be resolved when the
          base description.py calls applyValueGettersToContainer().
  
  
  Example:
    config = dict(
      _dsEncoderFieldName2_N = 70,
      _dsEncoderFieldName2_W = 5,
  
      dsEncoderSchema = [
        dict(
          base=dict(
            fieldname='Name2', type='ScalarEncoder',
            name='Name2', minval=0, maxval=270, clipInput=True,
            n=DeferredDictLookup('_dsEncoderFieldName2_N'),
            w=DeferredDictLookup('_dsEncoderFieldName2_W')),
          ),
        ],
    )
  
    updateConfigFromSubConfig(config)
    applyValueGettersToContainer(config)
docstr_tok: ["dictKeyChain",":","One","or","more","strings",";","the","first","string","is","a","key","(","that","will","eventually","be","defined",")","in","the","dictionary","that","will","be","passed","to","applyValueGettersToContainer","(",")",".","If","additional","strings","are","supplied",",","then","the","values","correspnding","to","prior","key","strings","must","be","dictionaries",",","and","each","additionl","string","references","a","sub-dictionary","of","the","former",".","The","final","string","is","the","key","of","the","field","whose","value","will","be","returned","by","this","value-getter","NOTE",":","its","possible","that","the","referenced","value","does","not","yet","exist","at","the","time","of","instantiation","of","this","class",".","It","will","be","resolved","when","the","base","description.py","calls","applyValueGettersToContainer","(",")",".","Example",":","config","=","dict","(","_dsEncoderFieldName2_N","=","70",",","_dsEncoderFieldName2_W","=","5",",","dsEncoderSchema","=","[","dict","(","base=dict","(","fieldname='Name2","'",",","type='ScalarEncoder","'",",","name='Name2","'",",","minval=0",",","maxval=270",",","clipInput=True",",","n=DeferredDictLookup","(","'_dsEncoderFieldName2_N","'",")",",","w=DeferredDictLookup","(","'_dsEncoderFieldName2_W","'",")",")",",",")",",","]",",",")","updateConfigFromSubConfig","(","config",")","applyValueGettersToContainer","(","config",")"]
code: def __init__(self, *dictKeyChain):
      """
        dictKeyChain: One or more strings; the first string is a key (that will
                      eventually be defined) in the dictionary that will be passed
                      to applyValueGettersToContainer(). If additional strings are
                      supplied, then the values correspnding to prior key strings
                      must be dictionaries, and each additionl string references a
                      sub-dictionary of the former. The final string is the key of
                      the field whose value will be returned by this value-getter
  
        NOTE: its possible that the referenced value does not yet exist at the
              time of instantiation of this class.  It will be resolved when the
              base description.py calls applyValueGettersToContainer().
  
  
      Example:
        config = dict(
          _dsEncoderFieldName2_N = 70,
          _dsEncoderFieldName2_W = 5,
  
          dsEncoderSchema = [
            dict(
              base=dict(
                fieldname='Name2', type='ScalarEncoder',
                name='Name2', minval=0, maxval=270, clipInput=True,
                n=DeferredDictLookup('_dsEncoderFieldName2_N'),
                w=DeferredDictLookup('_dsEncoderFieldName2_W')),
              ),
            ],
        )
  
        updateConfigFromSubConfig(config)
        applyValueGettersToContainer(config)
      """
  
      # Invoke base (DictValueGetter constructor), passing None for referenceDict,
      # which will force it use the dictionary passed via
      # applyValueGettersToContainer(), instead.
      DictValueGetter.__init__(self, None, *dictKeyChain)
  
file_path: nupic-legacy/src/nupic/frameworks/opf/exp_description_helpers.py
imports: import os
  import imp
  from nupic.data.dict_utils import rUpdate
label_desc: Use image node_id 1 to create a new DeferredDictLookup object from inherited base classes: DictValueGetter with example: obj = DeferredDictLookup()