##// END OF EJS Templates
Start webbrowser in a thread. Prevents lockup with Chrome....
Start webbrowser in a thread. Prevents lockup with Chrome. If a user has Chrome set as their default browser (system-wide or via the `BROWSER` environment variable), opening the notebook hangs because the chrome call doesn't return immediately. This solves the issue by opening the browser in a thread. Note that there remains an issue where killing the notebook will kill Chrome if the Chrome session was started by us. I haven't found a way to work around that despite attempts by making the webbrowser.open() call in a subprocess.

File last commit:

r2760:afe1263a
r5212:2178365f
Show More
Shell.py
42 lines | 1.4 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
# encoding: utf-8
"""
A backwards compatibility layer for IPython.Shell.
Previously, IPython had an IPython.Shell module. IPython.Shell has been moved
to IPython.core.shell and is being refactored. This new module is provided
for backwards compatability. We strongly encourage everyone to start using
the new code in IPython.core.shell.
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2009 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
from warnings import warn
msg = """
This module (IPython.Shell) is deprecated. The classes that were in this
module have been replaced by:
IPShell->IPython.core.iplib.InteractiveShell
IPShellEmbed->IPython.core.embed.InteractiveShellEmbed
Please migrate your code to use these classes instead.
"""
warn(msg, category=DeprecationWarning, stacklevel=1)
from IPython.core.iplib import InteractiveShell as IPShell
from IPython.core.embed import InteractiveShellEmbed as IPShellEmbed
def start(user_ns=None, embedded=False):
"""Return an instance of :class:`InteractiveShell`."""
if embedded:
return IPShellEmbed(user_ns=user_ns)
else:
return IPShell(user_ns=user_ns)