##// END OF EJS Templates
avoid race condition when deleting/starting sessions...
avoid race condition when deleting/starting sessions javascript doesn't guarantee the order of AJAX requests, so we give `Session.delete` and `Kernel.kill` a callback signature. Changing the kernel type calls `Notebook.start_kernel`, which terminates the previous session, if defined, before starting the new one. A flag is stored, to prevent multiple simultaneous attempts to start sessions, raising a SessionAlreadyStarting Error, preventing the spec_changed event from firing.

File last commit:

r16414:422c5094
r17649:fb1ac74c
Show More
qt.py
23 lines | 806 B | text/x-python | PythonLexer
""" A Qt API selector that can be used to switch between PyQt4/5 and PySide.
This uses the ETS 4.0 selection pattern of:
PySide first, PyQt4 (API v2.) second, then PyQt5.
Do not use this if you need PyQt4 with the old QString/QVariant API.
"""
import os
from IPython.external.qt_loaders import (load_qt, QT_API_PYSIDE,
QT_API_PYQT, QT_API_PYQT5)
QT_API = os.environ.get('QT_API', None)
if QT_API not in [QT_API_PYSIDE, QT_API_PYQT, QT_API_PYQT5, None]:
raise RuntimeError("Invalid Qt API %r, valid values are: %r, %r, %r" %
(QT_API, QT_API_PYSIDE, QT_API_PYQT, QT_API_PYQT5))
if QT_API is None:
api_opts = [QT_API_PYSIDE, QT_API_PYQT, QT_API_PYQT5]
else:
api_opts = [QT_API]
QtCore, QtGui, QtSvg, QT_API = load_qt(api_opts)