docstr: base class for models to be used with OUQ classes
  
  Input:
      id: string, unique id for model instance [default: '']
  
  Additional Input:
      cached: bool, if True, use a mystic.cache [default: False]
  
  NOTE:
      if cached is True, the default is to create a klepto.dir_archive
      using the name of the model; alternately, an archive can be specified
      by passing an archive instance (or string name) to the cached keyword.
      
docstr_tok: ["base","class","for","models","to","be","used","with","OUQ","classes","Input",":","id",":","string",",","unique","id","for","model","instance","[","default",":","``","]","Additional","Input",":","cached",":","bool",",","if","True",",","use","a","mystic.cache","[","default",":","False","]","NOTE",":","if","cached","is","True",",","the","default","is","to","create","a","klepto.dir_archive","using","the","name","of","the","model",";","alternately",",","an","archive","can","be","specified","by","passing","an","archive","instance","(","or","string","name",")","to","the","cached","keyword","."]
code: def __init__(
      self, id=None, **kwds
  ):  # XXX: take 'map' now in sample(map)?
      """base class for models to be used with OUQ classes
  
      Input:
          id: string, unique id for model instance [default: '']
  
      Additional Input:
          cached: bool, if True, use a mystic.cache [default: False]
  
      NOTE:
          if cached is True, the default is to create a klepto.dir_archive
          using the name of the model; alternately, an archive can be specified
          by passing an archive instance (or string name) to the cached keyword.
      """  # FIXME: allow cached to take archive (instance or possibly name)
      # HACK: ok=True enables __init__ to be called (for super-like usage)
      if not kwds.pop("ok", False) or not hasattr(self, "__name__"):
          msg = "use a derived class (e.g. WrapModel)"
          raise NotImplementedError(msg)
      self.__init_name()
      # FIXME: make sure model has 'axis' kwd here
      cached = kwds.pop("cached", False)
      if cached is False:
          self.__kwds__["cached"] = False
      else:
          self.__kwds__["cached"] = cached
          self.__init_cache()
      if not hasattr(self, "__func__"):
          self.__init_func()
      return
  
label_desc: Use image node_id 1 to create a new OUQModel object from inherited base classes: object with example: obj = OUQModel(id)