code: def __call__(self, point1, point2):
      point_package1 = package_builder(point1, c_double).create()
      point_package2 = package_builder(point2, c_double).create()
  
      ccore = ccore_library.get()
  
      ccore.metric_calculate.restype = c_double
      return ccore.metric_calculate(
          self.__pointer, point_package1, point_package2
      )
  
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 3 for calling the metric_wrapper obj's underlying member method code with example usage: obj.__call__(point1, point2) and returns: ccore