code: def __call__(self, signum, frame):
      import inspect
  
      print(inspect.getframeinfo(frame))
      print(inspect.trace())
      while 1:
          s = input(
              """
   
   Enter sense switch.
  
      sol:  Print current best solution.
      cont: Continue calculation.
      call: Executes sigint_callback [%s].
      exit: Exits with current best solution.
  
   >>> """
              % self.sigint_callback
          )
          if s.lower() == "sol":
              print(self.solver.bestSolution)
          elif s.lower() == "cont":
              return
          elif s.lower() == "call":
              # sigint call_back
              if self.sigint_callback is not None:
                  self.sigint_callback(self.solver.bestSolution)
          elif s.lower() == "exit":
              self.solver._EARLYEXIT = True
              return
          else:
              print("unknown option : %s" % s)
      return
  
imports: from signal import *
label_desc: Use image node_id 2 for calling the Handler obj's underlying member method code with example usage: obj.__call__(signum, frame) without return types