code: def _format_iospecs(specs, **kwargs):
      """Expand substitutions in specification lists.
  
      The expansion is generally a format() call on each items, using
      the kwargs as substitution mapping. A special case is, however,
      a single-item specification list that exclusively contains a
      plain substitution reference, i.e., ``{subst}``, that matches
      a kwargs-key (minus the brace chars), whose value is a list.
      In this case the entire specification list is substituted for
      the list in kwargs, which is returned as such. This enables
      the replace/reuse sequences, e.g. --inputs '{outputs}'
  
      Parameters
      ----------
      specs: list(str) or None
        Specification items to format.
      **kwargs:
        Placeholder key-value mapping to apply to specification items.
  
      Returns
      -------
      list
        All formatted items.
      """
      if not specs:
          return
      elif (
          len(specs) == 1
          and specs[0]
          and specs[0][0] == "{"
          and specs[0][-1] == "}"
          and isinstance(kwargs.get(specs[0][1:-1]), list)
      ):
          return kwargs[specs[0][1:-1]]
      return [s.format(**kwargs) for s in specs]
  
imports: import json
  import logging
  import os
  import os.path
  import warnings
  from argparse import REMAINDER
  from pathlib import Path
  from tempfile import mkdtemp
  import datalad
  import datalad.support.ansi_colors
  from datalad.config import anything2bool
  from datalad.core.local.save import Save
  from datalad.core.local.status import Status
  from datalad.distribution.dataset import Dataset, EnsureDataset, datasetmethod, require_dataset
  from datalad.distribution.get import Get
  from datalad.distribution.install import Install
  from datalad.interface.base import Interface, build_doc, eval_results
  from datalad.interface.common_opts import jobs_opt, save_message_opt
  from datalad.interface.results import get_status_dict
  from datalad.interface.utils import generic_result_renderer
  from datalad.local.unlock import Unlock
  from datalad.support.constraints import EnsureBool, EnsureChoice, EnsureNone
  from datalad.support.exceptions import CapturedException, CommandError
  from datalad.support.globbedpaths import GlobbedPaths
  from datalad.support.json_py import dump2stream
  from datalad.support.param import Parameter
  from datalad.ui import ui
  from datalad.utils import SequenceFormatter, chpwd, ensure_list, ensure_unicode, get_dataset_root, getpwd, join_cmdline, quote_cmdlinearg
label_desc: Use image node_id 12 for calling a global function with example usage: _format_iospecs(specs) and returns: unknown, kwargs