code: def _check_procedure_properties(ps):
      """a common check that we get three essential properties"""
      eq_(
          sum(
              [
                  "procedure_type" in p
                  and "procedure_callfmt" in p
                  and "path" in p
                  for p in ps
              ]
          ),
          len(ps),
      )
  
imports: import json
  import os.path
  import sys
  from unittest.mock import patch
  from datalad.api import run_procedure
  from datalad.cmd import KillOutput, WitlessRunner
  from datalad.distribution.dataset import Dataset
  from datalad.support.exceptions import CommandError, InsufficientArgumentsError
  from datalad.tests.utils_pytest import OBSCURE_FILENAME, assert_false, assert_in_results, assert_not_in_results, assert_raises, assert_repo_status, assert_result_count, assert_true, eq_, known_failure_windows, ok_file_has_content, patch_config, with_tempfile, with_tree, xfail_buggy_annex_info
  from datalad.utils import chpwd, quote_cmdlinearg, swallow_outputs
label_desc: Use image node_id 4 for calling a global function with example usage: _check_procedure_properties(ps) without return types