code: def __call__(self, inputs, name, dictionary):
      cls = dictionary["class"]
      module = dictionary["module"]
      state = dictionary["state"]
      op_name = dictionary["op_name"]
      deserialize_method = "deserialize"
  
      if (
          self.factory_callback_map
          and op_name in self.factory_callback_map
      ):
          factory = self.factory_callback_map[op_name]
      else:
          exec("from {} import {}".format(module, cls))
          eval_str = "{0}.{1} if hasattr({0}, '{1}') else None"
          factory = eval(eval_str.format(cls, deserialize_method))
  
      if factory:
          for i in range(len(inputs)):
              inputs[i].__class__ = cntk.Variable
          return factory(list(inputs), name, state)
  
      raise ValueError(
          "Cannot deserialize user function '{}.{}'. "
          "It neither has a static 'deserialize' method, "
          "nor a factory callback was provided for the '{}' op name.".format(
              module, cls, op_name
          )
      )
  
file_path: CNTK/bindings/python/cntk/internal/__init__.py
imports: from .swig_helper import typemap, map_if_possible
  from .sanitize import *
  from .sanitize import _as_tuple
  import cntk
label_desc: Use image node_id 2 for calling the _UDFDeserializeCallbackWrapper obj's underlying member method code with example usage: obj.__call__(inputs, name, dictionary) and returns: factory