code: def _parse_file_usage(cls, action_class, args):
          
  
          fixed_files = {}
          variable_files = []
  
          if not hasattr(action_class, 'FILES'):
              return fixed_files, variable_files
  
          for file_arg in action_class.FILES:
              arg_value = args.get(file_arg)
              if arg_value is None:
                  raise RecipeFileInvalid("Action lists a file argument but none was given", declared_argument=file_arg, passed_arguments=args)
  
              variables = _extract_variables(arg_value)
              if len(variables) == 0:
                  fixed_files[file_arg] = arg_value
              else:
                  variable_files.append(arg_value)
  
          return fixed_files, variable_files
docs: Find all external files referenced by an action.