[Python-modules-commits] [ipython4] 01/05: Import ipython_5.5.0.orig.tar.gz
Gordon Ball
chronitis-guest at moszumanska.debian.org
Sun Sep 17 14:30:50 UTC 2017
This is an automated email from the git hooks/post-receive script.
chronitis-guest pushed a commit to branch master
in repository ipython4.
commit b2fd16b03c2c3e0c9b68ab3a799a3ab1c72f39c5
Author: Gordon Ball <gordon at chronitis.net>
Date: Sun Sep 17 16:04:43 2017 +0200
Import ipython_5.5.0.orig.tar.gz
---
.gitattributes | 5 -
.gitignore | 23 -
.mailmap | 156 -
.travis.yml | 45 -
CONTRIBUTING.md | 45 -
Dockerfile | 7 -
IPython/core/application.py | 9 +
IPython/core/compilerop.py | 2 +-
IPython/core/completer.py | 13 +-
IPython/core/display.py | 52 +-
IPython/core/interactiveshell.py | 4 +-
IPython/core/magics/basic.py | 8 +-
IPython/core/magics/execution.py | 8 +
IPython/core/pylabtools.py | 5 +-
IPython/core/release.py | 2 +-
IPython/core/shellapp.py | 12 +-
IPython/core/tests/test_display.py | 14 +
IPython/core/tests/test_magic.py | 32 +
IPython/core/tests/test_run.py | 19 +-
IPython/core/ultratb.py | 5 +-
IPython/lib/demo.py | 2 +-
IPython/lib/pretty.py | 30 +-
IPython/sphinxext/ipython_directive.py | 2 +-
IPython/terminal/ipapp.py | 10 +-
IPython/utils/_sysinfo.py | 2 +-
IPython/utils/terminal.py | 2 +-
IPython/utils/tests/test_path.py | 1 +
MANIFEST.in | 36 -
PKG-INFO | 60 +
codecov.yml | 9 -
docs/source/conf.py | 7 -
docs/source/interactive/python-ipython-diff.rst | 6 +-
docs/source/whatsnew/github-stats-5.rst | 26 +
docs/source/whatsnew/index.rst | 1 -
docs/source/whatsnew/pr/progressbar.rst | 10 +
docs/source/whatsnew/version5.rst | 58 +
examples/IPython Kernel/Updating Displays.ipynb | 62 +-
tools/alldeps/Makefile | 130 -
tools/alldeps/README.txt | 109 -
tools/alldeps/pkginstall | 119 -
tools/alldeps/pkginstall.cfg | 27 -
tools/backport_pr.py | 189 -
tools/build_release | 29 -
tools/check_sources.py | 55 -
tools/gen_latex_symbols.py | 89 -
tools/gh_api.py | 303 -
tools/git-mpr.py | 128 -
tools/git-mrb | 80 -
tools/github_stats.py | 231 -
tools/make_tarball.py | 22 -
tools/mknbindex.py | 36 -
tools/post_pr_test.py | 13 -
tools/release | 94 -
tools/test_pr.py | 289 -
tools/tests/ANSI Test.ipynb | 560 --
tools/tests/CSS Reference.ipynb | 8193 ---------------------
tools/tests/Confined Output.ipynb | 307 -
tools/tests/Markdown Pandoc Limitations.ipynb | 2691 -------
tools/tests/Test Output Callbacks.ipynb | 291 -
tools/tests/embed/embed1.py | 10 -
tools/tests/embed/embed2.py | 5 -
tools/tests/embed/embed3.py | 7 -
tools/tests/embed/embed_division.py | 5 -
tools/tests/embed/embed_no_division.py | 6 -
tools/tests/heartbeat/gilsleep.ipynb | 72 -
tools/tests/heartbeat/hb_gil.py | 31 -
tools/tests/inline_figshow.py | 23 -
tools/tests/mpl-switch/Matplotlib Switching.ipynb | 654 --
tools/testupload | 22 -
tools/toollib.py | 57 -
tools/update_whatsnew.py | 82 -
tox.ini | 28 -
72 files changed, 352 insertions(+), 15425 deletions(-)
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 56783b6..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,5 +0,0 @@
-IPython/.git_commit_info.ini export-subst
-* text=auto
-*.py diff=python
-*.js diff=javascript
-*.html diff=html
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index c10cded..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-MANIFEST
-build
-dist
-_build
-docs/man/*.gz
-docs/source/api/generated
-docs/source/config/options
-docs/source/interactive/magics-generated.txt
-docs/gh-pages
-jupyter_notebook/notebook/static/mathjax
-jupyter_notebook/static/style/*.map
-*.py[co]
-__pycache__
-*.egg-info
-*~
-*.bak
-.ipynb_checkpoints
-.tox
-.DS_Store
-\#*#
-.#*
-.coverage
-*.swp
diff --git a/.mailmap b/.mailmap
deleted file mode 100644
index a96fb4d..0000000
--- a/.mailmap
+++ /dev/null
@@ -1,156 +0,0 @@
-A. J. Holyoake <a.j.holyoake at gmail.com> ajholyoake <a.j.holyoake at gmail.com>
-Aaron Culich <aculich at gmail.com> Aaron Culich <aculich at eecs.berkeley.edu>
-Aron Ahmadia <aron at ahmadia.net> ahmadia <aron at ahmadia.net>
-Benjamin Ragan-Kelley <benjaminrk at gmail.com> <minrk at Mercury.local>
-Benjamin Ragan-Kelley <benjaminrk at gmail.com> Min RK
-Benjamin Ragan-Kelley <benjaminrk at gmail.com> MinRK <benjaminrk at gmail.com>
-Barry Wark <barrywark at gmail.com> Barry Wark <barrywarkatgmaildotcom>
-Ben Edwards <bedwards at cs.unm.edu> Ben Edwards <bedwards at sausage.(none)>
-Bradley M. Froehle <brad.froehle at gmail.com> Bradley M. Froehle <bfroehle at math.berkeley.edu>
-Bradley M. Froehle <brad.froehle at gmail.com> Bradley Froehle <brad.froehle at gmail.com>
-Brandon Parsons <brandon at parsonstx.com> Brandon Parsons <brandon.parsons at hp.com>
-Brian E. Granger <ellisonbg at gmail.com> Brian Granger
-Brian E. Granger <ellisonbg at gmail.com> Brian Granger <>
-Brian E. Granger <ellisonbg at gmail.com> bgranger <>
-Brian E. Granger <ellisonbg at gmail.com> bgranger <bgranger at red>
-Christoph Gohlke <cgohlke at uci.edu> cgohlke <cgohlke at uci.edu>
-Cyrille Rossant <cyrille.rossant at gmail.com> rossant <rossant at github>
-Damián Avila <damianavila82 at yahoo.com.ar> damianavila <damianavila82 at yahoo.com.ar>
-Damián Avila <damianavila82 at yahoo.com.ar> damianavila <damianavila at gmail.com>
-Damon Allen <damontallen at gmail.com> damontallen <damontallen at gmail.com>
-Darren Dale <dsdale24 at gmail.com> darren.dale <>
-Darren Dale <dsdale24 at gmail.com> Darren Dale <>
-Dav Clark <davclark at berkeley.edu> Dav Clark <>
-Dav Clark <davclark at berkeley.edu> Dav Clark <davclark at gmail.com>
-David Hirschfeld <david.hirschfeld at gazprom-mt.com> dhirschfeld <david.hirschfeld at gazprom-mt.com>
-David P. Sanders <dpsanders at gmail.com> David P. Sanders <dpsanders at ciencias.unam.mx>
-David Warde-Farley <wardefar at iro.umontreal.ca> David Warde-Farley <>
-Doug Blank <dblank at cs.brynmawr.edu> Doug Blank <doug.blank at gmail.com>
-Eugene Van den Bulke <eugene.van-den-bulke at gmail.com> Eugene Van den Bulke <eugene.vandenbulke at gmail.com>
-Evan Patterson <epatters at enthought.com> <epatters at EPattersons-MacBook-Pro.local>
-Evan Patterson <epatters at enthought.com> <epatters at evan-laptop.localdomain>
-Evan Patterson <epatters at enthought.com> <epatters at caltech.edu>
-Evan Patterson <epatters at enthought.com> <ejpatters at gmail.com>
-Evan Patterson <epatters at enthought.com> epatters <ejpatters at gmail.com>
-Evan Patterson <epatters at enthought.com> epatters <epatters at enthought.com>
-Ernie French <ernestfrench at gmail.com> Ernie French <ernie at gqpbj.com>
-Ernie French <ernestfrench at gmail.com> ernie french <ernestfrench at gmail.com>
-Ernie French <ernestfrench at gmail.com> ernop <ernestfrench at gmail.com>
-Fernando Perez <Fernando.Perez at berkeley.edu> <fperez.net at gmail.com>
-Fernando Perez <Fernando.Perez at berkeley.edu> Fernando Perez <fernando.perez at berkeley.edu>
-Fernando Perez <Fernando.Perez at berkeley.edu> fperez <>
-Fernando Perez <Fernando.Perez at berkeley.edu> fptest <>
-Fernando Perez <Fernando.Perez at berkeley.edu> fptest1 <>
-Fernando Perez <Fernando.Perez at berkeley.edu> Fernando Perez <fernando.perez at berkeley.edu>
-Fernando Perez <fernando.perez at berkeley.edu> Fernando Perez <>
-Fernando Perez <fernando.perez at berkeley.edu> Fernando Perez <fperez at maqroll>
-Frank Murphy <fpmurphy at mtu.edu> Frank Murphy <fmurphy at arbor.net>
-Gabriel Becker <gmbecker at ucdavis.edu> gmbecker <gmbecker at ucdavis.edu>
-Gael Varoquaux <gael.varoquaux at normalesup.org> gael.varoquaux <>
-Gael Varoquaux <gael.varoquaux at normalesup.org> gvaroquaux <gvaroquaux at gvaroquaux-desktop>
-Gael Varoquaux <gael.varoquaux at normalesup.org> Gael Varoquaux <>
-Ingolf Becker <ingolf.becker at googlemail.com> watercrossing <ingolf.becker at googlemail.com>
-Jake Vanderplas <jakevdp at gmail.com> Jake Vanderplas <vanderplas at astro.washington.edu>
-Jakob Gager <jakob.gager at gmail.com> jakobgager <jakob.gager at gmail.com>
-Jakob Gager <jakob.gager at gmail.com> jakobgager <gager at ilsb.tuwien.ac.at>
-Jakob Gager <jakob.gager at gmail.com> jakobgager <jakobgager at hotmail.com>
-Jason Grout <jgrout6 at bloomberg.net> <jason.grout at drake.edu>
-Jason Grout <jgrout6 at bloomberg.net> <jason-github at creativetrax.com>
-Jason Gors <jason.gors.work at gmail.com> jason gors <jason.gors.work at gmail.com>
-Jason Gors <jason.gors.work at gmail.com> jgors <jason.gors.work at gmail.com>
-Jens Hedegaard Nielsen <jenshnielsen at gmail.com> Jens Hedegaard Nielsen <jhn at jhn-Znote.(none)>
-Jens Hedegaard Nielsen <jenshnielsen at gmail.com> Jens H Nielsen <jenshnielsen at gmail.com>
-Jens Hedegaard Nielsen <jenshnielsen at gmail.com> Jens H. Nielsen <jenshnielsen at gmail.com>
-Jez Ng <jezreel at gmail.com> Jez Ng <me at jezng.com>
-Jonathan Frederic <jdfreder at calpoly.edu> Jonathan Frederic <jonathan at LifebookMint.(none)>
-Jonathan Frederic <jdfreder at calpoly.edu> Jonathan Frederic <jon.freder at gmail.com>
-Jonathan Frederic <jdfreder at calpoly.edu> Jonathan Frederic <xh3xx.goose at gmail.com>
-Jonathan Frederic <jdfreder at calpoly.edu> jon <jon.freder at gmail.com>
-Jonathan Frederic <jdfreder at calpoly.edu> U-Jon-PC\Jon <Jon at Jon-PC.(none)>
-Jonathan March <jmarch at enthought.com> Jonathan March <JDM at MarchRay.net>
-Jonathan March <jmarch at enthought.com> jdmarch <JDM at marchRay.net>
-Jörgen Stenarson <jorgen.stenarson at kroywen.se> Jörgen Stenarson <jorgen.stenarson at bostream.nu>
-Jörgen Stenarson <jorgen.stenarson at kroywen.se> Jorgen Stenarson <jorgen.stenarson at bostream.nu>
-Jörgen Stenarson <jorgen.stenarson at kroywen.se> Jorgen Stenarson <>
-Jörgen Stenarson <jorgen.stenarson at kroywen.se> jstenar <jorgen.stenarson at bostream.nu>
-Jörgen Stenarson <jorgen.stenarson at kroywen.se> jstenar <>
-Jörgen Stenarson <jorgen.stenarson at kroywen.se> Jörgen Stenarson <jorgen.stenarson at kroywen.se>
-Juergen Hasch <python at elbonia.de> juhasch <python at elbonia.de>
-Juergen Hasch <python at elbonia.de> juhasch <hasch at VMBOX.fritz.box>
-Julia Evans <julia at jvns.ca> Julia Evans <julia at stripe.com>
-Kester Tong <kestert at google.com> KesterTong <kestert at google.com>
-Kyle Kelley <rgbkrk at gmail.com> Kyle Kelley <kyle.kelley at rackspace.com>
-Kyle Kelley <rgbkrk at gmail.com> rgbkrk <rgbkrk at gmail.com>
-Laurent Dufréchou <laurent.dufrechou at gmail.com> <laurent.dufrechou at gmail.com>
-Laurent Dufréchou <laurent.dufrechou at gmail.com> <laurent at Pep>
-Laurent Dufréchou <laurent.dufrechou at gmail.com> laurent dufrechou <>
-Laurent Dufréchou <laurent.dufrechou at gmail.com> laurent.dufrechou <>
-Laurent Dufréchou <laurent.dufrechou at gmail.com> Laurent Dufrechou <>
-Laurent Dufréchou <laurent.dufrechou at gmail.com> laurent.dufrechou at gmail.com <>
-Laurent Dufréchou <laurent.dufrechou at gmail.com> ldufrechou <ldufrechou at PEP>
-Lorena Pantano <lorena.pantano at gmail.com> Lorena <lorena.pantano at gmail.com>
-Luis Pedro Coelho <luis at luispedro.org> Luis Pedro Coelho <lpc at cmu.edu>
-Marc Molla <marcmolla at gmail.com> marcmolla <marcmolla at gmail.com>
-Martín Gaitán <gaitan at gmail.com> Martín Gaitán <gaitan at phasety.com>
-Matthias Bussonnier <bussonniermatthias at gmail.com> Matthias BUSSONNIER <bussonniermatthias at gmail.com>
-Matthias Bussonnier <bussonniermatthias at gmail.com> Bussonnier Matthias <bussonniermatthias at gmail.com>
-Matthias Bussonnier <bussonniermatthias at gmail.com> Matthias BUSSONNIER <bussonniermatthias at umr168-curn-1-24x-6561.curie.fr>
-Matthias Bussonnier <bussonniermatthias at gmail.com> Matthias Bussonnier <carreau at Aspire.(none)>
-Michael Droettboom <mdboom at gmail.com> Michael Droettboom <mdroe at stsci.edu>
-Nicholas Bollweg <nick.bollweg at gmail.com> Nicholas Bollweg (Nick) <nick.bollweg at gmail.com>
-Nicolas Rougier <Nicolas.Rougier at inria.fr> <Nicolas.rougier at inria.fr>
-Nikolay Koldunov <koldunovn at gmail.com> Nikolay Koldunov <nikolay.koldunov at zmaw.de>
-Omar Andrés Zapata Mesa <andresete.chaos at gmail.com> Omar Andres Zapata Mesa <andresete.chaos at gmail.com>
-Omar Andrés Zapata Mesa <andresete.chaos at gmail.com> Omar Andres Zapata Mesa <omazapa at tuxhome>
-Pankaj Pandey <pankaj86 at gmail.com> Pankaj Pandey <pankaj at enthought.com>
-Pascal Schetelat <pascal.schetelat at gmail.com> pascal-schetelat <pascal.schetelat at gmail.com>
-Paul Ivanov <pi at berkeley.edu> Paul Ivanov <pivanov314 at gmail.com>
-Paul Ivanov <pi at berkeley.edu> Paul Ivanov <pivanov5 at bloomberg.net>
-Pauli Virtanen <pauli.virtanen at iki.fi> Pauli Virtanen <>
-Pauli Virtanen <pauli.virtanen at iki.fi> Pauli Virtanen <pav at iki.fi>
-Pierre Gerold <pierre.gerold at laposte.net> Pierre Gerold <gerold at crans.org>
-Pietro Berkes <pberkes at enthought.com> Pietro Berkes <pietro.berkes at googlemail.com>
-Piti Ongmongkolkul <piti118 at gmail.com> piti118 <piti118 at gmail.com>
-Prabhu Ramachandran <prabhu at enthought.com> Prabhu Ramachandran <>
-Puneeth Chaganti <punchagan at gmail.com> Puneeth Chaganti <punchagan at muse-amuse.in>
-Robert Kern <robert.kern at gmail.com> rkern <>
-Robert Kern <robert.kern at gmail.com> Robert Kern <rkern at enthought.com>
-Robert Kern <robert.kern at gmail.com> Robert Kern <rkern at Sacrilege.local>
-Robert Kern <robert.kern at gmail.com> Robert Kern <>
-Robert Marchman <bo.marchman at gmail.com> Robert Marchman <robert.l.marchman at dartmouth.edu>
-Satrajit Ghosh <satra at mit.edu> Satrajit Ghosh <satra at ba5.mit.edu>
-Satrajit Ghosh <satra at mit.edu> Satrajit Ghosh <satrajit.ghosh at gmail.com>
-Scott Sanderson <scoutoss at gmail.com> Scott Sanderson <ssanderson at quantopian.com>
-smithj1 <smithj1 at LMC-022896.local> smithj1 <smithj1 at LMC-022896.swisscom.com>
-smithj1 <smithj1 at LMC-022896.local> smithj1 <smithj1 at lmc-022896.local>
-Steven Johnson <steven.johnson at drake.edu> stevenJohnson <steven.johnson at drake.edu>
-Steven Silvester <steven.silvester at ieee.org> blink1073 <steven.silvester at ieee.org>
-S. Weber <s8weber at c4.usr.sh> s8weber <s8weber at c5.usr.sh>
-Stefan van der Walt <stefan at sun.ac.za> Stefan van der Walt <bzr at mentat.za.net>
-Silvia Vinyes <silvia.vinyes at gmail.com> Silvia <silvia at silvia-U44SG.(none)>
-Silvia Vinyes <silvia.vinyes at gmail.com> silviav12 <silvia.vinyes at gmail.com>
-Srinivas Reddy Thatiparthy <thatiparthysreenivas at gmail.com> Srinivas Reddy Thatiparthy <srinivasreddy at users.noreply.github.com>
-Sylvain Corlay <scorlay at bloomberg.net> <sylvain.corlay at gmail.com>
-Sylvain Corlay <scorlay at bloomberg.net> sylvain.corlay <sylvain.corlay at gmail.com>
-Tamir Bahar <tamir at north-bit.com> Tamir Bahar <tmr232 at users.noreply.github.com>
-Ted Drain <ted.drain at gmail.com> TD22057 <ted.drain at gmail.com>
-Théophile Studer <theo.studer at gmail.com> Théophile Studer <studer at users.noreply.github.com>
-Thomas A Caswell <tcaswell at gmail.com> Thomas A Caswell <tcaswell at bnl.gov>
-Thomas Kluyver <thomas at kluyver.me.uk> Thomas <takowl at gmail.com>
-Thomas Kluyver <thomas at kluyver.me.uk> Thomas Kluyver <takowl at gmail.com>
-Thomas Spura <tomspur at fedoraproject.org> Thomas Spura <thomas.spura at gmail.com>
-Timo Paulssen <timonator at perpetuum-immobile.de> timo <timonator at perpetuum-immobile.de>
-vds <vds at VIVIAN> vds2212 <vds2212 at VIVIAN>
-vds <vds at VIVIAN> vds <vds at vivian>
-Ville M. Vainio <vivainio at gmail.com> <vivainio2 at WN-W0941>
-Ville M. Vainio <vivainio at gmail.com> ville <ville at VILLE-PC>
-Ville M. Vainio <vivainio at gmail.com> ville <ville at ville-desktop>
-Ville M. Vainio <vivainio at gmail.com> vivainio <>
-Ville M. Vainio <vivainio at gmail.com> Ville M. Vainio <vivainio at villev>
-Ville M. Vainio <vivainio at gmail.com> Ville M. Vainio <vivainio at ville_vmw>
-Walter Doerwald <walter at livinglogic.de> walter.doerwald <>
-Walter Doerwald <walter at livinglogic.de> Walter Doerwald <>
-Wieland Hoffmann <themineo at gmail.com> Wieland Hoffmann <mineo at users.noreply.github.com>
-W. Trevor King <wking at tremily.us> W. Trevor King <wking at drexel.edu>
-Yoval P. <yoval at gmx.com> y-p <yoval at gmx.com>
-
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 895d76e..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-# http://travis-ci.org/#!/ipython/ipython
-language: python
-python:
- - "nightly"
- - 3.6
- - 3.5
- - 3.4
- - 3.3
- - 2.7
- - pypy
-sudo: false
-before_install:
- - git clone --quiet --depth 1 https://github.com/minrk/travis-wheels travis-wheels
- - 'if [[ $GROUP != js* ]]; then COVERAGE=""; fi'
-install:
- - pip install "setuptools>=18.5" pip --upgrade
- # Installs PyPy (+ its Numpy). Based on @frol comment at:
- # https://github.com/travis-ci/travis-ci/issues/5027
- - |
- if [ "$TRAVIS_PYTHON_VERSION" = "pypy" ]; then
- export PYENV_ROOT="$HOME/.pyenv"
- if [ -f "$PYENV_ROOT/bin/pyenv" ]; then
- cd "$PYENV_ROOT" && git pull
- else
- rm -rf "$PYENV_ROOT" && git clone --depth 1 https://github.com/yyuu/pyenv.git "$PYENV_ROOT"
- fi
- export PYPY_VERSION="5.3.1"
- "$PYENV_ROOT/bin/pyenv" install "pypy-$PYPY_VERSION"
- virtualenv --python="$PYENV_ROOT/versions/pypy-$PYPY_VERSION/bin/python" "$HOME/virtualenvs/pypy-$PYPY_VERSION"
- source "$HOME/virtualenvs/pypy-$PYPY_VERSION/bin/activate"
- pip install https://bitbucket.org/pypy/numpy/get/master.zip
- fi
- - pip install -f travis-wheels/wheelhouse -e file://$PWD#egg=ipython[test]
- - pip install codecov mock
-script:
- - cd /tmp && iptest --coverage xml && cd -
-after_success:
- - cp /tmp/ipy_coverage.xml ./
- - cp /tmp/.coverage ./
- - codecov
-
-matrix:
- allow_failures:
- - python: nightly
- - python: pypy
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index a6aab5b..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,45 +0,0 @@
-## Opening an Issue
-
-When opening a new Issue, please take the following steps:
-
-1. Search GitHub and/or Google for your issue to avoid duplicate reports.
- Keyword searches for your error messages are most helpful.
-2. If possible, try updating to master and reproducing your issue,
- because we may have already fixed it.
-3. Try to include a minimal reproducible test case
-4. Include relevant system information. Start with the output of:
-
- python -c "import IPython; print(IPython.sys_info())"
-
- And include any relevant package versions, depending on the issue,
- such as matplotlib, numpy, Qt, Qt bindings (PyQt/PySide), tornado, web browser, etc.
-
-## Pull Requests
-
-Some guidelines on contributing to IPython:
-
-* All work is submitted via Pull Requests.
-* Pull Requests can be submitted as soon as there is code worth discussing.
- Pull Requests track the branch, so you can continue to work after the PR is submitted.
- Review and discussion can begin well before the work is complete,
- and the more discussion the better.
- The worst case is that the PR is closed.
-* Pull Requests should generally be made against master
-* Pull Requests should be tested, if feasible:
- - bugfixes should include regression tests
- - new behavior should at least get minimal exercise
-* New features and backwards-incompatible changes should be documented by adding
- a new file to the [pr](docs/source/whatsnew/pr) directory, see [the README.md
- there](docs/source/whatsnew/pr/README.md) for details.
-* Don't make 'cleanup' pull requests just to change code style.
- We don't follow any style guide strictly, and we consider formatting changes
- unnecessary noise.
- If you're making functional changes, you can clean up the specific pieces of
- code you're working on.
-
-[Travis](http://travis-ci.org/#!/ipython/ipython) does a pretty good job testing IPython and Pull Requests,
-but it may make sense to manually perform tests (possibly with our `test_pr` script),
-particularly for PRs that affect `IPython.parallel` or Windows.
-
-For more detailed information, see our [GitHub Workflow](https://github.com/ipython/ipython/wiki/Dev:-GitHub-workflow).
-
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 994e9f0..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-# DEPRECATED: You probably want jupyter/notebook
-
-FROM jupyter/notebook
-
-MAINTAINER IPython Project <ipython-dev at scipy.org>
-
-ONBUILD RUN echo "ipython/ipython is deprecated, use jupyter/notebook" >&2
diff --git a/IPython/core/application.py b/IPython/core/application.py
index 1801627..af28133 100644
--- a/IPython/core/application.py
+++ b/IPython/core/application.py
@@ -44,6 +44,14 @@ else:
"/etc/ipython",
]
+
+ENV_CONFIG_DIRS = []
+_env_config_dir = os.path.join(sys.prefix, 'etc', 'ipython')
+if _env_config_dir not in SYSTEM_CONFIG_DIRS:
+ # only add ENV_CONFIG if sys.prefix is not already included
+ ENV_CONFIG_DIRS.append(_env_config_dir)
+
+
_envvar = os.environ.get('IPYTHON_SUPPRESS_CONFIG_ERRORS')
if _envvar in {None, ''}:
IPYTHON_SUPPRESS_CONFIG_ERRORS = None
@@ -403,6 +411,7 @@ class BaseIPythonApplication(Application):
def init_config_files(self):
"""[optionally] copy default config files into profile dir."""
+ self.config_file_paths.extend(ENV_CONFIG_DIRS)
self.config_file_paths.extend(SYSTEM_CONFIG_DIRS)
# copy config files
path = self.builtin_profile_dir
diff --git a/IPython/core/compilerop.py b/IPython/core/compilerop.py
index e39ded6..f529eb5 100644
--- a/IPython/core/compilerop.py
+++ b/IPython/core/compilerop.py
@@ -56,7 +56,7 @@ def code_name(code, number=0):
This now expects code to be unicode.
"""
- hash_digest = hashlib.md5(code.encode("utf-8")).hexdigest()
+ hash_digest = hashlib.sha1(code.encode("utf-8")).hexdigest()
# Include the number and 12 characters of the hash in the name. It's
# pretty much impossible that in a single session we'll have collisions
# even with truncated hashes, and the full one makes tracebacks too long
diff --git a/IPython/core/completer.py b/IPython/core/completer.py
index 5ce832c..b386945 100644
--- a/IPython/core/completer.py
+++ b/IPython/core/completer.py
@@ -47,6 +47,9 @@ if sys.platform == 'win32':
else:
PROTECTABLES = ' ()[]{}?=\\|;:\'#*"^&'
+# Protect against returning an enormous number of completions which the frontend
+# may have trouble processing.
+MATCHES_LIMIT = 500
def has_open_quotes(s):
"""Return whether a string has open quotes.
@@ -1090,6 +1093,12 @@ class IPCompleter(Completer):
return [cast_unicode_py2(r) for r in res if r.lower().startswith(text_low)]
except TryNext:
pass
+ except KeyboardInterrupt:
+ """
+ If custom completer take too long,
+ let keyboard interrupt abort and return nothing.
+ """
+ break
return None
@@ -1142,7 +1151,7 @@ class IPCompleter(Completer):
for meth in (self.unicode_name_matches, back_latex_name_matches, back_unicode_name_matches):
name_text, name_matches = meth(base_text)
if name_text:
- return name_text, name_matches
+ return name_text, name_matches[:MATCHES_LIMIT]
# if text is either None or an empty string, rely on the line buffer
if not text:
@@ -1183,6 +1192,6 @@ class IPCompleter(Completer):
# different types of objects. The rlcomplete() method could then
# simply collapse the dict into a list for readline, but we'd have
# richer completion semantics in other evironments.
- self.matches = sorted(set(self.matches), key=completions_sorting_key)
+ self.matches = sorted(set(self.matches), key=completions_sorting_key)[:MATCHES_LIMIT]
return text, self.matches
diff --git a/IPython/core/display.py b/IPython/core/display.py
index e52c815..a9f648a 100644
--- a/IPython/core/display.py
+++ b/IPython/core/display.py
@@ -11,7 +11,7 @@ try:
except ImportError:
from base64 import encodestring as base64_encode
-from binascii import b2a_hex
+from binascii import b2a_hex, hexlify
import json
import mimetypes
import os
@@ -26,7 +26,7 @@ from IPython.testing.skipdoctest import skip_doctest
__all__ = ['display', 'display_pretty', 'display_html', 'display_markdown',
'display_svg', 'display_png', 'display_jpeg', 'display_latex', 'display_json',
'display_javascript', 'display_pdf', 'DisplayObject', 'TextDisplayObject',
-'Pretty', 'HTML', 'Markdown', 'Math', 'Latex', 'SVG', 'JSON', 'Javascript',
+'Pretty', 'HTML', 'Markdown', 'Math', 'Latex', 'SVG', 'ProgressBar', 'JSON', 'Javascript',
'Image', 'clear_output', 'set_matplotlib_formats', 'set_matplotlib_close',
'publish_display_data', 'update_display', 'DisplayHandle']
@@ -659,8 +659,8 @@ class TextDisplayObject(DisplayObject):
class Pretty(TextDisplayObject):
- def _repr_pretty_(self):
- return self.data
+ def _repr_pretty_(self, pp, cycle):
+ return pp.text(self.data)
class HTML(TextDisplayObject):
@@ -730,6 +730,50 @@ class SVG(DisplayObject):
def _repr_svg_(self):
return self.data
+class ProgressBar(DisplayObject):
+ """Progressbar supports displaying a progressbar like element
+ """
+ def __init__(self, total):
+ """Creates a new progressbar
+
+ Parameters
+ ----------
+ total : int
+ maximum size of the progressbar
+ """
+ self.total = total
+ self._progress = 0
+ self.html_width = '60ex'
+ self.text_width = 60
+ self._display_id = hexlify(os.urandom(8)).decode('ascii')
+
+ def __repr__(self):
+ fraction = self.progress / self.total
+ filled = '=' * int(fraction * self.text_width)
+ rest = ' ' * (self.text_width - len(filled))
+ return '[{}{}] {}/{}'.format(
+ filled, rest,
+ self.progress, self.total,
+ )
+
+ def _repr_html_(self):
+ return "<progress style='width:{}' max='{}' value='{}'></progress>".format(
+ self.html_width, self.total, self.progress)
+
+ def display(self):
+ display(self, display_id=self._display_id)
+
+ def update(self):
+ display(self, display_id=self._display_id, update=True)
+
+ @property
+ def progress(self):
+ return self._progress
+
+ @progress.setter
+ def progress(self, value):
+ self._progress = value
+ self.update()
class JSON(DisplayObject):
"""JSON expects a JSON-able dict or list
diff --git a/IPython/core/interactiveshell.py b/IPython/core/interactiveshell.py
index 51040bc..41b2704 100644
--- a/IPython/core/interactiveshell.py
+++ b/IPython/core/interactiveshell.py
@@ -2064,7 +2064,7 @@ class InteractiveShell(SingletonConfigurable):
etpl = "Line magic function `%%%s` not found%s."
extra = '' if cm is None else (' (But cell magic `%%%%%s` exists, '
'did you mean that instead?)' % magic_name )
- error(etpl % (magic_name, extra))
+ raise UsageError(etpl % (magic_name, extra))
else:
# Note: this is the distance in the stack to the user's frame.
# This will need to be updated if the internal calling logic gets
@@ -2101,7 +2101,7 @@ class InteractiveShell(SingletonConfigurable):
etpl = "Cell magic `%%{0}` not found{1}."
extra = '' if lm is None else (' (But line magic `%{0}` exists, '
'did you mean that instead?)'.format(magic_name))
- error(etpl.format(magic_name, extra))
+ raise UsageError(etpl.format(magic_name, extra))
elif cell == '':
message = '%%{0} is a cell magic, but the cell body is empty.'.format(magic_name)
if self.find_line_magic(magic_name) is not None:
diff --git a/IPython/core/magics/basic.py b/IPython/core/magics/basic.py
index 781fa72..ca69e2e 100644
--- a/IPython/core/magics/basic.py
+++ b/IPython/core/magics/basic.py
@@ -288,12 +288,14 @@ Currently the magic system has the following functions:""",
@line_magic
def profile(self, parameter_s=''):
- """Print your currently active IPython profile.
+ """DEPRECATED since IPython 2.0.
+
+ Raise `UsageError`. To profile code use the :magic:`prun` magic.
+
See Also
--------
- prun : run code using the Python profiler
- (:meth:`~IPython.core.magics.execution.ExecutionMagics.prun`)
+ prun : run code using the Python profiler (:magic:`prun`)
"""
warn("%profile is now deprecated. Please use get_ipython().profile instead.")
from IPython.core.application import BaseIPythonApplication
diff --git a/IPython/core/magics/execution.py b/IPython/core/magics/execution.py
index b9b5ced..3734b0c 100644
--- a/IPython/core/magics/execution.py
+++ b/IPython/core/magics/execution.py
@@ -816,6 +816,7 @@ python-profiler package from non-free.""")
bdb.Breakpoint.next = 1
bdb.Breakpoint.bplist = {}
bdb.Breakpoint.bpbynumber = [None]
+ deb.clear_all_breaks()
if bp_line is not None:
# Set an initial breakpoint to stop execution
maxtries = 10
@@ -1012,6 +1013,13 @@ python-profiler package from non-free.""")
ast_setup = self.shell.transform_ast(ast_setup)
ast_stmt = self.shell.transform_ast(ast_stmt)
+ # Check that these compile to valid Python code *outside* the timer func
+ # Invalid code may become valid when put inside the function & loop,
+ # which messes up error messages.
+ # https://github.com/ipython/ipython/issues/10636
+ self.shell.compile(ast_setup, "<magic-timeit-setup>", "exec")
+ self.shell.compile(ast_stmt, "<magic-timeit-stmt>", "exec")
+
# This codestring is taken from timeit.template - we fill it in as an
# AST, so that we can apply our AST transformations to the user code
# without affecting the timing code.
diff --git a/IPython/core/pylabtools.py b/IPython/core/pylabtools.py
index 22ac8d8..db35d1b 100644
--- a/IPython/core/pylabtools.py
+++ b/IPython/core/pylabtools.py
@@ -17,16 +17,17 @@ backends = {'tk': 'TkAgg',
'gtk': 'GTKAgg',
'gtk3': 'GTK3Agg',
'wx': 'WXAgg',
- 'qt': 'Qt4Agg', # qt3 not supported
'qt4': 'Qt4Agg',
'qt5': 'Qt5Agg',
+ 'qt': 'Qt5Agg',
'osx': 'MacOSX',
'nbagg': 'nbAgg',
'notebook': 'nbAgg',
'agg': 'agg',
'inline': 'module://ipykernel.pylab.backend_inline',
'ipympl': 'module://ipympl.backend_nbagg',
-}
+ 'widget': 'module://ipympl.backend_nbagg',
+ }
# We also need a reverse backends2guis mapping that will properly choose which
# GUI support to activate based on the desired matplotlib backend. For the
diff --git a/IPython/core/release.py b/IPython/core/release.py
index 9206bf4..84488ae 100644
--- a/IPython/core/release.py
+++ b/IPython/core/release.py
@@ -20,7 +20,7 @@ name = 'ipython'
# release. 'dev' as a _version_extra string means this is a development
# version
_version_major = 5
-_version_minor = 4
+_version_minor = 5
_version_patch = 0
_version_extra = '.dev'
# _version_extra = 'rc1'
diff --git a/IPython/core/shellapp.py b/IPython/core/shellapp.py
index ab8fbe4..2136482 100644
--- a/IPython/core/shellapp.py
+++ b/IPython/core/shellapp.py
@@ -11,12 +11,14 @@ from __future__ import absolute_import
from __future__ import print_function
import glob
+from itertools import chain
import os
import sys
from traitlets.config.application import boolean_flag
from traitlets.config.configurable import Configurable
from traitlets.config.loader import Config
+from IPython.core.application import SYSTEM_CONFIG_DIRS, ENV_CONFIG_DIRS
from IPython.core import pylabtools
from IPython.utils import py3compat
from IPython.utils.contexts import preserve_keys
@@ -331,7 +333,9 @@ class InteractiveShellApp(Configurable):
def _run_startup_files(self):
"""Run files from profile startup directory"""
- startup_dir = self.profile_dir.startup_dir
+ startup_dirs = [self.profile_dir.startup_dir] + [
+ os.path.join(p, 'startup') for p in chain(ENV_CONFIG_DIRS, SYSTEM_CONFIG_DIRS)
+ ]
startup_files = []
if self.exec_PYTHONSTARTUP and os.environ.get('PYTHONSTARTUP', False) and \
@@ -343,9 +347,9 @@ class InteractiveShellApp(Configurable):
except:
self.log.warning("Unknown error in handling PYTHONSTARTUP file %s:", python_startup)
self.shell.showtraceback()
-
- startup_files += glob.glob(os.path.join(startup_dir, '*.py'))
- startup_files += glob.glob(os.path.join(startup_dir, '*.ipy'))
+ for startup_dir in startup_dirs[::-1]:
+ startup_files += glob.glob(os.path.join(startup_dir, '*.py'))
+ startup_files += glob.glob(os.path.join(startup_dir, '*.ipy'))
if not startup_files:
return
diff --git a/IPython/core/tests/test_display.py b/IPython/core/tests/test_display.py
index c6631d1..b605506 100644
--- a/IPython/core/tests/test_display.py
+++ b/IPython/core/tests/test_display.py
@@ -142,6 +142,13 @@ def test_display_available():
with AssertNotPrints('NameError'):
ip.run_cell('display')
+def test_textdisplayobj_pretty_repr():
+ p = display.Pretty("This is a simple test")
+ nt.assert_equal(repr(p), '<IPython.core.display.Pretty object>')
+ nt.assert_equal(p.data, 'This is a simple test')
+
+ p._show_mem_addr = True
+ nt.assert_equal(repr(p), object.__repr__(p))
def test_displayobject_repr():
h = display.HTML('<br />')
@@ -158,6 +165,13 @@ def test_displayobject_repr():
j._show_mem_addr = False
nt.assert_equal(repr(j), '<IPython.core.display.Javascript object>')
+def test_progress():
+ p = display.ProgressBar(10)
+ nt.assert_true('0/10' in repr(p))
+ p.html_width = '100%'
+ p.progress = 5
+ nt.assert_equal(p._repr_html_(), "<progress style='width:100%' max='10' value='5'></progress>")
+
def test_json():
d = {'a': 5}
lis = [d]
diff --git a/IPython/core/tests/test_magic.py b/IPython/core/tests/test_magic.py
index eb40331..9845cee 100644
--- a/IPython/core/tests/test_magic.py
+++ b/IPython/core/tests/test_magic.py
@@ -80,6 +80,35 @@ def test_extract_symbols_raises_exception_with_non_python_code():
with nt.assert_raises(SyntaxError):
code.extract_symbols(source, "hello")
+
+def test_magic_not_found():
+ # magic not found raises UsageError
+ with nt.assert_raises(UsageError):
+ _ip.magic('doesntexist')
+
+ # ensure result isn't success when a magic isn't found
+ result = _ip.run_cell('%doesntexist')
+ assert isinstance(result.error_in_exec, UsageError)
+
+
+def test_cell_magic_not_found():
+ # magic not found raises UsageError
+ with nt.assert_raises(UsageError):
+ _ip.run_cell_magic('doesntexist', 'line', 'cell')
+
+ # ensure result isn't success when a magic isn't found
+ result = _ip.run_cell('%%doesntexist')
+ assert isinstance(result.error_in_exec, UsageError)
+
+
+def test_magic_error_status():
+ def fail(shell):
+ 1/0
+ _ip.register_magic_function(fail)
+ result = _ip.run_cell('%fail')
+ assert isinstance(result.error_in_exec, ZeroDivisionError)
+
+
def test_config():
""" test that config magic does not raise
can happen if Configurable init is moved too early into
@@ -583,6 +612,9 @@ def test_timeit_futures():
ip.compile.reset_compiler_flags()
with tt.AssertNotPrints('0.25'):
ip.run_line_magic('timeit', '-n1 -r1 print(1/4)')
+def test_timeit_invalid_return():
+ with nt.assert_raises_regexp(SyntaxError, "outside function"):
+ _ip.run_line_magic('timeit', 'return')
@dec.skipif(execution.profile is None)
def test_prun_special_syntax():
diff --git a/IPython/core/tests/test_run.py b/IPython/core/tests/test_run.py
index afe01a7..3779883 100644
--- a/IPython/core/tests/test_run.py
+++ b/IPython/core/tests/test_run.py
@@ -18,6 +18,7 @@ import functools
import os
from os.path import join as pjoin
import random
+import string
import sys
import tempfile
import textwrap
@@ -171,8 +172,8 @@ def doctest_reset_del():
class TestMagicRunPass(tt.TempFileMixin):
def setup(self):
- """Make a valid python temp file."""
- self.mktmp('pass\n')
+ content = "a = [1,2,3]\nb = 1"
+ self.mktmp(content)
def run_tmpfile(self):
_ip = get_ipython()
@@ -219,6 +220,16 @@ class TestMagicRunPass(tt.TempFileMixin):
with tt.fake_input(['c']):
_ip.magic('run -d %s' % self.fname)
+ def test_run_debug_twice_with_breakpoint(self):
+ """Make a valid python temp file."""
+ _ip = get_ipython()
+ with tt.fake_input(['b 2', 'c', 'c']):
+ _ip.magic('run -d %s' % self.fname)
+
+ with tt.fake_input(['c']):
+ with tt.AssertNotPrints('KeyError'):
+ _ip.magic('run -d %s' % self.fname)
+
class TestMagicRunSimple(tt.TempFileMixin):
@@ -405,8 +416,8 @@ class TestMagicRunWithPackage(unittest.TestCase):
f.write(textwrap.dedent(content))
def setUp(self):
- self.package = package = 'tmp{0}'.format(repr(random.random())[2:])
- """Temporary valid python package name."""
+ self.package = package = 'tmp{0}'.format(''.join([random.choice(string.ascii_letters) for i in range(10)]))
+ """Temporary (probably) valid python package name."""
self.value = int(random.random() * 10000)
diff --git a/IPython/core/ultratb.py b/IPython/core/ultratb.py
index 98e2cd5..a855145 100644
--- a/IPython/core/ultratb.py
+++ b/IPython/core/ultratb.py
@@ -438,7 +438,7 @@ def is_recursion_error(etype, value, records):
# by stack frames in IPython itself. >500 frames probably indicates
# a recursion error.
return (etype is recursion_error_type) \
- and "recursion" in str(value).lower() \
+ and str("recursion") in str(value).lower() \
and len(records) > 500
def find_recursion(etype, value, records):
@@ -1227,8 +1227,7 @@ class VerboseTB(TBTools):
if force or self.call_pdb:
if self.pdb is None:
- self.pdb = self.debugger_cls(
- self.color_scheme_table.active_scheme_name)
+ self.pdb = self.debugger_cls()
# the system displayhook may have changed, restore the original
# for pdb
display_trap = DisplayTrap(hook=sys.__displayhook__)
diff --git a/IPython/lib/demo.py b/IPython/lib/demo.py
index 4db31aa..b0f3503 100644
--- a/IPython/lib/demo.py
+++ b/IPython/lib/demo.py
@@ -106,7 +106,7 @@ the execution.
This is probably best explained with the simple example file below. You can
copy this into a file named ex_demo.py, and try running it via::
- from IPython.demo import Demo
+ from IPython.lib.demo import Demo
d = Demo('ex_demo.py')
d()
diff --git a/IPython/lib/pretty.py b/IPython/lib/pretty.py
index 97529f1..7240c88 100644
--- a/IPython/lib/pretty.py
+++ b/IPython/lib/pretty.py
@@ -119,6 +119,21 @@ else:
cast_unicode(text, encoding=get_stream_enc(sys.stdout)))
+def _sorted_for_pprint(items):
+ """
+ Sort the given items for pretty printing. Since some predictable
+ sorting is better than no sorting at all, we sort on the string
+ representation if normal sorting fails.
+ """
+ items = list(items)
+ try:
+ return sorted(items)
+ except Exception:
+ try:
+ return sorted(items, key=str)
+ except Exception:
+ return items
+
def pretty(obj, verbose=False, max_width=79, newline='\n', max_seq_length=MAX_SEQ_LENGTH):
"""
Pretty print the object's representation.
@@ -576,13 +591,10 @@ def _set_pprinter_factory(start, end, basetype):
step = len(start)
p.begin_group(step, start)
# Like dictionary keys, we will try to sort the items if there aren't too many
- items = obj
if not (p.max_seq_length and len(obj) >= p.max_seq_length):
- try:
- items = sorted(obj)
- except Exception:
- # Sometimes the items don't sort.
- pass
+ items = _sorted_for_pprint(obj)
+ else:
+ items = obj
for idx, x in p._enumerate(items):
if idx:
p.text(',')
@@ -610,11 +622,7 @@ def _dict_pprinter_factory(start, end, basetype=None):
keys = obj.keys()
# if dict isn't large enough to be truncated, sort keys before displaying
if not (p.max_seq_length and len(obj) >= p.max_seq_length):
- try:
- keys = sorted(keys)
- except Exception:
- # Sometimes the keys don't sort.
- pass
+ keys = _sorted_for_pprint(keys)
for idx, key in p._enumerate(keys):
if idx:
p.text(',')
diff --git a/IPython/sphinxext/ipython_directive.py b/IPython/sphinxext/ipython_directive.py
index 63ad0c1..7a294f1 100644
--- a/IPython/sphinxext/ipython_directive.py
+++ b/IPython/sphinxext/ipython_directive.py
@@ -139,7 +139,7 @@ import shutil
# Third-party
from docutils.parsers.rst import directives
-from sphinx.util.compat import Directive
+from docutils.parsers.rst import Directive
# Our own
from traitlets.config import Config
diff --git a/IPython/terminal/ipapp.py b/IPython/terminal/ipapp.py
index 30cb93d..6b25aaa 100755
--- a/IPython/terminal/ipapp.py
+++ b/IPython/terminal/ipapp.py
@@ -365,12 +365,10 @@ def load_default_config(ipython_dir=None):
ipython_dir = get_ipython_dir()
profile_dir = os.path.join(ipython_dir, 'profile_default')
-
- config = Config()
- for cf in Application._load_config_files("ipython_config", path=profile_dir):
- config.update(cf)
-
- return config
+ app = TerminalIPythonApp()
+ app.config_file_paths.append(profile_dir)
+ app.load_config_file()
+ return app.config
launch_new_instance = TerminalIPythonApp.launch_instance
diff --git a/IPython/utils/_sysinfo.py b/IPython/utils/_sysinfo.py
index a80b029..7a6dc40 100644
--- a/IPython/utils/_sysinfo.py
+++ b/IPython/utils/_sysinfo.py
@@ -1,2 +1,2 @@
# GENERATED BY setup.py
-commit = u""
+commit = u"b467d487e"
diff --git a/IPython/utils/terminal.py b/IPython/utils/terminal.py
index 0f3a45d..e92c410 100644
--- a/IPython/utils/terminal.py
+++ b/IPython/utils/terminal.py
@@ -24,7 +24,7 @@ except ImportError:
try:
from backports.shutil_get_terminal_size import get_terminal_size as _get_terminal_size
except ImportError:
- from ._get_terminal_size import _get_terminal_size
+ from ._get_terminal_size import get_terminal_size as _get_terminal_size
from . import py3compat
diff --git a/IPython/utils/tests/test_path.py b/IPython/utils/tests/test_path.py
index 4aba13f..66388f5 100644
--- a/IPython/utils/tests/test_path.py
+++ b/IPython/utils/tests/test_path.py
@@ -410,6 +410,7 @@ def test_unescape_glob():
... 15617 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/ipython4.git
More information about the Python-modules-commits
mailing list