<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def list_files(suffix=""):
 """ Returns a list of all files in CleverHans with the given suffix. Parameters suffix : str Returns ------- file_list : list A list of all files in CleverHans whose filepath ends with `suffix`. """


  cleverhans_path = os.path.abspath(cleverhans.__path__[0])
  # In some environments cleverhans_path does not point to a real directory.
  # In such case return empty list.
  if not os.path.isdir(cleverhans_path):
    return []
  repo_path = os.path.abspath(os.path.join(cleverhans_path, os.pardir))
  file_list = _list_files(cleverhans_path, suffix)

  extra_dirs = ['cleverhans_tutorials', 'examples', 'scripts', 'tests_tf', 'tests_pytorch']

  for extra_dir in extra_dirs:
    extra_path = os.path.join(repo_path, extra_dir)
    if os.path.isdir(extra_path):
      extra_files = _list_files(extra_path, suffix)
      extra_files = [os.path.join(os.pardir, path) for path in extra_files]
      file_list = file_list + extra_files

  return file_list