docs: def file_needs_update(target_file, source_file):
      """Checks if target_file is not existing or differing from source_file
  
      :param target_file: File target for a copy action
      :param source_file: File to be copied
      :return: True, if target_file not existing or differing from source_file, else False
      :rtype: False
      """
      if not os.path.isfile(target_file) or get_md5_file_hash(target_file) != get_md5_file_hash(source_file):
          return True
      return False