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 _get_filehash(absolute_filepath):
      if not os.path.isfile(absolute_filepath):
          raise PathDoesNotExist(
              __(
                  "error",
                  "util.misc_functions.get_filehash",
                  absolute_filepath,
              )
          )
      BUFF_SIZE = 65536
      sha1 = hashlib.md5()
      with open(absolute_filepath, "rb") as f:
          while True:
              data = f.read(BUFF_SIZE)
              if not data:
                  break
              sha1.update(data)
      return sha1.hexdigest()
  
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 6 for calling the FileCodeDriver obj's underlying member method code with example usage: obj._get_filehash(absolute_filepath) and returns: sha1