class_docstr: Evaluate an expression as a background job (uses a separate thread).
class_docstr_tok: ["Evaluate","an","expression","as","a","background","job","(","uses","a","separate","thread",")","."]
docstr: Create a new job from a string which can be fed to eval().
  
  global/locals dicts can be provided, which will be passed to the eval
  call.
docstr_tok: ["Create","a","new","job","from","a","string","which","can","be","fed","to","eval","(",")",".","global\/locals","dicts","can","be","provided",",","which","will","be","passed","to","the","eval","call","."]
code: def __init__(self, expression, glob=None, loc=None):
      """Create a new job from a string which can be fed to eval().
  
      global/locals dicts can be provided, which will be passed to the eval
      call."""
  
      # fail immediately if the given expression can't be compiled
      self.code = compile(
          expression, "<BackgroundJob compilation>", "eval"
      )
  
      glob = {} if glob is None else glob
      loc = {} if loc is None else loc
      self.expression = self.strform = expression
      self.glob = glob
      self.loc = loc
      self._init()
  
imports: import sys
  import threading
  from IPython import get_ipython
  from IPython.core.ultratb import AutoFormattedTB
  from logging import error, debug
label_desc: Use image node_id 1 to create a new BackgroundJobExpr object from inherited base classes: BackgroundJobBase with example: obj = BackgroundJobExpr(expression, glob, loc)