Ejemplo n.º 1
0
def handle_exception(type, value, tb):
    # Print stack trace.
    info = traceback.format_exception(type, value, tb)
    logging.error(''.join(info))

    # Get local variables.
    while True:
        if not tb.tb_next:
            break
        next_frame = traceback.extract_tb(tb)[1]
        if next_frame.filename.startswith('/'):  # not our code
            break
        tb = tb.tb_next
    local_vars = tb.tb_frame.f_locals

    # Start kernel.
    import os
    pid = os.fork()
    if pid == 0:
        open(f"{os.environ['HOME']}/.pynt", 'a').close()
        import IPython
        IPython.start_kernel(user_ns=local_vars)
    os.waitpid(pid, 0)
Ejemplo n.º 2
0
    """Return the object referred to by `obj_id`."""
    return _managed_objects[obj_id]


def remove_object(obj_id):
    """Return the object referred to by `obj_id` from the registry."""
    del _managed_objects[obj_id]


################################################################################


if __name__ == '__main__':
    assert HAVE_MPI
    if rank0:
        if len(sys.argv) >= 2:
            filename = sys.argv[1]
            sys.argv = sys.argv[:1] + sys.argv[2:]
            exec(compile(open(filename, 'rt').read(), filename, 'exec'))
            import pymor.tools.mpi  # this is different from __main__
            pymor.tools.mpi.quit()  # change global state in the right module
        else:
            try:
                import IPython
                IPython.start_kernel()  # only start a kernel since mpirun messes up the terminal
            except ImportError:
                import code
                code.interact()
    else:
        event_loop()
Ejemplo n.º 3
0
 def console(self, local_vars):
     import IPython
     if self.kernel:
         IPython.start_kernel(argv=[], user_ns=local_vars)
     else:
         IPython.start_ipython(argv=[], user_ns=local_vars)
Ejemplo n.º 4
0
import os

import IPython

EXISTING_KERNEL = True

open(f'{os.environ["HOME"]}/.pynt', 'a').close()
IPython.start_kernel(user_ns={**locals(), **globals(), **vars()})
Ejemplo n.º 5
0
	def run(self):
		self.embed = IPython.start_kernel()
Ejemplo n.º 6
0
    """Return the object referred to by `obj_id`."""
    return _managed_objects[obj_id]


def remove_object(obj_id):
    """Remove the object referred to by `obj_id` from the registry."""
    del _managed_objects[obj_id]


################################################################################

if __name__ == '__main__':
    assert config.HAVE_MPI
    if rank0:
        if len(sys.argv) >= 2:
            filename = sys.argv[1]
            sys.argv = sys.argv[:1] + sys.argv[2:]
            exec(compile(open(filename, 'rt').read(), filename, 'exec'))
            import pymor.tools.mpi  # this is different from __main__
            pymor.tools.mpi.quit()  # change global state in the right module
        else:
            try:
                import IPython
                IPython.start_kernel(
                )  # only start a kernel since mpirun messes up the terminal
            except ImportError:
                import code
                code.interact()
    else:
        event_loop()
Ejemplo n.º 7
0
 def run(self):
     self.embed = IPython.start_kernel()