code: def __init__(self, type_metric_code, arguments, func):
      self.__func = lambda p1, p2: func(
          package_extractor(p1).extract(),
          package_extractor(p2).extract(),
      )
  
      package_arguments = package_builder(arguments, c_double).create()
  
      ccore = ccore_library.get()
  
      ccore.metric_create.restype = POINTER(c_void_p)
  
      self.__pointer = ccore.metric_create(
          c_size_t(type_metric_code),
          package_arguments,
          metric_callback(self.__func),
      )
  
file_path: pyclustering/pyclustering/core/metric_wrapper.py
imports: from pyclustering.core.wrapper import ccore_library
  from pyclustering.core.pyclustering_package import package_builder, package_extractor, pyclustering_package
  from ctypes import c_double, c_size_t, POINTER, c_void_p, CFUNCTYPE
  from pyclustering.utils.metric import type_metric
label_desc: Use image node_id 1 to create a new metric_wrapper object  with example: obj = metric_wrapper(type_metric_code, arguments, func)