code: def fetch_infant_template(age, subjects_dir=None, *, verbose=None):
      """Fetch and update an infant MRI template.
  
      Parameters
      ----------
      age : str
          Age to download. Can be one of ``{'2wk', '1mo', '2mo', '3mo', '4.5mo',
          '6mo', '7.5mo', '9mo', '10.5mo', '12mo', '15mo', '18mo', '2yr'}``.
      subjects_dir : str | None
          The path to download the template data to.
      %(verbose)s
  
      Returns
      -------
      subject : str
          The standard subject name, e.g. ``ANTS4-5Month3T``.
  
      Notes
      -----
      If you use these templates in your work, please cite
      :footcite:`OReillyEtAl2021` and :footcite:`RichardsEtAl2016`.
  
      .. versionadded:: 0.23
  
      References
      ----------
      .. footbibliography::
      """
      # Code used to create the lists:
      #
      # $ for name in 2-0Weeks 1-0Months 2-0Months 3-0Months 4-5Months 6-0Months 7-5Months 9-0Months 10-5Months 12-0Months 15-0Months 18-0Months 2-0Years; do wget https://github.com/christian-oreilly/infant_template_paper/releases/download/v0.1-alpha/ANTS${name}3T.zip; done  # noqa: E501
      # $ md5sum ANTS*.zip
      # $ python
      # >>> import os.path as op
      # >>> import zipfile
      # >>> names = [f'ANTS{name}3T' for name in '2-0Weeks 1-0Months 2-0Months 3-0Months 4-5Months 6-0Months 7-5Months 9-0Months 10-5Months 12-0Months 15-0Months 18-0Months 2-0Years'.split()]  # noqa: E501
      # >>> for name in names:
      # ...     with zipfile.ZipFile(f'{name}.zip', 'r') as zip:
      # ...         names = sorted(name for name in zip.namelist() if not zipfile.Path(zip, name).is_dir())  # noqa: E501
      # ...     with open(f'{name}.txt', 'w') as fid:
      # ...         fid.write('\n'.join(names))
      _validate_type(age, str, "age")
      _check_option("age", age, _AGES.split())
      subjects_dir = get_subjects_dir(subjects_dir, raise_error=True)
      unit = dict(wk="Weeks", mo="Months", yr="Years")[age[-2:]]
      first = age[:-2].split(".")[0]
      dash = "-5" if ".5" in age else "-0"
      subject = f"ANTS{first}{dash}{unit}3T"
      # Actually get and create the files
      subj_dir = subjects_dir / subject
      os.makedirs(subj_dir, exist_ok=True)
      # .zip -> hash mapping
      orig_hashes = dict(
          line.strip().split()[::-1]
          for line in _ORIGINAL_HASHES.strip().splitlines()
      )
      _manifest_check_download(
          manifest_path=op.join(_MANIFEST_PATH, f"{subject}.txt"),
          destination=subj_dir,
          url=_ORIGINAL_URL.format(subject=subject),
          hash_=orig_hashes[f"{subject}.zip"],
      )
      return subject
  
imports: import os
  import os.path
  from ...utils import _check_option, _validate_type, get_subjects_dir, verbose
  from ..utils import _manifest_check_download
label_desc: Use image node_id 1 for calling a global function with example usage: fetch_infant_template(age, subjects_dir) and returns: subject