class_docstr: File-based Code Driver handles source control management for the project with files
      
class_docstr_tok: ["File-based","Code","Driver","handles","source","control","management","for","the","project","with","files"]
code: def __init__(self, root, datmo_directory_name):
      super(FileCodeDriver, self).__init__()
      self.root = root
      # Check if filepath exists
      if not os.path.exists(self.root):
          raise PathDoesNotExist(
              __(
                  "error",
                  "controller.code.driver.git.__init__.dne",
                  root,
              )
          )
      self._datmo_directory_name = datmo_directory_name
      self._datmo_directory_path = os.path.join(
          self.root, self._datmo_directory_name
      )
      self._code_filepath = os.path.join(
          self._datmo_directory_path, "code"
      )
      self._datmo_ignore_filepath = os.path.join(
          self.root, ".datmoignore"
      )
      self._is_initialized = self.is_initialized
      self.type = "file"
  
imports: import os
  import shutil
  import errno
  import pathspec
  import tempfile
  import hashlib
  import checksumdir
  from datmo.core.util.misc_functions import list_all_filepaths
  from datmo.core.util.i18n import get
  from datmo.core.util.exceptions import PathDoesNotExist, FileIOError, UnstagedChanges, CodeNotInitialized, CommitDoesNotExist
  from datmo.core.controller.code.driver import CodeDriver
label_desc: Use image node_id 1 to create a new FileCodeDriver object from inherited base classes: CodeDriver with example: obj = FileCodeDriver(root, datmo_directory_name)