code: def list_files(self):
          
  
          files = []
          for dirpath, dirnames, filenames in os.walk(self.path):
              for filename in filenames:
                  if not filename.endswith(".ghost"):
                      path = os.path.relpath(dirpath, self.path)
                      path = os.path.join(path, filename)
                      path = os.path.normpath(path)
                      file_info = {"path": path}
  
                      try:
                          file_info["md5sum"] = yield from wait_run_in_executor(self._hash_file, os.path.join(dirpath, filename))
                      except OSError:
                          continue
                      files.append(file_info)
  
          return files
docs: :returns: Array of files in project without temporary files. The files are dictionary {"path": "test.bin", "md5sum": "aaaaa"}