##// END OF EJS Templates
Bit nitpicky about rst markup, find more errors.
Bit nitpicky about rst markup, find more errors.

File last commit:

r24735:88321584
r24735:88321584
Show More
version7.rst
230 lines | 6.9 KiB | text/x-rst | RstLexer
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 ============
7.x Series
============
.. _whatsnew700:
IPython 7.0.0
=============
Matthias Bussonnier
Prepare changelog for relese
r24603 Released Thursday September 27th, 2018
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
IPython 7 include major features improvement as you can read in the following
Paul Ivanov
fix typos, migrate latest to release notes
r24554 changelog. This is also the second major version of IPython to support only
Python 3 – starting at Python 3.4. Python 2 is still community supported
on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
is on Jan 1st 2020.
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
backported more than `70 Pull-Requests
Matthias Bussonnier
update release process
r24536 <https://github.com/ipython/ipython/pulls?page=3&q=is%3Apr+sort%3Aupdated-desc+author%3Aapp%2Fmeeseeksdev++5.x&utf8=%E2%9C%93>`_, but there are still many PRs that required manually work, and this is an area of the project were you can easily contribute by looking for `PRs still needed backport <https://github.com/ipython/ipython/issues?q=label%3A%22Still+Needs+Manual+Backport%22+is%3Aclosed+sort%3Aupdated-desc>`_
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
Paul Ivanov
fix typos, migrate latest to release notes
r24554 IPython 6.x branch will likely not see any further release unless critical
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 bugs are found.
Paul Ivanov
fix typos, migrate latest to release notes
r24554 Make sure you have pip > 9.0 before upgrading. You should be able to update by simply running
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
.. code::
pip install ipython --upgrade
Yarko Tymciurak
update documentation to add beta install instructions
r24582 .. only:: ipydev
Matthias Bussonnier
update instructions: --pre apply to rc as well
r24585 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
version, use pip ``--pre`` flag.
Yarko Tymciurak
update documentation to add beta install instructions
r24582
.. code::
pip install ipython --upgrade --pre
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 Or if you have conda installed:
.. code::
conda install ipython
Prompt Toolkit 2.0
------------------
Paul Ivanov
fix typos, migrate latest to release notes
r24554 IPython 7.0+ now uses ``prompt_toolkit 2.0``, if you still need to use earlier
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 ``prompt_toolkit`` version you may need to pin IPython to ``<7.0``.
Matthias Bussonnier
move infor to the right place
r24476 Autowait: Asynchronous REPL
---------------------------
Matthias Bussonnier
Prototype async REPL using IPython, take III...
r24463
Matthias Bussonnier
move infor to the right place
r24476 Staring with IPython 7.0 and on Python 3.6+, IPython can automatically await
code at top level, you should not need to access an event loop or runner
yourself. To know more read the :ref:`autoawait` section of our docs, see
:ghpull:`11265` or try the following code::
Matthias Bussonnier
Prototype async REPL using IPython, take III...
r24463
Python 3.6.0
Type 'copyright', 'credits' or 'license' for more information
Matthias Bussonnier
move infor to the right place
r24476 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
Matthias Bussonnier
Prototype async REPL using IPython, take III...
r24463
In [1]: import aiohttp
...: result = aiohttp.get('https://api.github.com')
In [2]: response = await result
<pause for a few 100s ms>
In [3]: await response.json()
Out[3]:
{'authorizations_url': 'https://api.github.com/authorizations',
'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
...
}
Matthias Bussonnier
docs cleanup, reformat code, remove dead code.
r24490 .. note::
Async integration is experimental code, behavior may change or be removed
between Python and IPython versions without warnings.
Matthias Bussonnier
Prototype async REPL using IPython, take III...
r24463
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 Integration is by default with `asyncio`, but other libraries can be configured,
Matthias Bussonnier
Prototype async REPL using IPython, take III...
r24463 like ``curio`` or ``trio``, to improve concurrency in the REPL::
In [1]: %autoawait trio
In [2]: import trio
In [3]: async def child(i):
...: print(" child %s goes to sleep"%i)
...: await trio.sleep(2)
...: print(" child %s wakes up"%i)
In [4]: print('parent start')
...: async with trio.open_nursery() as n:
...: for i in range(3):
...: n.spawn(child, i)
...: print('parent end')
parent start
child 2 goes to sleep
child 0 goes to sleep
child 1 goes to sleep
<about 2 seconds pause>
child 2 wakes up
child 1 wakes up
child 0 wakes up
parent end
See :ref:`autoawait` for more information.
Matthias Bussonnier
move infor to the right place
r24476 Asynchronous code in a Notebook interface or any other frontend using the
Jupyter Protocol will need further updates of the IPykernel package.
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 Non-Asynchronous code
~~~~~~~~~~~~~~~~~~~~~
Matthias Bussonnier
docs cleanup, reformat code, remove dead code.
r24490
wim glenn
Fix a paragraph that read very poorly
r24675 As the internal API of IPython is now asynchronous, IPython needs to run under
an event loop. In order to allow many workflows, (like using the :magic:`%run`
Matthias Bussonnier
Fix magic directive and role....
r24579 magic, or copy_pasting code that explicitly starts/stop event loop), when
top-level code is detected as not being asynchronous, IPython code is advanced
wim glenn
Fix a paragraph that read very poorly
r24675 via a pseudo-synchronous runner, and may not advance pending tasks.
Matthias Bussonnier
move infor to the right place
r24476
Change to Nested Embed
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 ~~~~~~~~~~~~~~~~~~~~~~
Matthias Bussonnier
move infor to the right place
r24476
Matthias Bussonnier
docs cleanup, reformat code, remove dead code.
r24490 The introduction of the ability to run async code had some effect on the
``IPython.embed()`` API. By default embed will not allow you to run asynchronous
code unless a event loop is specified.
Matthias Bussonnier
add notes some magic don't work yet
r24500 Effects on Magics
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 ~~~~~~~~~~~~~~~~~
Matthias Bussonnier
add notes some magic don't work yet
r24500
Some magics will not work with Async, and will need updates. Contribution
welcome.
Matthias Bussonnier
docs cleanup, reformat code, remove dead code.
r24490 Expected Future changes
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 ~~~~~~~~~~~~~~~~~~~~~~~
Matthias Bussonnier
docs cleanup, reformat code, remove dead code.
r24490
We expect more internal but public IPython function to become ``async``, and
will likely end up having a persisting event loop while IPython is running.
Matthias Bussonnier
move infor to the right place
r24476
Matthias Bussonnier
docs cleanup, reformat code, remove dead code.
r24490 Thanks
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 ~~~~~~
Matthias Bussonnier
Prototype async REPL using IPython, take III...
r24463
Matthias Bussonnier
docs cleanup, reformat code, remove dead code.
r24490 This took more than a year in the making, and the code was rebased a number of
time leading to commit authorship that may have been lost in the final
Pull-Request. Huge thanks to many people for contribution, discussion, code,
documentation, use-case: dalejung, danielballan, ellisonbg, fperez, gnestor,
Paul Ivanov
fix typos, migrate latest to release notes
r24554 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
Matthias Bussonnier
typos
r24546 Autoreload Improvement
----------------------
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
Matthias Bussonnier
Fix magic directive and role....
r24579 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
classes. Earlier, only methods existing as of the initial import were being
tracked and updated.
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
Matthias Bussonnier
Fix magic directive and role....
r24579 This new feature helps dual environment development - Jupyter+IDE - where the
code gradually moves from notebook cells to package files, as it gets
structured.
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
Matthias Bussonnier
Fix magic directive and role....
r24579 **Example**: An instance of the class ``MyClass`` will be able to access the
method ``cube()`` after it is uncommented and the file ``file1.py`` saved on
disk.
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
..code::
# notebook
from mymodule import MyClass
first = MyClass(5)
.. code::
Matthias Bussonnier
update release process
r24536
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535 # mymodule/file1.py
class MyClass:
def __init__(self, a=10):
self.a = a
def square(self):
print('compute square')
return self.a*self.a
# def cube(self):
# print('compute cube')
# return self.a*self.a*self.a
Misc
----
The autoindent feature that was deprecated in 5.x was re-enabled and
un-deprecated in :ghpull:`11257`
Matthias Bussonnier
Fix magic directive and role....
r24579 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
Matthias Bussonnier
Bit nitpicky about rst markup, find more errors.
r24735 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
:cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
Matthias Bussonnier
Fix magic directive and role....
r24579 the given code is non-zero (thus halting execution of further cells in a
notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
Matthias Bussonnier
Start to updates the what's new / changelog....
r24535
Deprecations
------------
A couple of unused function and methods have been deprecated and will be removed
in future versions:
- ``IPython.utils.io.raw_print_err``
- ``IPython.utils.io.raw_print``
Backwards incompatible changes
------------------------------
* The API for transforming input before it is parsed as Python code has been
completely redesigned, and any custom input transformations will need to be
rewritten. See :doc:`/config/inputtransforms` for details of the new API.