class_docstr: BaseController is used to setup the repository. It serves as the basis for all other Controller objects
  
  Parameters
  ----------
  home : str, optional
      directory for the project, default is to pull from config
  
  Attributes
  ----------
  home : str
      absolute filepath for the location of the project
  config : JSONStore
      this is the set of configurations used to create a project
  dal : datmo.core.storage.DAL
  model : datmo.core.entity.model.Model
  code_driver : datmo.core.controller.code.driver.CodeDriver
  file_driver : datmo.core.controller.file.driver.FileDriver
  environment_driver : datmo.core.controller.environment.driver.EnvironmentDriver
  is_initialized : bool
  
  Methods
  -------
  dal_instantiate()
      Instantiate a version of the DAL
  set_config_value(key, default_value)
      Returns value adn sets to default if no value present
  config_loader(key)
      Return the config dictionary based on key
  get_config_defaults()
      Return the configuration defaults
class_docstr_tok: ["BaseController","is","used","to","setup","the","repository",".","It","serves","as","the","basis","for","all","other","Controller","objects","Parameters","--","--","--","--","--","home",":","str",",","optional","directory","for","the","project",",","default","is","to","pull","from","config","Attributes","--","--","--","--","--","home",":","str","absolute","filepath","for","the","location","of","the","project","config",":","JSONStore","this","is","the","set","of","configurations","used","to","create","a","project","dal",":","datmo.core.storage.DAL","model",":","datmo.core.entity.model.Model","code_driver",":","datmo.core.controller.code.driver.CodeDriver","file_driver",":","datmo.core.controller.file.driver.FileDriver","environment_driver",":","datmo.core.controller.environment.driver.EnvironmentDriver","is_initialized",":","bool","Methods","--","--","--","-","dal_instantiate","(",")","Instantiate","a","version","of","the","DAL","set_config_value","(","key",",","default_value",")","Returns","value","adn","sets","to","default","if","no","value","present","config_loader","(","key",")","Return","the","config","dictionary","based","on","key","get_config_defaults","(",")","Return","the","configuration","defaults"]
code: def dal(self):
      if self._dal == None:
          dal_dict = self.config_loader("storage.local")
          self._dal = dal_dict["constructor"](**dal_dict["options"])
      return self._dal
  
file_path: datmo/datmo/core/controller/base.py
imports: import os
  from datmo.core.util.i18n import get
  from datmo.core.util.logger import DatmoLogger
  from datmo.core.util import get_class_contructor
  from datmo.core.util.json_store import JSONStore
  from datmo.core.util.exceptions import InvalidProjectPath
  from datmo.config import Config
label_desc: Use image node_id 3 for calling the BaseController obj's underlying member method code with example usage: obj.dal() and returns: self