Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ipython/ipython
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6.3.0
Choose a base ref
...
head repository: ipython/ipython
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 7.16.3
Choose a head ref
Loading
Showing with 12,422 additions and 5,437 deletions.
  1. +8 −0 .git-blame-ignore-revs
  2. +5 −1 .gitignore
  3. +7 −0 .mailmap
  4. +22 −0 .meeseeksdev.yml
  5. +99 −35 .travis.yml
  6. +55 −5 CONTRIBUTING.md
  7. +2 −35 COPYING.rst
  8. +10 −5 IPython/__init__.py
  9. +1 −1 IPython/config.py
  10. +69 −0 IPython/conftest.py
  11. +2 −2 IPython/consoleapp.py
  12. +3 −1 IPython/core/alias.py
  13. +2 −2 IPython/core/application.py
  14. +173 −0 IPython/core/async_helpers.py
  15. +25 −8 IPython/core/compilerop.py
  16. +134 −102 IPython/core/completer.py
  17. +6 −6 IPython/core/completerlib.py
  18. +11 −8 IPython/core/crashhandler.py
  19. +200 −41 IPython/core/debugger.py
  20. +161 −47 IPython/core/display.py
  21. +11 −6 IPython/core/displayhook.py
  22. +15 −2 IPython/core/displaypub.py
  23. +1 −1 IPython/core/events.py
  24. +1 −6 IPython/core/extensions.py
  25. +6 −6 IPython/core/formatters.py
  26. +2 −2 IPython/core/historyapp.py
  27. +3 −42 IPython/core/hooks.py
  28. +13 −7 IPython/core/inputsplitter.py
  29. +13 −11 IPython/core/inputtransformer.py
  30. +721 −0 IPython/core/inputtransformer2.py
  31. +456 −77 IPython/core/interactiveshell.py
  32. +1,072 −1,071 IPython/core/latex_symbols.py
  33. +25 −6 IPython/core/magic.py
  34. +2 −1 IPython/core/magics/__init__.py
  35. +89 −40 IPython/core/magics/basic.py
  36. +17 −27 IPython/core/magics/code.py
  37. +1 −1 IPython/core/magics/config.py
  38. +118 −36 IPython/core/magics/execution.py
  39. +17 −11 IPython/core/magics/namespace.py
  40. +94 −29 IPython/core/magics/osm.py
  41. +103 −0 IPython/core/magics/packaging.py
  42. +15 −15 IPython/core/magics/pylab.py
  43. +20 −5 IPython/core/magics/script.py
  44. +101 −84 IPython/core/oinspect.py
  45. +10 −33 IPython/core/page.py
  46. +6 −6 IPython/core/prefilter.py
  47. +14 −14 IPython/core/profileapp.py
  48. +4 −4 IPython/core/profiledir.py
  49. +14 −7 IPython/core/pylabtools.py
  50. +6 −6 IPython/core/release.py
  51. +37 −4 IPython/core/shellapp.py
  52. +2 −2 IPython/core/splitinput.py
  53. +0 −1 IPython/core/tests/refbug.py
  54. +6 −3 IPython/core/tests/test_alias.py
  55. +316 −0 IPython/core/tests/test_async_helpers.py
  56. +1 −8 IPython/core/tests/test_autocall.py
  57. +1 −1 IPython/core/tests/test_compilerop.py
  58. +996 −906 IPython/core/tests/test_completer.py
  59. +22 −5 IPython/core/tests/test_completerlib.py
  60. +101 −0 IPython/core/tests/test_debugger.py
  61. +82 −16 IPython/core/tests/test_display.py
  62. +12 −3 IPython/core/tests/test_displayhook.py
  63. +6 −1 IPython/core/tests/test_events.py
  64. +2 −5 IPython/core/tests/test_handlers.py
  65. +7 −3 IPython/core/tests/test_history.py
  66. +2 −4 IPython/core/tests/test_inputsplitter.py
  67. +1 −0 IPython/core/tests/test_inputtransformer.py
  68. +292 −0 IPython/core/tests/test_inputtransformer2.py
  69. +116 −0 IPython/core/tests/test_inputtransformer2_line.py
  70. +132 −49 IPython/core/tests/test_interactiveshell.py
  71. +4 −12 IPython/core/tests/test_iplib.py
  72. +0 −2 IPython/core/tests/test_logger.py
  73. +184 −32 IPython/core/tests/test_magic.py
  74. +1 −6 IPython/core/tests/test_magic_terminal.py
  75. +69 −59 IPython/core/tests/test_oinspect.py
  76. +2 −2 IPython/core/tests/test_paths.py
  77. +10 −2 IPython/core/tests/test_prefilter.py
  78. +4 −6 IPython/core/tests/test_profile.py
  79. +0 −4 IPython/core/tests/test_prompts.py
  80. +13 −3 IPython/core/tests/test_pylabtools.py
  81. +54 −7 IPython/core/tests/test_run.py
  82. +7 −3 IPython/core/tests/test_shellapp.py
  83. +73 −3 IPython/core/tests/test_ultratb.py
  84. +149 −86 IPython/core/ultratb.py
  85. +1 −8 IPython/core/usage.py
  86. +32 −6 IPython/extensions/autoreload.py
  87. +62 −55 IPython/extensions/storemagic.py
  88. +1 −1 IPython/extensions/sympyprinting.py
  89. +120 −15 IPython/extensions/tests/test_autoreload.py
  90. +23 −7 IPython/extensions/tests/test_storemagic.py
  91. +1 −1 IPython/external/__init__.py
  92. +2 −3 IPython/external/decorators/__init__.py
  93. +3 −47 IPython/external/qt_loaders.py
  94. +3 −1 IPython/lib/backgroundjobs.py
  95. +4 −4 IPython/lib/clipboard.py
  96. +2 −8 IPython/lib/deepreload.py
  97. +7 −3 IPython/lib/demo.py
  98. +85 −39 IPython/lib/display.py
  99. +1 −1 IPython/lib/guisupport.py
  100. +1 −1 IPython/lib/inputhookgtk.py
  101. +1 −1 IPython/lib/inputhookgtk3.py
  102. +1 −1 IPython/lib/inputhookpyglet.py
  103. +1 −1 IPython/lib/inputhookwx.py
  104. +29 −10 IPython/lib/latextools.py
  105. +37 −17 IPython/lib/lexers.py
  106. +58 −50 IPython/lib/pretty.py
  107. +89 −12 IPython/lib/tests/test_display.py
  108. +48 −1 IPython/lib/tests/test_latextools.py
  109. +47 −0 IPython/lib/tests/test_lexers.py
  110. +36 −7 IPython/lib/tests/test_pretty.py
  111. +10 −10 IPython/paths.py
  112. +133 −52 IPython/sphinxext/ipython_directive.py
  113. +70 −43 IPython/terminal/debugger.py
  114. +4 −1 IPython/terminal/embed.py
  115. +201 −98 IPython/terminal/interactiveshell.py
  116. +0 −4 IPython/terminal/magics.py
  117. +37 −8 IPython/terminal/prompts.py
  118. +1 −0 IPython/terminal/pt_inputhooks/__init__.py
  119. +64 −0 IPython/terminal/pt_inputhooks/asyncio.py
  120. +25 −6 IPython/terminal/pt_inputhooks/qt.py
  121. +150 −78 IPython/terminal/pt_inputhooks/wx.py
  122. +50 −18 IPython/terminal/ptutils.py
  123. +83 −63 IPython/terminal/shortcuts.py
  124. +78 −0 IPython/terminal/tests/test_debug_magic.py
  125. +6 −2 IPython/terminal/tests/test_embed.py
  126. +32 −15 IPython/terminal/tests/test_interactivshell.py
  127. +11 −0 IPython/testing/__init__.py
  128. +13 −6 IPython/testing/decorators.py
  129. +1 −0 IPython/testing/globalipapp.py
  130. +10 −4 IPython/testing/iptest.py
  131. +2 −21 IPython/testing/iptestcontroller.py
  132. +7 −5 IPython/testing/ipunittest.py
  133. +1 −1 IPython/testing/plugin/Makefile
  134. +1 −6 IPython/testing/plugin/README.txt
  135. +2 −5 IPython/testing/plugin/ipdoctest.py
  136. +3 −7 IPython/testing/plugin/test_ipdoctest.py
  137. +2 −2 IPython/testing/plugin/test_refs.py
  138. +1 −1 IPython/testing/tests/test_decorators.py
  139. +8 −14 IPython/testing/tests/test_ipunittest.py
  140. +2 −3 IPython/testing/tests/test_tools.py
  141. +19 −15 IPython/testing/tools.py
  142. +56 −0 IPython/tests/cve.py
  143. +30 −17 IPython/utils/PyColorize.py
  144. +5 −4 IPython/utils/_process_posix.py
  145. +26 −12 IPython/utils/_process_win32.py
  146. +1 −1 IPython/utils/daemonize.py
  147. +0 −6 IPython/utils/data.py
  148. +1 −1 IPython/utils/encoding.py
  149. +2 −5 IPython/utils/frame.py
  150. +3 −7 IPython/utils/generics.py
  151. +16 −13 IPython/utils/io.py
  152. +22 −76 IPython/utils/module_paths.py
  153. +8 −26 IPython/utils/openpy.py
  154. +19 −21 IPython/utils/path.py
  155. +9 −76 IPython/utils/py3compat.py
  156. +2 −1 IPython/utils/signatures.py
  157. +4 −5 IPython/utils/sysinfo.py
  158. +19 −0 IPython/utils/terminal.py
  159. +38 −43 IPython/utils/tests/test_io.py
  160. +32 −45 IPython/utils/tests/test_module_paths.py
  161. +21 −21 IPython/utils/tests/test_openpy.py
  162. +42 −31 IPython/utils/tests/test_path.py
  163. +53 −3 IPython/utils/tests/test_process.py
  164. +4 −12 IPython/utils/tests/test_text.py
  165. +3 −3 IPython/utils/tests/test_tokenutil.py
  166. +7 −11 IPython/utils/text.py
  167. +4 −4 IPython/utils/timing.py
  168. +0 −590 IPython/utils/tokenize2.py
  169. +6 −6 IPython/utils/tokenutil.py
  170. +33 −0 LICENSE
  171. +12 −3 MANIFEST.in
  172. +47 −10 README.rst
  173. +9 −9 appveyor.yml
  174. +1 −1 docs/README.rst
  175. +5 −2 docs/autogen_config.py
  176. +9 −4 docs/autogen_shortcuts.py
  177. +14 −0 docs/environment.yml
  178. +1 −0 docs/requirements.txt
  179. +30 −10 docs/source/conf.py
  180. +12 −0 docs/source/config/custommagics.rst
  181. +26 −6 docs/source/config/details.rst
  182. +2 −0 docs/source/config/extensions/autoreload.rst
  183. +1 −0 docs/source/config/index.rst
  184. +34 −145 docs/source/config/inputtransforms.rst
  185. +24 −2 docs/source/config/integrating.rst
  186. +88 −21 docs/source/config/intro.rst
  187. +60 −0 docs/source/config/shell_mimerenderer.rst
  188. +4 −4 docs/source/config/shortcuts/index.rst
  189. +42 −43 docs/source/coredev/index.rst
  190. +17 −10 docs/source/development/execution.rst
  191. +1 −1 docs/source/development/wrapperkernels.rst
  192. +1 −1 docs/source/index.rst
  193. +1 −1 docs/source/install/install.rst
  194. +319 −0 docs/source/interactive/autoawait.rst
  195. +2 −1 docs/source/interactive/index.rst
  196. +8 −8 docs/source/interactive/magics.rst
  197. +1 −1 docs/source/interactive/python-ipython-diff.rst
  198. +8 −5 docs/source/interactive/reference.rst
  199. +7 −7 docs/source/interactive/shell.rst
  200. +3 −3 docs/source/interactive/tips.rst
  201. +3 −3 docs/source/interactive/tutorial.rst
  202. +3 −3 docs/source/links.txt
  203. +8 −7 docs/source/overview.rst
  204. +468 −3 docs/source/sphinxext.rst
  205. +14 −0 docs/source/whatsnew/development.rst
  206. +1 −1 docs/source/whatsnew/github-stats-2.0.rst
  207. +548 −0 docs/source/whatsnew/github-stats-7.rst
  208. +25 −0 docs/source/whatsnew/index.rst
  209. +5 −0 docs/source/whatsnew/pr/antigravity-feature.rst
  210. +7 −0 docs/source/whatsnew/pr/incompat-switching-to-perl.rst
  211. +0 −1 docs/source/whatsnew/pr/magic-run-bug-fix.md
  212. +1 −1 docs/source/whatsnew/version0.10.rst
  213. +3 −3 docs/source/whatsnew/version0.11.rst
  214. +1 −1 docs/source/whatsnew/version0.13.rst
  215. +2 −2 docs/source/whatsnew/version0.9.rst
  216. +1 −1 docs/source/whatsnew/version2.0.rst
  217. +1 −1 docs/source/whatsnew/version3.rst
  218. +21 −7 docs/source/whatsnew/version5.rst
  219. +34 −0 docs/source/whatsnew/version6.rst
  220. +1,087 −0 docs/source/whatsnew/version7.rst
  221. +12 −14 docs/sphinxext/apigen.py
  222. +1 −2 docs/sphinxext/configtraits.py
  223. +7 −4 docs/sphinxext/github.py
  224. +3 −2 docs/sphinxext/magics.py
  225. +1 −1 examples/Embedding/embed_class_long.py
  226. +5 −4 examples/IPython Kernel/Rich Output.ipynb
  227. +1 −1 examples/IPython Kernel/Script Magics.ipynb
  228. +7 −6 examples/IPython Kernel/ipython-get-history.py
  229. +1 −1 examples/Index.ipynb
  230. +2 −0 pytest.ini
  231. +4 −0 readthedocs.yml
  232. +2 −0 setup.cfg
  233. +9 −13 setup.py
  234. +14 −69 setupbase.py
  235. +1 −1 setupext/__init__.py
  236. +1 −1 tools/alldeps/README.txt
  237. +46 −0 tools/autoformat_file
  238. +3 −14 tools/build_release
  239. +10 −0 tools/configure-git-blame-ignore-revs.bat
  240. +10 −0 tools/configure-git-blame-ignore-revs.sh
  241. +46 −0 tools/fixup_whats_new_pr.py
  242. +23 −23 tools/gen_latex_symbols.py
  243. +3 −2 tools/gh_api.py
  244. +2 −2 tools/git-mpr.py
  245. +0 −1 tools/make_tarball.py
  246. +1 −4 tools/release
  247. +249 −0 tools/release_helper.sh
  248. +65 −0 tools/retar.py
  249. +2 −2 tools/tests/Confined Output.ipynb
  250. +7 −7 tools/tests/Markdown Pandoc Limitations.ipynb
  251. +5 −10 tools/toollib.py
