code: def _get_file_hashes(self, files):
      retval = {}
      for k, v in six.iteritems(files):
          if "://" in v:
              tmpfilename = os.path.join(
                  tempfile.gettempdir(), rand_string(10)
              )
              download_file(v, tmpfilename)
              retval[k] = filehash(tmpfilename)
              os.remove(tmpfilename)
          else:
              retval[k] = filehash(v)
  
      return retval
  
imports: import uuid
  import random
  import unittest
  import os
  import hashlib
  import six
  import tempfile
  from timeout_decorator import timeout
  from .completion_service import CompletionService
  from studio.extra_util import has_aws_credentials
  from studio.util.util import rand_string, filehash
  from studio.storage.storage_util import download_file
label_desc: Use image node_id 4 for calling the CompletionServiceTest obj's underlying member method code with example usage: obj._get_file_hashes(files) and returns: retval