code: def get_file(self, key, file):
          
          self._check_valid_key(key)
          if isinstance(file, str):
              return self._get_filename(key, file)
          else:
              return self._get_file(key, file)
docs: Write contents of key to file
  
          Like :meth:`.KeyValueStore.put_file`, this method allows backends to
          implement a specialized function if data needs to be written to disk or
          streamed.
  
          If *file* is a string, contents of *key* are written to a newly
          created file with the filename *file*. Otherwise, the data will be
          written using the *write* method of *file*.
  
          :param key: The key to be read
          :param file: Output filename or an object with a *write* method.
  
          :raises exceptions.ValueError: If the key is not valid.
          :raises exceptions.IOError: If there was a problem reading or writing
                                      data.
          :raises exceptions.KeyError: If the key was not found.