class_docstr: CodeDriver is the parent of all code drivers. Any child must implement the methods below
  
  Methods
  -------
  create_ref()
      add remaining files, make a commit and add to datmo ref
  exists_ref()
      check if commit reference exists
  delete_ref()
      delete commit reference if exists
  list_refs()
      list all commit references
  push_ref()
      push commit reference given
  fetch_ref()
      fetch commit reference given
  check_unstaged_changes()
      check if there exists any unstaged changes for code
  checkout_ref()
      checkout to commit reference given
class_docstr_tok: ["CodeDriver","is","the","parent","of","all","code","drivers",".","Any","child","must","implement","the","methods","below","Methods","--","--","--","-","create_ref","(",")","add","remaining","files",",","make","a","commit","and","add","to","datmo","ref","exists_ref","(",")","check","if","commit","reference","exists","delete_ref","(",")","delete","commit","reference","if","exists","list_refs","(",")","list","all","commit","references","push_ref","(",")","push","commit","reference","given","fetch_ref","(",")","fetch","commit","reference","given","check_unstaged_changes","(",")","check","if","there","exists","any","unstaged","changes","for","code","checkout_ref","(",")","checkout","to","commit","reference","given"]
docstr: Get the current hash or commit id of the code if not unstaged
  
  Returns
  -------
  hash : str
      the hash of the code or commit id only if it has already been created
  
  Raises
  ------
  UnstagedChanges
      does not proceed to return hash unless the changes are already staged
docstr_tok: ["Get","the","current","hash","or","commit","id","of","the","code","if","not","unstaged","Returns","--","--","--","-","hash",":","str","the","hash","of","the","code","or","commit","id","only","if","it","has","already","been","created","Raises","--","--","--","UnstagedChanges","does","not","proceed","to","return","hash","unless","the","changes","are","already","staged"]
code: def current_hash(self):
      """Get the current hash or commit id of the code if not unstaged
  
      Returns
      -------
      hash : str
          the hash of the code or commit id only if it has already been created
  
      Raises
      ------
      UnstagedChanges
          does not proceed to return hash unless the changes are already staged
      """
  
file_path: datmo/datmo/core/controller/code/driver/__init__.py
imports: from abc import ABCMeta, abstractmethod
  from future.utils import with_metaclass
label_desc: Use image node_id 2 for calling the CodeDriver obj's underlying member method code with example usage: obj.current_hash() without return types