code: def get_op_desc_list_from_model(self):
      op_class_name_list = []
      op_header_path_set = set()
  
      op_rules = []
      op_rules.extend(RefOPSResolverRules)
      op_rules.extend(OptOPSResolverRules)
  
      scratch_buffer_size = 0
  
      if self.backend == "cmsis":
          op_rules.extend(CmsisOPSResolverRules)
  
      if self.backend == "xtensa":
          op_rules.extend(XtensaOPSResolverRules)
  
      for op_def in self.net_def.op:
          cur_rule = None
          cur_priority = -1
          for rule in op_rules:
              valid = rule.valid(op_def, self.net_def)
              priority = rule.priority(op_def, self.net_def)
              if valid and priority > cur_priority:
                  cur_rule = rule
                  cur_priority = priority
  
          mace_check(
              cur_rule is not None,
              "unsupported op type %s." % op_def.type,
          )
  
          cur_scratch_buffer_size = cur_rule.scratch(
              op_def, self.net_def
          )
          mace_check(
              cur_scratch_buffer_size >= 0,
              "scratch buffer size must be ge than 0",
          )
          scratch_buffer_size = int(
              max(scratch_buffer_size, cur_scratch_buffer_size)
          )
  
          op_class_name_list.append(
              cur_rule.class_name(op_def, self.net_def)
          )
          op_header_path_set.add(
              cur_rule.header_path(op_def, self.net_def)
          )
  
      # 64 bytes is used for ignored small scratch bufffer
      scratch_buffer_size += 64
      op_header_path_list = list(op_header_path_set)
  
      return (
          op_header_path_list,
          op_class_name_list,
          scratch_buffer_size,
      )
  
file_path: mace/tools/python/micro/micro_support_ops.py
imports: import copy
  from enum import Enum
  from py_proto import mace_pb2
  from transform.base_converter import MaceKeyword
  from transform.base_converter import MaceOp
  from utils.config_parser import DataFormat
  from utils.config_parser import ModelKeys
  from utils.config_parser import Platform
  from utils.util import mace_check
  from micro.micro_op_resolver_rules import RefOPSResolverRules
  from micro.micro_op_resolver_rules import OptOPSResolverRules
  from micro.micro_op_resolver_cmsis_rules import CmsisOPSResolverRules
  from micro.micro_op_resolver_xtensa_rules import XtensaOPSResolverRules
label_desc: Use image node_id 2 for calling the OpResolver obj's underlying member method code with example usage: obj.get_op_desc_list_from_model() and returns: op_header_path_list,  op_class_name_list,  scratch_buffer_size