docstr: Get the complex dialect op's lowering function.
docstr_tok: ["Get","the","complex","dialect","op","'s","lowering","function","."]
code: def get_lower_func(op_type: str) -> Callable:
      """Get the complex dialect op's lowering function."""
      if not LowerComplex.has_lower_func(op_type):
          raise ValueError(
              f"The op {op_type} doesn't have any lowering function registered."
          )
      return LowerComplex._lower_map[op_type]
  
imports: import functools
  from typing import Callable, Dict, Optional, Tuple
  import numpy
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import types
  from coremltools.converters.mil.mil.operation import Operation
  from coremltools.converters.mil.mil.ops.defs.complex_dialect_ops import fft_canonicalize_length_dim, fft_canonicalize_shapes_dims
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil.var import ComplexVar, Var
label_desc: Use image node_id 3 for calling the LowerComplex obj's underlying member method code with example usage: obj.get_lower_func(op_type) and returns: LowerComplex