code: def list(all=False):
      models = []
      for key in REPO:
          name = key
          type = REPO[key]["type"]
          license = REPO[key]["license"]
          year = REPO[key]["year"]
          directory = (
              Path(REPO[key]["cache_dir"]) / REPO[key]["model_path"]
          )
          if not all:
              if license == "Close":
                  continue
          if license == "Close":
              license = "Close*"
          models.append([name, type, license, year, directory])
  
      print_table(
          models,
          headers=["Name", "Type", "License", "Year", "Directory"],
      )
  
      if all:
          print(f"\n{MISS_URL_ERROR}")
  
file_path: underthesea/underthesea/model_fetcher.py
imports: import os
  import shutil
  import zipfile
  from enum import Enum
  from os.path import dirname, join
  from pathlib import Path
  import yaml
  from underthesea.file_utils import cached_path, UNDERTHESEA_FOLDER
  from underthesea.utils import print_table
label_desc: Use image node_id 3 for calling the ModelFetcher obj's underlying member method code with example usage: obj.list(all) without return types