diff --git a/docs/source/whatsnew/version6.rst b/docs/source/whatsnew/version6.rst index a3aeb6e..9ef38af 100644 --- a/docs/source/whatsnew/version6.rst +++ b/docs/source/whatsnew/version6.rst @@ -7,10 +7,10 @@ IPython 6.0 Released April 19th, 2017 -IPython 6 feature a major improvement in the completion machinery which is now +IPython 6 features a major improvement in the completion machinery which is now capable of completing non-executed code. It is also the first version of IPython to stop compatibility with Python 2, which is still supported on the bugfix only -5.x branch. Read below to have a non-exhaustive list of new features. +5.x branch. Read below for a non-exhaustive list of new features. Make sure you have pip > 9.0 before upgrading. You should be able to update by using: @@ -22,7 +22,7 @@ You should be able to update by using: .. note:: - If your pip version is greater of equal to pip 9.0.1 you will automatically get + If your pip version is greater than or equal to pip 9.0.1 you will automatically get the most recent version of IPython compatible with your system: on Python 2 you will get the latest IPython 5.x bugfix, while in Python 3 you will get the latest 6.x stable version. @@ -30,20 +30,20 @@ You should be able to update by using: New completion API and Interface -------------------------------- -The completer Completion API has seen an overhaul, and the new completer have -plenty of improvement both from the end users of terminal IPython or for +The completer Completion API has seen an overhaul, and the new completer has +plenty of improvements both from the end users of terminal IPython and for consumers of the API. This new API is capable of pulling completions from :any:`jedi`, thus allowing -type inference on non-executed code. If :any:`jedi` is installed completion like -the following are now becoming possible without code evaluation: +type inference on non-executed code. If :any:`jedi` is installed, completions like +the following are now possible without code evaluation: >>> data = ['Number of users', 123_456] ... data[0]. That is to say, IPython is now capable of inferring that `data[0]` is a string, and will suggest completions like `.capitalize`. The completion power of IPython -will increase with new Jedi releases, and a number of bugs and more completions +will increase with new Jedi releases, and a number of bug-fixes and more completions are already available on the development version of :any:`jedi` if you are curious. With the help of prompt toolkit, types of completions can be shown in the @@ -60,36 +60,36 @@ The appearance of the completer is controlled by the type differently depending on the value among ``'column'``, ``'multicolumn'`` and ``'readlinelike'`` -The use of Jedi also fulfills a number of requests and fix a number of bugs -like case-insensitive completion, completion after division operator: See +The use of Jedi also fulfills a number of requests and fixes a number of bugs +like case-insensitive completion and completion after division operator: See :ghpull:`10182`. Extra patches and updates will be needed to the :mod:`ipykernel` package for this feature to be available to other clients like Jupyter Notebook, Lab, Nteract, Hydrogen... -The use of Jedi is should be barely noticeable on recent enough machines, but -can be slower on older ones. To tweak the performances, the amount +The use of Jedi should be barely noticeable on recent machines, but +can be slower on older ones. To tweak the performance, the amount of time given to Jedi to compute type inference can be adjusted with -``c.IPCompleter.jedi_compute_type_timeout``. The objects whose type were not +``c.IPCompleter.jedi_compute_type_timeout``. The objects whose type was not inferred will be shown as ````. Jedi can also be completely deactivated by using the ``c.Completer.use_jedi=False`` option. The old ``Completer.complete()`` API is waiting deprecation and should be -replaced replaced by ``Completer.completions()`` in a near future. Feedback on -the current state of the API and suggestions welcome. +replaced replaced by ``Completer.completions()`` in the near future. Feedback on +the current state of the API and suggestions are welcome. Python 3 only codebase ---------------------- One of the large challenges in IPython 6.0 has been the adoption of a pure -Python 3 codebase, which leads us to great length to upstream patches in pip, -pypi and warehouse to make sure Python 2 system still upgrade to the latest -compatible Python version compatible. +Python 3 codebase, which has led to upstream patches in pip, +pypi and warehouse to make sure Python 2 systems still upgrade to the latest +compatible Python version. We remind our Python 2 users that IPython 5 is still compatible with Python 2.7, -still maintained and get regular releases. Using pip 9+, upgrading IPython will +still maintained and will get regular releases. Using pip 9+, upgrading IPython will automatically upgrade to the latest version compatible with your system. .. warning:: @@ -99,7 +99,7 @@ automatically upgrade to the latest version compatible with your system. You can fix this by upgrading pip, and reinstalling ipython, or forcing pip to install an earlier version: ``pip install 'ipython<6'`` -The ability to use only Python 3 on the code base of IPython brings a number +The ability to use only Python 3 on the code base of IPython brings a number of advantages. Most of the newly written code make use of `optional function type annotation `_ leading to clearer code and better documentation. @@ -109,12 +109,12 @@ first time excluding the big split for 4.0). The decrease is potentially a bit more for the sour as some documents like this one are append only and are about 300 lines long. -The removal as of Python2/Python3 shim layer has made the code quite clearer and -more idiomatic in a number of location, and much friendlier to work with and -understand. We hope to further embrace Python 3 capability in the next release +The removal of the Python2/Python3 shim layer has made the code quite a lot clearer and +more idiomatic in a number of locations, and much friendlier to work with and +understand. We hope to further embrace Python 3 capabilities in the next release cycle and introduce more of the Python 3 only idioms (yield from, kwarg only, -general unpacking) in the code base of IPython, and see if we can take advantage -of these as well to improve user experience with better error messages and +general unpacking) in the IPython code base, and see if we can take advantage +of these to improve user experience with better error messages and hints. @@ -130,8 +130,8 @@ team. See the project to bring back the readline interface: `rlipython This change will be backported to the IPython 5.x series. -Miscs improvements ------------------- +Misc improvements +----------------- - The :cellmagic:`capture` magic can now capture the result of a cell (from @@ -182,7 +182,7 @@ development cycle marked for Milestone 6.0. `reload` into the interactive namespace have been removed. You have to explicitly import `reload` from `IPython.lib.deepreload` to use it. -- The :magic:`profile` used to print current IPython profile in use, and which +- The :magic:`profile` used to print the current IPython profile, and which was deprecated in IPython 2.0 does now raise a `DeprecationWarning` error when - used. It is often confused with the :magic:`prun` and the deprecation remove + used. It is often confused with the :magic:`prun` and the deprecation removal should free up the ``profile`` name in future versions.