class_docstr: Inference rule that checks for matches across all columns.
  
  This is a useful shortcut for making rules that match columns one by one with preset confidence
  values, types and match reasons.
  
  If you need a more specific rule with varying confidence, column cross-checking and that outputs
  multiple types, inherit from `InferenceRule` directly.
  
  type_node: the `InferenceSignalNode` to produce whenever the pattern is matched
  confidence: the `InferenceSignalConfidence` to produce whenever the pattern is matched
  only_applies_to_parent_signal: whether the produced signal should be only taken into
      consideration by the solver if the parent is present in the tree.
  match_reason: a human-readable string of the reason why this was matched
docstr: A function to determine whether `ColumnProperties` matches. If it does, produce the signal.
docstr_tok: ["A","function","to","determine","whether","`","ColumnProperties","`","matches",".","If","it","does",",","produce","the","signal","."]
code: def match_column(self, props: ColumnProperties) -> bool:
      """A function to determine whether `ColumnProperties` matches. If it does, produce the signal."""
      raise NotImplementedError
  
file_path: metricflow/metricflow/inference/rule/rules.py
imports: from __future__ import annotations
  from abc import abstractmethod
  from typing import Callable, List, TypeVar
  from metricflow.inference.context.data_warehouse import ColumnProperties, DataWarehouseInferenceContext
  from metricflow.inference.models import InferenceSignal, InferenceSignalConfidence, InferenceSignalNode
  from metricflow.inference.rule.base import InferenceRule
label_desc: Use image node_id 1 for calling the ColumnMatcherRule obj's underlying member method code with example usage: obj.match_column(props) without return types