8 changes: 8 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# When making commits that are strictly formatting/style changes, add the
# commit hash here, so git blame can ignore the change.
# See docs for more details:
# https://git-scm.com/docs/git-config#Documentation/git-config.txt-blameignoreRevsFile

# Example entries:
# <full commit hash> # initial black-format
# <full commit hash> # rename something internal
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -7,7 +7,6 @@ docs/source/api/generated
docs/source/config/options
docs/source/config/shortcuts/*.csv
docs/source/interactive/magics-generated.txt
docs/source/config/shortcuts/*.csv
docs/gh-pages
jupyter_notebook/notebook/static/mathjax
jupyter_notebook/static/style/*.map
@@ -24,3 +23,8 @@ __pycache__
.cache
.coverage
*.swp
.vscode
.pytest_cache
.python-version
venv*/
.idea/
7 changes: 7 additions & 0 deletions .mailmap
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
A. J. Holyoake <a.j.holyoake@gmail.com> ajholyoake <a.j.holyoake@gmail.com>
Alok Singh <alokbeniwal@gmail.com> Alok Singh <8325708+alok@users.noreply.github.com>
Aaron Culich <aculich@gmail.com> Aaron Culich <aculich@eecs.berkeley.edu>
Aron Ahmadia <aron@ahmadia.net> ahmadia <aron@ahmadia.net>
Benjamin Ragan-Kelley <benjaminrk@gmail.com> <minrk@Mercury.local>
@@ -82,13 +83,18 @@ Julia Evans <julia@jvns.ca> Julia Evans <julia@stripe.com>
Kester Tong <kestert@google.com> KesterTong <kestert@google.com>
Kyle Kelley <rgbkrk@gmail.com> Kyle Kelley <kyle.kelley@rackspace.com>
Kyle Kelley <rgbkrk@gmail.com> rgbkrk <rgbkrk@gmail.com>
kd2718 <korydonati@gmail.com>
Kory Donati <kd2718@outlook.com> kory donati <kd2718@outlook.com>
Kory Donati <kd2718@outlook.com> Kory Donati <KoryDonati@clovisusd.k12.ca.us>
Kory Donati <kd2718@outlook.com> koryd <korydonati@cusd.com>
Laurent Dufréchou <laurent.dufrechou@gmail.com> <laurent.dufrechou@gmail.com>
Laurent Dufréchou <laurent.dufrechou@gmail.com> <laurent@Pep>
Laurent Dufréchou <laurent.dufrechou@gmail.com> laurent dufrechou <>
Laurent Dufréchou <laurent.dufrechou@gmail.com> laurent.dufrechou <>
Laurent Dufréchou <laurent.dufrechou@gmail.com> Laurent Dufrechou <>
Laurent Dufréchou <laurent.dufrechou@gmail.com> laurent.dufrechou@gmail.com <>
Laurent Dufréchou <laurent.dufrechou@gmail.com> ldufrechou <ldufrechou@PEP>
Luciana da Costa Marques <lucianadacostamarques@gmail.com> luciana <lucianadacostamarques@gmail.com>
Lorena Pantano <lorena.pantano@gmail.com> Lorena <lorena.pantano@gmail.com>
Luis Pedro Coelho <luis@luispedro.org> Luis Pedro Coelho <lpc@cmu.edu>
Marc Molla <marcmolla@gmail.com> marcmolla <marcmolla@gmail.com>
@@ -97,6 +103,7 @@ Matthias Bussonnier <bussonniermatthias@gmail.com> Matthias BUSSONNIER <bussonni
Matthias Bussonnier <bussonniermatthias@gmail.com> Bussonnier Matthias <bussonniermatthias@gmail.com>
Matthias Bussonnier <bussonniermatthias@gmail.com> Matthias BUSSONNIER <bussonniermatthias@umr168-curn-1-24x-6561.curie.fr>
Matthias Bussonnier <bussonniermatthias@gmail.com> Matthias Bussonnier <carreau@Aspire.(none)>
Matthias Bussonnier <bussonniermatthias@gmail.com> Matthias Bussonnier <mbussonnier@ucmerced.edu>
Michael Droettboom <mdboom@gmail.com> Michael Droettboom <mdroe@stsci.edu>
Nicholas Bollweg <nick.bollweg@gmail.com> Nicholas Bollweg (Nick) <nick.bollweg@gmail.com>
Nicolas Rougier <Nicolas.Rougier@inria.fr> <Nicolas.rougier@inria.fr>
22 changes: 22 additions & 0 deletions .meeseeksdev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
users:
LucianaMarques:
can:
- tag
special:
everyone:
can:
- say
- tag
- untag
- close
config:
tag:
only:
- good first issue
- async/await
- backported
- help wanted
- documentation
- notebook
- tab-completion
- windows
134 changes: 99 additions & 35 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,54 +1,118 @@
# http://travis-ci.org/#!/ipython/ipython
language: python
os: linux

