code: def add_install_defaults(args):
      
      # Ensure we install data if we've specified any secondary installation targets
      if len(args.genomes) > 0 or len(args.aligners) > 0 or len(args.datatarget) > 0:
          args.install_data = True
      install_config = _get_install_config()
      if install_config is None or not utils.file_exists(install_config):
          default_args = {}
      else:
          with open(install_config) as in_handle:
              default_args = yaml.safe_load(in_handle)
      # if we are upgrading to development, also upgrade the tools
      if args.upgrade in ["development"] and (args.tooldir or "tooldir" in default_args):
          args.tools = True
      if args.tools and args.tooldir is None:
          if "tooldir" in default_args:
              args.tooldir = str(default_args["tooldir"])
          else:
              raise ValueError("Default tool directory not yet saved in config defaults. "
                               "Specify the '--tooldir=/path/to/tools' to upgrade tools. "
                               "After a successful upgrade, the '--tools' parameter will "
                               "work for future upgrades.")
      for attr in ["genomes", "aligners"]:
          # don't upgrade default genomes if a genome was specified
          if attr == "genomes" and len(args.genomes) > 0:
              continue
          for x in default_args.get(attr, []):
              x = str(x)
              new_val = getattr(args, attr)
              if x not in getattr(args, attr):
                  new_val.append(x)
              setattr(args, attr, new_val)
      args = _datatarget_defaults(args, default_args)
      if "isolate" in default_args and args.isolate is not True:
          args.isolate = default_args["isolate"]
      return args
docs: Add any saved installation defaults to the upgrade.