code: def _fetch_development_fmri_functional(
      participants, data_dir, url, resume, verbose
  ):
      """Help to fetch_development_fmri.
  
      This function helps in downloading functional MRI data in Nifti
      and its confound corresponding to each subject.
  
      The files are downloaded from Open Science Framework (OSF).
  
      Parameters
      ----------
      participants : numpy.ndarray
          Should contain column participant_id which represents subjects id. The
          number of files are fetched based on ids in this column.
      %(data_dir)s
      %(url)s
      %(resume)s
      %(verbose)s
  
      Returns
      -------
      func : list of str (Nifti files)
          Paths to functional MRI data (4D) for each subject.
  
      regressors : list of str (tsv files)
          Paths to regressors related to each subject.
  
      """
      dataset_name = "development_fmri"
      data_dir = get_dataset_dir(
          dataset_name, data_dir=data_dir, verbose=verbose
      )
  
      if url is None:
          # Download from the relevant OSF project, using hashes generated
          # from the OSF API. Note the trailing slash. For more info, see:
          # https://gist.github.com/emdupre/3cb4d564511d495ea6bf89c6a577da74
          url = "https://osf.io/download/{}/"
  
      confounds = "{}_task-pixar_desc-confounds_regressors.tsv"
      func = "{0}_task-pixar_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz"
  
      # The gzip contains unique download keys per Nifti file and confound
      # pre-extracted from OSF. Required for downloading files.
      package_directory = os.path.dirname(os.path.abspath(__file__))
      dtype = [
          ("participant_id", "U12"),
          ("key_regressor", "U24"),
          ("key_bold", "U24"),
      ]
      names = ["participant_id", "key_r", "key_b"]
      # csv file contains download information related to OpenScience(osf)
      osf_data = csv_to_array(
          os.path.join(
              package_directory, "data", "development_fmri.csv"
          ),
          skip_header=True,
          dtype=dtype,
          names=names,
      )
  
      funcs = []
      regressors = []
  
      for participant_id in participants["participant_id"]:
          this_osf_id = osf_data[
              osf_data["participant_id"] == participant_id
          ]
          # Download regressors
          confound_url = url.format(this_osf_id["key_r"][0])
          regressor_file = [
              (
                  confounds.format(participant_id),
                  confound_url,
                  {"move": confounds.format(participant_id)},
              )
          ]
          path_to_regressor = fetch_files(
              data_dir, regressor_file, verbose=verbose
          )[0]
          regressors.append(path_to_regressor)
          # Download bold images
          func_url = url.format(this_osf_id["key_b"][0])
          func_file = [
              (
                  func.format(participant_id, participant_id),
                  func_url,
                  {"move": func.format(participant_id)},
              )
          ]
          path_to_func = fetch_files(
              data_dir, func_file, resume=resume, verbose=verbose
          )[0]
          funcs.append(path_to_func)
      return funcs, regressors
  
imports: import fnmatch
  import glob
  import json
  import numbers
  import os
  import re
  import warnings
  from io import BytesIO
  from pathlib import Path
  import nibabel
  import nibabel
  import numpy
  import pandas
  from scipy.io import loadmat
  from sklearn.utils import Bunch
  from nilearn.image import get_data
  from .._utils import check_niimg, fill_doc
  from .._utils.numpy_conversions import csv_to_array
  from ._utils import fetch_files, fetch_single_file, filter_columns, get_dataset_descr, get_dataset_dir, read_md5_sum_file, tree, uncompress_file
label_desc: Use image node_id 16 for calling a global function with example usage: _fetch_development_fmri_functional(participants, data_dir, url, resume, verbose) and returns: funcs,  regressors