addons:
apt:
packages:
- graphviz

python:
- "nightly"
- 3.6
- 3.5
- 3.4
- 3.3

sudo: false

env:
global:
- PATH=$TRAVIS_BUILD_DIR/pandoc:$PATH

group: edge

before_install:
- 'if [[ $GROUP != js* ]]; then COVERAGE=""; fi'
- |
# install Python on macOS
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
env | sort
if ! which python$TRAVIS_PYTHON_VERSION; then
HOMEBREW_NO_AUTO_UPDATE=1 brew tap minrk/homebrew-python-frameworks
HOMEBREW_NO_AUTO_UPDATE=1 brew cask install python-framework-${TRAVIS_PYTHON_VERSION/./}
fi
python3 -m pip install virtualenv
python3 -m virtualenv -p $(which python$TRAVIS_PYTHON_VERSION) ~/travis-env
source ~/travis-env/bin/activate
fi
- python --version

install:
- pip install setuptools pip --upgrade
- pip install -e file://$PWD#egg=ipython[test] --upgrade
- pip install codecov --upgrade
- sudo apt-get install graphviz
- pip install pip --upgrade
- pip install setuptools --upgrade
- pip install -e file://$PWD#egg=ipython[test] --upgrade
- pip install trio curio --upgrade --upgrade-strategy eager
- pip install pytest 'matplotlib !=3.2.0' mypy
- pip install codecov check-manifest --upgrade

