code: def pipe_eval(self, **kwargs):
      # fix python keywords back to original
      kwargs = _replace_keys(kwargs, self.replacements)
  
      json_data = json_encode(kwargs)
      send(json_data)
  
      json_reply = receive()
      decoded = json_decode(json_reply)
      if decoded.get(
          "error", False
      ):  # TODO: allow error handling higher up?
          sys.stderr("ERROR: " + decoded["error"])
          sys.exit(1)
      return decoded["value"]
  
imports: from __future__ import print_function
  import json
  import sys
  import socket
  import itertools
  from .None import functions
  from .None import parallel
  import math
  import multiprocessing
  import threading
label_desc: Use image node_id 9 for calling the EvalManager obj's underlying member method code with example usage: obj.pipe_eval() and returns: decoded