code: def test_install_skip_list_arguments(
      src=None, path=None, path_outside=None
  ):
      _mk_submodule_annex(
          src, fname="test-annex.dat", fcontent="whatever"
      )
  
      ds = install(path, source=src)
      ok_(ds.is_installed())
  
      # install a list with valid and invalid items:
      result = ds.install(
          path=["subm 1", "not_existing", path_outside, "2"],
          get_data=False,
          on_failure="ignore",
          result_xfm=None,
          return_type="list",
      )
      # good and bad results together
      ok_(isinstance(result, list))
      eq_(len(result), 4)
      # check that we have an 'impossible/error' status for both invalid args
      # but all the other tasks have been accomplished
      assert_result_count(
          result,
          1,
          status="impossible",
          message="path does not exist",
          path=opj(ds.path, "not_existing"),
      )
      assert_result_count(
          result,
          1,
          status="error",
          message=("path not associated with dataset %s", ds),
          path=path_outside,
      )
      for sub in [
          Dataset(opj(path, "subm 1")),
          Dataset(opj(path, "2")),
      ]:
          assert_result_count(
              result,
              1,
              status="ok",
              message=(
                  "Installed subdataset in order to get %s",
                  sub.path,
              ),
          )
          ok_(sub.is_installed())
  
      # return of get is always a list, by default, even if just one thing was gotten
      # in this case 'subm1' was already obtained above, so this will get this
      # content of the subdataset
      with assert_raises(IncompleteResultsError) as cme:
          ds.install(path=["subm 1", "not_existing"])
      with assert_raises(IncompleteResultsError) as cme:
          ds.get(path=["subm 1", "not_existing"])
  
imports: import logging
  import os
  from os.path import basename, dirname, exists, isdir
  from os.path import join
  from unittest.mock import patch
  import pytest
  from datalad import cfg
  from datalad.api import create, get, install
  from datalad.cmd import WitlessRunner
  from datalad.interface.results import YieldDatasets
  from datalad.support import path
  from datalad.support.annexrepo import AnnexRepo
  from datalad.support.exceptions import IncompleteResultsError, InsufficientArgumentsError
  from datalad.support.gitrepo import GitRepo
  from datalad.support.network import get_local_file_url
  from datalad.tests.utils_testdatasets import _make_dataset_hierarchy, _mk_submodule_annex
  from datalad.tests.utils_pytest import DEFAULT_BRANCH, DEFAULT_REMOTE, assert_false, assert_in, assert_in_results, assert_is_instance, assert_not_in, assert_raises, assert_repo_status, assert_result_count, assert_status, create_tree, eq_, get_datasets_topdir, integration, known_failure_githubci_win, known_failure_windows, ok_, ok_file_has_content, ok_startswith, put_file_under_git, serve_path_via_http, skip_if_no_network, skip_if_on_windows, skip_ssh, slow, swallow_logs, use_cassette, usecase, with_tempfile, with_tree
  from datalad.utils import Path, _path_, chpwd, getpwd, on_windows, rmtree
  from ..dataset import Dataset
label_desc: Use image node_id 20 for calling a global function with example usage: test_install_skip_list_arguments(src, path, path_outside) without return types