script:
- cd /tmp && iptest --coverage xml && cd -
# On the latest Python only, make sure that the docs build.
- |
if [[ "$TRAVIS_PYTHON_VERSION" == "3.6" ]]; then
pip install -r docs/requirements.txt
make -C docs/ html SPHINXOPTS="-W"
fi
- check-manifest
- |
if [[ "$TRAVIS_PYTHON_VERSION" == "nightly" ]]; then
# on nightly fake parso known the grammar
cp /home/travis/virtualenv/python3.9-dev/lib/python3.9/site-packages/parso/python/grammar38.txt /home/travis/virtualenv/python3.9-dev/lib/python3.9/site-packages/parso/python/grammar39.txt
fi
- cd /tmp && iptest --coverage xml && cd -
- pytest IPython
- mypy --ignore-missing-imports -m IPython.terminal.ptutils
# On the latest Python (on Linux) only, make sure that the docs build.
- |
if [[ "$TRAVIS_PYTHON_VERSION" == "3.7" ]] && [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
pip install -r docs/requirements.txt
python tools/fixup_whats_new_pr.py
make -C docs/ html SPHINXOPTS="-W"
fi
after_success:
- cp /tmp/ipy_coverage.xml ./
- cp /tmp/.coverage ./
- codecov
- cp /tmp/ipy_coverage.xml ./
- cp /tmp/.coverage ./
- codecov

matrix:
allow_failures:
- python: nightly
include:
- arch: amd64
python: "3.7"
dist: xenial
sudo: true
- arch: amd64
python: "3.8-dev"
dist: xenial
sudo: true
- arch: amd64
python: "3.7-dev"
dist: xenial
sudo: true
- arch: amd64
python: "nightly"
dist: xenial
sudo: true
- arch: arm64
python: "nightly"
dist: bionic
env: ARM64=True
sudo: true
- os: osx
language: generic
python: 3.6
env: TRAVIS_PYTHON_VERSION=3.6
- os: osx
language: generic
python: 3.7
env: TRAVIS_PYTHON_VERSION=3.7
allow_failures:
- python: nightly

before_deploy:
- rm -rf dist/
- python setup.py sdist
- python setup.py bdist_wheel
- rm -rf dist/
- python setup.py sdist
- python setup.py bdist_wheel

deploy:
provider: releases
api_key:
secure: Y/Ae9tYs5aoBU8bDjN2YrwGG6tCbezj/h3Lcmtx8HQavSbBgXnhnZVRb2snOKD7auqnqjfT/7QMm4ZyKvaOEgyggGktKqEKYHC8KOZ7yp8I5/UMDtk6j9TnXpSqqBxPiud4MDV76SfRYEQiaDoG4tGGvSfPJ9KcNjKrNvSyyxns=
file: dist/*
file_glob: true
skip_cleanup: true
on:
repo: ipython/ipython
all_branches: true # Backports are released from e.g. 5.x branch
tags: true
python: 3.6 # Any version should work, but we only need one
provider: releases
api_key:
secure: Y/Ae9tYs5aoBU8bDjN2YrwGG6tCbezj/h3Lcmtx8HQavSbBgXnhnZVRb2snOKD7auqnqjfT/7QMm4ZyKvaOEgyggGktKqEKYHC8KOZ7yp8I5/UMDtk6j9TnXpSqqBxPiud4MDV76SfRYEQiaDoG4tGGvSfPJ9KcNjKrNvSyyxns=
file: dist/*
file_glob: true
skip_cleanup: true
on:
repo: ipython/ipython
all_branches: true # Backports are released from e.g. 5.x branch
tags: true
python: 3.6 # Any version should work, but we only need one
condition: $TRAVIS_OS_NAME = "linux"
60 changes: 55 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
## Triaging Issues

On the IPython repository, we strive to trust users and give them responsibility.
By using one of our bots, any user can close issues or add/remove
labels by mentioning the bot and asking it to do things on your behalf.

To close an issue (or PR), even if you did not create it, use the following:

> @meeseeksdev close
This command can be in the middle of another comment, but must start on its
own line.

To add labels to an issue, ask the bot to `tag` with a comma-separated list of
tags to add:

> @meeseeksdev tag windows, documentation
Only already pre-created tags can be added. So far, the list is limited to:
`async/await`, `backported`, `help wanted`, `documentation`, `notebook`,
`tab-completion`, `windows`

To remove a label, use the `untag` command:

> @meeseeksdev untag windows, documentation
We'll be adding additional capabilities for the bot and will share them here
when they are ready to be used.

## Opening an Issue

When opening a new Issue, please take the following steps:
@@ -6,13 +35,13 @@ When opening a new Issue, please take the following steps:
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
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.
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

@@ -26,8 +55,8 @@ Some guidelines on contributing to IPython:
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
- 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.
@@ -43,3 +72,24 @@ 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).

## Running Tests

All the tests can by running
```shell
iptest
```

All the tests for a single module (for example **test_alias**) can be run by using the fully qualified path to the module.
```shell
iptest IPython.core.tests.test_alias
```

Only a single test (for example **test_alias_lifecycle**) within a single file can be run by adding the specific test after a `:` at the end:
```shell
iptest IPython.core.tests.test_alias:test_alias_lifecycle
```

For convenience, the full path to a file can often be used instead of the module path on unix systems. For example we can run all the tests by using
```shell
iptest IPython/core/tests/test_alias.py
```
37 changes: 2 additions & 35 deletions COPYING.rst
Original file line number Diff line number Diff line change
@@ -3,39 +3,8 @@
=============================

IPython is licensed under the terms of the Modified BSD License (also known as
New or Revised or 3-Clause BSD), as follows:
New or Revised or 3-Clause BSD). See the LICENSE file.

- Copyright (c) 2008-2014, IPython Development Team
- Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
- Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
- Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

Neither the name of the IPython Development Team nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About the IPython Development Team
----------------------------------
@@ -45,9 +14,7 @@ Fernando Perez began IPython in 2001 based on code from Janko Hauser
the project lead.

The IPython Development Team is the set of all contributors to the IPython
project. This includes all of the IPython subprojects. A full list with
details is kept in the documentation directory, in the file
``about/credits.txt``.
project. This includes all of the IPython subprojects.

The core team that coordinates development on GitHub can be found here:
https://github.com/ipython/.
Loading