Show More
@@ -5,30 +5,12 b' python:' | |||||
5 | - 3.5 |
|
5 | - 3.5 | |
6 | - 3.4 |
|
6 | - 3.4 | |
7 | - 3.3 |
|
7 | - 3.3 | |
8 | - 2.7 |
|
|||
9 | - pypy |
|
|||
10 | sudo: false |
|
8 | sudo: false | |
11 | before_install: |
|
9 | before_install: | |
12 | - git clone --quiet --depth 1 https://github.com/minrk/travis-wheels travis-wheels |
|
10 | - git clone --quiet --depth 1 https://github.com/minrk/travis-wheels travis-wheels | |
13 | - 'if [[ $GROUP != js* ]]; then COVERAGE=""; fi' |
|
11 | - 'if [[ $GROUP != js* ]]; then COVERAGE=""; fi' | |
14 | install: |
|
12 | install: | |
15 | - pip install "setuptools>=18.5" |
|
13 | - pip install "setuptools>=18.5" | |
16 | # Installs PyPy (+ its Numpy). Based on @frol comment at: |
|
|||
17 | # https://github.com/travis-ci/travis-ci/issues/5027 |
|
|||
18 | - | |
|
|||
19 | if [ "$TRAVIS_PYTHON_VERSION" = "pypy" ]; then |
|
|||
20 | export PYENV_ROOT="$HOME/.pyenv" |
|
|||
21 | if [ -f "$PYENV_ROOT/bin/pyenv" ]; then |
|
|||
22 | cd "$PYENV_ROOT" && git pull |
|
|||
23 | else |
|
|||
24 | rm -rf "$PYENV_ROOT" && git clone --depth 1 https://github.com/yyuu/pyenv.git "$PYENV_ROOT" |
|
|||
25 | fi |
|
|||
26 | export PYPY_VERSION="5.3.1" |
|
|||
27 | "$PYENV_ROOT/bin/pyenv" install "pypy-$PYPY_VERSION" |
|
|||
28 | virtualenv --python="$PYENV_ROOT/versions/pypy-$PYPY_VERSION/bin/python" "$HOME/virtualenvs/pypy-$PYPY_VERSION" |
|
|||
29 | source "$HOME/virtualenvs/pypy-$PYPY_VERSION/bin/activate" |
|
|||
30 | pip install https://bitbucket.org/pypy/numpy/get/master.zip |
|
|||
31 | fi |
|
|||
32 | - pip install -f travis-wheels/wheelhouse -e file://$PWD#egg=ipython[test] |
|
14 | - pip install -f travis-wheels/wheelhouse -e file://$PWD#egg=ipython[test] | |
33 | - pip install codecov |
|
15 | - pip install codecov | |
34 | script: |
|
16 | script: | |
@@ -41,4 +23,3 b' after_success:' | |||||
41 | matrix: |
|
23 | matrix: | |
42 | allow_failures: |
|
24 | allow_failures: | |
43 | - python: nightly |
|
25 | - python: nightly | |
44 | - python: pypy |
|
@@ -30,8 +30,8 b' import warnings' | |||||
30 |
|
30 | |||
31 | # Don't forget to also update setup.py when this changes! |
|
31 | # Don't forget to also update setup.py when this changes! | |
32 | v = sys.version_info |
|
32 | v = sys.version_info | |
33 | if v[:2] < (2,7) or (v[0] >= 3 and v[:2] < (3,3)): |
|
33 | if v[:2] < (3,3): | |
34 |
raise ImportError('IPython requires Python version |
|
34 | raise ImportError('IPython requires Python version 3.3 or above.') | |
35 | del v |
|
35 | del v | |
36 |
|
36 | |||
37 | # Make it easy to import extensions - they are always directly on pythonpath. |
|
37 | # Make it easy to import extensions - they are always directly on pythonpath. |
@@ -3,6 +3,7 b'' | |||||
3 | from __future__ import print_function |
|
3 | from __future__ import print_function | |
4 | from __future__ import absolute_import |
|
4 | from __future__ import absolute_import | |
5 |
|
5 | |||
|
6 | import argparse | |||
6 | import io |
|
7 | import io | |
7 | import sys |
|
8 | import sys | |
8 | from pprint import pformat |
|
9 | from pprint import pformat | |
@@ -548,11 +549,7 b' Currently the magic system has the following functions:""",' | |||||
548 | @magic_arguments.magic_arguments() |
|
549 | @magic_arguments.magic_arguments() | |
549 | @magic_arguments.argument( |
|
550 | @magic_arguments.argument( | |
550 | '-e', '--export', action='store_true', default=False, |
|
551 | '-e', '--export', action='store_true', default=False, | |
551 | help='Export IPython history as a notebook. The filename argument ' |
|
552 | help=argparse.SUPPRESS | |
552 | 'is used to specify the notebook name and format. For example ' |
|
|||
553 | 'a filename of notebook.ipynb will result in a notebook name ' |
|
|||
554 | 'of "notebook" and a format of "json". Likewise using a ".py" ' |
|
|||
555 | 'file extension will write the notebook as a Python script' |
|
|||
556 | ) |
|
553 | ) | |
557 | @magic_arguments.argument( |
|
554 | @magic_arguments.argument( | |
558 | 'filename', type=unicode_type, |
|
555 | 'filename', type=unicode_type, | |
@@ -563,22 +560,24 b' Currently the magic system has the following functions:""",' | |||||
563 | """Export and convert IPython notebooks. |
|
560 | """Export and convert IPython notebooks. | |
564 |
|
561 | |||
565 | This function can export the current IPython history to a notebook file. |
|
562 | This function can export the current IPython history to a notebook file. | |
566 |
For example, to export the history to "foo.ipynb" do "%notebook |
|
563 | For example, to export the history to "foo.ipynb" do "%notebook foo.ipynb". | |
567 | To export the history to "foo.py" do "%notebook -e foo.py". |
|
564 | ||
|
565 | The -e or --export flag is deprecated in IPython 5.2, and will be | |||
|
566 | removed in the future. | |||
568 | """ |
|
567 | """ | |
569 | args = magic_arguments.parse_argstring(self.notebook, s) |
|
568 | args = magic_arguments.parse_argstring(self.notebook, s) | |
570 |
|
569 | |||
571 | from nbformat import write, v4 |
|
570 | from nbformat import write, v4 | |
572 | if args.export: |
|
571 | ||
573 |
|
|
572 | cells = [] | |
574 |
|
|
573 | hist = list(self.shell.history_manager.get_range()) | |
575 |
|
|
574 | if(len(hist)<=1): | |
576 |
|
|
575 | raise ValueError('History is empty, cannot export') | |
577 |
|
|
576 | for session, execution_count, source in hist[:-1]: | |
578 |
|
|
577 | cells.append(v4.new_code_cell( | |
579 |
|
|
578 | execution_count=execution_count, | |
580 |
|
|
579 | source=source | |
581 |
|
|
580 | )) | |
582 |
|
|
581 | nb = v4.new_notebook(cells=cells) | |
583 |
|
|
582 | with io.open(args.filename, 'w', encoding='utf-8') as f: | |
584 |
|
|
583 | write(nb, f, version=4) |
@@ -19,12 +19,12 b" name = 'ipython'" | |||||
19 | # IPython version information. An empty _version_extra corresponds to a full |
|
19 | # IPython version information. An empty _version_extra corresponds to a full | |
20 | # release. 'dev' as a _version_extra string means this is a development |
|
20 | # release. 'dev' as a _version_extra string means this is a development | |
21 | # version |
|
21 | # version | |
22 |
_version_major = |
|
22 | _version_major = 6 | |
23 |
_version_minor = |
|
23 | _version_minor = 0 | |
24 | _version_patch = 0 |
|
24 | _version_patch = 0 | |
25 | _version_extra = '.dev' |
|
25 | _version_extra = '.dev' | |
26 | # _version_extra = 'rc1' |
|
26 | # _version_extra = 'rc1' | |
27 | #_version_extra = '' # Uncomment this for full releases |
|
27 | # _version_extra = '' # Uncomment this for full releases | |
28 |
|
28 | |||
29 | # release.codename is deprecated in 2.0, will be removed in 3.0 |
|
29 | # release.codename is deprecated in 2.0, will be removed in 3.0 | |
30 | codename = '' |
|
30 | codename = '' | |
@@ -116,8 +116,6 b' classifiers = [' | |||||
116 | 'Intended Audience :: Science/Research', |
|
116 | 'Intended Audience :: Science/Research', | |
117 | 'License :: OSI Approved :: BSD License', |
|
117 | 'License :: OSI Approved :: BSD License', | |
118 | 'Programming Language :: Python', |
|
118 | 'Programming Language :: Python', | |
119 | 'Programming Language :: Python :: 2', |
|
|||
120 | 'Programming Language :: Python :: 2.7', |
|
|||
121 | 'Programming Language :: Python :: 3', |
|
119 | 'Programming Language :: Python :: 3', | |
122 | 'Topic :: System :: Shells' |
|
120 | 'Topic :: System :: Shells' | |
123 | ] |
|
121 | ] |
@@ -22,8 +22,8 b' Welcome to IPython. Our full documentation is available on `ipython.readthedocs' | |||||
22 | <https://ipython.readthedocs.io/en/stable/>`_ and contain information on how to install, use |
|
22 | <https://ipython.readthedocs.io/en/stable/>`_ and contain information on how to install, use | |
23 | contribute to the project. |
|
23 | contribute to the project. | |
24 |
|
24 | |||
25 |
Officially, IPython requires Python version |
|
25 | Officially, IPython requires Python version 3.3 and above. | |
26 |
IPython |
|
26 | IPython 5.x is the last IPython version to support Python 2.7. | |
27 |
|
27 | |||
28 | The Notebook, Qt console and a number of other pieces are now parts of *Jupyter*. |
|
28 | The Notebook, Qt console and a number of other pieces are now parts of *Jupyter*. | |
29 | See the `Jupyter installation docs <http://jupyter.readthedocs.io/en/latest/install.html>`__ |
|
29 | See the `Jupyter installation docs <http://jupyter.readthedocs.io/en/latest/install.html>`__ |
@@ -43,10 +43,12 b' For example::' | |||||
43 | Custom exception tracebacks |
|
43 | Custom exception tracebacks | |
44 | =========================== |
|
44 | =========================== | |
45 |
|
45 | |||
46 |
Rarely, you might want to display a |
|
46 | Rarely, you might want to display a custom traceback when reporting an | |
47 | IPython's own parallel computing framework does this to display errors from the |
|
47 | exception. To do this, define the custom traceback using | |
48 |
|
|
48 | `_render_traceback_(self)` method which returns a list of strings, one string | |
49 | a list of strings, each containing one line of the traceback. |
|
49 | for each line of the traceback. For example, the `ipyparallel | |
|
50 | <http://ipyparallel.readthedocs.io/>`__ a parallel computing framework for | |||
|
51 | IPython, does this to display errors from multiple engines. | |||
50 |
|
52 | |||
51 | Please be conservative in using this feature; by replacing the default traceback |
|
53 | Please be conservative in using this feature; by replacing the default traceback | |
52 | you may hide important information from the user. |
|
54 | you may hide important information from the user. |
@@ -176,8 +176,10 b' Run the ``release`` script, this step requires having a current wheel, Python' | |||||
176 | ./tools/release |
|
176 | ./tools/release | |
177 |
|
177 | |||
178 | This makes the tarballs, zipfiles, and wheels, and put them under the ``dist/`` |
|
178 | This makes the tarballs, zipfiles, and wheels, and put them under the ``dist/`` | |
179 |
folder. Be sure to test the ``wheel`` and the ``sdist`` locally before |
|
179 | folder. Be sure to test the ``wheels`` and the ``sdist`` locally before | |
180 | them to PyPI. |
|
180 | uploading them to PyPI. We do not use an universal wheel as each wheel | |
|
181 | installs an ``ipython2`` or ``ipython3`` script, depending on the version of | |||
|
182 | Python it is built for. Using an universal wheel would prevent this. | |||
181 |
|
183 | |||
182 | Use the following to actually upload the result of the build:: |
|
184 | Use the following to actually upload the result of the build:: | |
183 |
|
185 |
@@ -41,20 +41,17 b' The next thing you need to know is what to call your configuration file. The' | |||||
41 | basic idea is that each application has its own default configuration filename. |
|
41 | basic idea is that each application has its own default configuration filename. | |
42 | The default named used by the :command:`ipython` command line program is |
|
42 | The default named used by the :command:`ipython` command line program is | |
43 | :file:`ipython_config.py`, and *all* IPython applications will use this file. |
|
43 | :file:`ipython_config.py`, and *all* IPython applications will use this file. | |
44 | Other applications, such as the parallel :command:`ipcluster` scripts or the |
|
44 | The IPython kernel will load its own config file *after* | |
45 | QtConsole will load their own config files *after* :file:`ipython_config.py`. To |
|
45 | :file:`ipython_config.py`. To load a particular configuration file instead of | |
46 | load a particular configuration file instead of the default, the name can be |
|
46 | the default, the name can be overridden by the ``config_file`` command line | |
47 | overridden by the ``config_file`` command line flag. |
|
47 | flag. | |
48 |
|
48 | |||
49 | To generate the default configuration files, do:: |
|
49 | To generate the default configuration files, do:: | |
50 |
|
50 | |||
51 | $ ipython profile create |
|
51 | $ ipython profile create | |
52 |
|
52 | |||
53 | and you will have a default :file:`ipython_config.py` in your IPython directory |
|
53 | and you will have a default :file:`ipython_config.py` in your IPython directory | |
54 | under :file:`profile_default`. If you want the default config files for the |
|
54 | under :file:`profile_default`. | |
55 | :mod:`IPython.parallel` applications, add ``--parallel`` to the end of the |
|
|||
56 | command-line args. |
|
|||
57 |
|
||||
58 | .. note:: |
|
55 | .. note:: | |
59 |
|
56 | |||
60 | IPython configuration options are case sensitive, and IPython cannot |
|
57 | IPython configuration options are case sensitive, and IPython cannot |
@@ -4,7 +4,7 b' Installing IPython' | |||||
4 | ================== |
|
4 | ================== | |
5 |
|
5 | |||
6 |
|
6 | |||
7 | IPython requires Python 2.7 or ≥ 3.3. |
|
7 | IPython 6 requires Python ≥ 3.3. IPython 5.x can be installed on Python 2. | |
8 |
|
8 | |||
9 |
|
9 | |||
10 | Quick Install |
|
10 | Quick Install |
@@ -232,50 +232,9 b' and clients.' | |||||
232 | Interactive parallel computing |
|
232 | Interactive parallel computing | |
233 | ============================== |
|
233 | ============================== | |
234 |
|
234 | |||
235 | .. note:: |
|
|||
236 |
|
235 | |||
237 |
|
|
236 | This functionality is optional and now part of the `ipyparallel | |
238 |
|
|
237 | <http://ipyparallel.readthedocs.io/>`_ project. | |
239 |
|
||||
240 | Increasingly, parallel computer hardware, such as multicore CPUs, clusters and |
|
|||
241 | supercomputers, is becoming ubiquitous. Over the last several years, we have |
|
|||
242 | developed an architecture within IPython that allows such hardware to be used |
|
|||
243 | quickly and easily from Python. Moreover, this architecture is designed to |
|
|||
244 | support interactive and collaborative parallel computing. |
|
|||
245 |
|
||||
246 | The main features of this system are: |
|
|||
247 |
|
||||
248 | * Quickly parallelize Python code from an interactive Python/IPython session. |
|
|||
249 |
|
||||
250 | * A flexible and dynamic process model that be deployed on anything from |
|
|||
251 | multicore workstations to supercomputers. |
|
|||
252 |
|
||||
253 | * An architecture that supports many different styles of parallelism, from |
|
|||
254 | message passing to task farming. And all of these styles can be handled |
|
|||
255 | interactively. |
|
|||
256 |
|
||||
257 | * Both blocking and fully asynchronous interfaces. |
|
|||
258 |
|
||||
259 | * High level APIs that enable many things to be parallelized in a few lines |
|
|||
260 | of code. |
|
|||
261 |
|
||||
262 | * Write parallel code that will run unchanged on everything from multicore |
|
|||
263 | workstations to supercomputers. |
|
|||
264 |
|
||||
265 | * Full integration with Message Passing libraries (MPI). |
|
|||
266 |
|
||||
267 | * Capabilities based security model with full encryption of network connections. |
|
|||
268 |
|
||||
269 | * Share live parallel jobs with other users securely. We call this |
|
|||
270 | collaborative parallel computing. |
|
|||
271 |
|
||||
272 | * Dynamically load balanced task farming system. |
|
|||
273 |
|
||||
274 | * Robust error handling. Python exceptions raised in parallel execution are |
|
|||
275 | gathered and presented to the top-level code. |
|
|||
276 |
|
||||
277 | For more information, see our :ref:`overview <parallel_index>` of using IPython |
|
|||
278 | for parallel computing. |
|
|||
279 |
|
238 | |||
280 | Portability and Python requirements |
|
239 | Portability and Python requirements | |
281 | ----------------------------------- |
|
240 | ----------------------------------- |
@@ -3,6 +3,36 b'' | |||||
3 | Issues closed in the 5.x development cycle |
|
3 | Issues closed in the 5.x development cycle | |
4 | ========================================== |
|
4 | ========================================== | |
5 |
|
5 | |||
|
6 | Issues closed in 5.1 | |||
|
7 | -------------------- | |||
|
8 | ||||
|
9 | GitHub stats for 2016/07/08 - 2016/08/13 (tag: 5.0.0) | |||
|
10 | ||||
|
11 | These lists are automatically generated, and may be incomplete or contain duplicates. | |||
|
12 | ||||
|
13 | We closed 33 issues and merged 43 pull requests. | |||
|
14 | The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A5.1+>`__ | |||
|
15 | ||||
|
16 | The following 17 authors contributed 129 commits. | |||
|
17 | ||||
|
18 | * Antony Lee | |||
|
19 | * Benjamin Ragan-Kelley | |||
|
20 | * Carol Willing | |||
|
21 | * Danilo J. S. Bellini | |||
|
22 | * 小明 (`dongweiming <https://github.com/dongweiming>`__) | |||
|
23 | * Fernando Perez | |||
|
24 | * Gavin Cooper | |||
|
25 | * Gil Forsyth | |||
|
26 | * Jacob Niehus | |||
|
27 | * Julian Kuhlmann | |||
|
28 | * Matthias Bussonnier | |||
|
29 | * Michael Pacer | |||
|
30 | * Nik Nyby | |||
|
31 | * Pavol Juhas | |||
|
32 | * Luke Deen Taylor | |||
|
33 | * Thomas Kluyver | |||
|
34 | * Tamir Bahar | |||
|
35 | ||||
6 |
|
36 | |||
7 | Issues closed in 5.0 |
|
37 | Issues closed in 5.0 | |
8 | -------------------- |
|
38 | -------------------- |
@@ -27,8 +27,8 b' import sys' | |||||
27 | # This check is also made in IPython/__init__, don't forget to update both when |
|
27 | # This check is also made in IPython/__init__, don't forget to update both when | |
28 | # changing Python version requirements. |
|
28 | # changing Python version requirements. | |
29 | v = sys.version_info |
|
29 | v = sys.version_info | |
30 | if v[:2] < (2,7) or (v[0] >= 3 and v[:2] < (3,3)): |
|
30 | if v[:2] < (3,3): | |
31 |
error = "ERROR: IPython requires Python version |
|
31 | error = "ERROR: IPython requires Python version 3.3 or above." | |
32 | print(error, file=sys.stderr) |
|
32 | print(error, file=sys.stderr) | |
33 | sys.exit(1) |
|
33 | sys.exit(1) | |
34 |
|
34 | |||
@@ -239,6 +239,7 b' for key, deps in extras_require.items():' | |||||
239 | extras_require['all'] = everything |
|
239 | extras_require['all'] = everything | |
240 |
|
240 | |||
241 | if 'setuptools' in sys.modules: |
|
241 | if 'setuptools' in sys.modules: | |
|
242 | setuptools_extra_args['python_requires'] = '>=3.3' | |||
242 | setuptools_extra_args['zip_safe'] = False |
|
243 | setuptools_extra_args['zip_safe'] = False | |
243 | setuptools_extra_args['entry_points'] = { |
|
244 | setuptools_extra_args['entry_points'] = { | |
244 | 'console_scripts': find_entry_points(), |
|
245 | 'console_scripts': find_entry_points(), |
@@ -21,7 +21,7 b" archive = '%s:%s' % (archive_user, archive_dir)" | |||||
21 | sdists = './setup.py sdist --formats=gztar,zip' |
|
21 | sdists = './setup.py sdist --formats=gztar,zip' | |
22 | # Binary dists |
|
22 | # Binary dists | |
23 | def buildwheels(): |
|
23 | def buildwheels(): | |
24 | sh('python setupegg.py bdist_wheel') |
|
24 | sh('python3 setupegg.py bdist_wheel' % py) | |
25 |
|
25 | |||
26 | # Utility functions |
|
26 | # Utility functions | |
27 | def sh(cmd): |
|
27 | def sh(cmd): |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now