##// 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:

r17583:3799adce
r18784:3b30bb89
Show More
release
79 lines | 1.9 KiB | text/plain | TextLexer
#!/usr/bin/env python
"""IPython release script.
This should ONLY be run at real release time.
"""
from __future__ import print_function
from toollib import *
from gh_api import post_download
# Get main ipython dir, this will raise if it doesn't pass some checks
ipdir = get_ipdir()
tooldir = pjoin(ipdir, 'tools')
distdir = pjoin(ipdir, 'dist')
# Where I keep static backups of each release
ipbackupdir = os.path.expanduser('~/ipython/backup')
if not os.path.exists(ipbackupdir):
os.makedirs(ipbackupdir)
# Start in main IPython dir
cd(ipdir)
# Load release info
execfile(pjoin('IPython','core','release.py'))
# ensure js version is in sync
sh('./setup.py jsversion')
# Build site addresses for file uploads
release_site = '%s/release/%s' % (archive, version)
backup_site = '%s/backup/' % archive
# Start actual release process
print()
print('Releasing IPython')
print('=================')
print()
print('Version:', version)
print()
print('Source IPython directory:', ipdir)
print()
# Perform local backup, go to tools dir to run it.
cd(tooldir)
sh('./make_tarball.py')
sh('mv ipython-*.tgz %s' % ipbackupdir)
# Build release files
sh('./build_release %s' % ipdir)
# Register with the Python Package Index (PyPI)
print( 'Registering with PyPI...')
cd(ipdir)
sh('./setup.py register')
# Upload all files
sh(sdists + ' upload')
for py in ('2.7', '3.4'):
sh('python%s setupegg.py bdist_wheel' % py)
cd(distdir)
print( 'Uploading distribution files...')
for fname in os.listdir('.'):
# TODO: update to GitHub releases API
continue
print('uploading %s to GitHub' % fname)
desc = "IPython %s source distribution" % version
post_download("ipython/ipython", fname, description=desc)
# Make target dir if it doesn't exist
sh('ssh %s "mkdir -p %s/release/%s" ' % (archive_user, archive_dir, version))
sh('scp * %s' % release_site)
print( 'Uploading backup files...')
cd(ipbackupdir)
sh('scp `ls -1tr *tgz | tail -1` %s' % backup_site)
print('Done!')