code: def _proj_equal(a, b, check_active=True):
      """Test if two projectors are equal."""
      equal = (
          (a["active"] == b["active"] or not check_active)
          and a["kind"] == b["kind"]
          and a["desc"] == b["desc"]
          and a["data"]["col_names"] == b["data"]["col_names"]
          and a["data"]["row_names"] == b["data"]["row_names"]
          and a["data"]["ncol"] == b["data"]["ncol"]
          and a["data"]["nrow"] == b["data"]["nrow"]
          and np.all(a["data"]["data"] == b["data"]["data"])
      )
      return equal
  
imports: import re
  from copy import deepcopy
  from itertools import count
  import numpy
  from ..defaults import _BORDER_DEFAULT, _EXTRAPOLATE_DEFAULT, _INTERPOLATION_DEFAULT
  from ..fixes import _safe_svd
  from ..utils import _check_option, _validate_type, fill_doc, logger, object_diff, verbose, warn
  from .constants import FIFF
  from .pick import _ELECTRODE_CH_TYPES, _electrode_types, pick_info, pick_types
  from .tag import _rename_list, find_tag
  from .tree import dir_tree_find
  from .write import _safe_name_list, end_block, start_block, write_float, write_float_matrix, write_int, write_name_list_sanitized, write_string
label_desc: Use image node_id 1 for calling a global function with example usage: _proj_equal(a, b, check_active) and returns: equal