##// END OF EJS Templates
Backport PR #5458: Add support for PyQt5....
Backport PR #5458: Add support for PyQt5. This PR adds the new `QT_API_PYQT5` to `IPython/external/qt_loaders.py ` and allows to embed the IPython console in Qt5 Applications. In case of PyQt5, the loader returns a union of `PyQt5.QtGui` and `PyQt5.QtWidgets` acting as a Qt4-QtGui compatibility module. One small fix to `InProcessChannel.__init__` was necessary though. For some reason, when constructing `QtInProcessShellChannel`, the `QtCore.QObject.__init__` initializer from `SuperQObject` indirectly calls the `InProcessChannel.__init__` function, which doesn't have a default constructor and thus fails. I assume this has something to do with the metaclass/multiple inheritance approach IPython uses on QObject. Adding a default value for `client` in `InProcessChannel.__init__` solved the problem for me.

File last commit:

r13396:2d473591
r18784:3b30bb89
Show More
simple.py
34 lines | 550 B | text/x-python | PythonLexer
"""Simple example using doctests.
This file just contains doctests both using plain python and IPython prompts.
All tests should be loaded by nose.
"""
from __future__ import print_function
def pyfunc():
"""Some pure python tests...
>>> pyfunc()
'pyfunc'
>>> import os
>>> 2+3
5
>>> for i in range(3):
... print(i, end=' ')
... print(i+1, end=' ')
...
0 1 1 2 2 3
"""
return 'pyfunc'
def ipyfunc2():
"""Some pure python tests...
>>> 1+1
2
"""
return 'pyfunc2'