============ 7.x Series ============ .. _version 790: IPython 7.9 is a small release with a couple of improvement and bug fixes. - Xterm terminal title should be restored on exit :ghpull:`11910` - special variables ``_``,``__``, ``___`` are not set anymore when cache size is 0 or less. :ghpull:`11877` - Autoreload should have regained some speed by using a new heuristic logic to find all objects needing reload. This should avoid large objects traversal like pandas dataframes. :ghpull:`11876` - Get ready for Python 4. :ghpull:`11874` - `%env` Magic nonw has euristic to hide potentially sensitive values :ghpull:`11896` This is a small release despite a number of Pull Request Pending that need to be reviewed/worked on. Many of the core developers have been busy outside of IPython/Jupyter and we thanks all contributor for their patience; we'll work on these as soon as we have time. .. _version780: IPython 7.8.0 ============= IPython 7.8.0 contain a few bugfix and 2 new APIs: - Enable changing the font color for LaTeX rendering :ghpull:`11840` - and Re-Expose some PDB API (see below) Expose Pdb API -------------- Expose the built-in ``pdb.Pdb`` API. ``Pdb`` constructor arguments are generically exposed, regardless of python version. Newly exposed arguments: - ``skip`` - Python 3.1+ - ``nosiginnt`` - Python 3.2+ - ``readrc`` - Python 3.6+ Try it out:: from IPython.terminal.debugger import TerminalPdb pdb = TerminalPdb(skip=["skipthismodule"]) See :ghpull:`11840` .. _version770: IPython 7.7.0 ============= IPython 7.7.0 contain multiple bug fixes and documentation updates; Here are a few of the outstanding issue fixed: - Fix a bug introduced in 7.6 where the ``%matplotlib`` magic would fail on previously acceptable arguments :ghpull:`11814`. - Fix the manage location on freebsd :ghpull:`11808`. - Fix error message about aliases after ``%reset`` call in ipykernel :ghpull:`11806` - Fix Duplication completions in emacs :ghpull:`11803` We are planning to adopt `NEP29 `_ (still currently in draft) which may make this minor version of IPython the last one to support Python 3.5 and will make the code base more aggressive toward removing compatibility with older versions of Python. GitHub now support to give only "Triage" permissions to users; if you'd like to help close stale issues and labels issues please reach to us with your GitHub Username and we'll add you to the triage team. It is a great way to start contributing and a path toward getting commit rights. .. _version761: IPython 7.6.1 ============= IPython 7.6.1 contain a critical bugfix in the ``%timeit`` magic, which would crash on some inputs as a side effect of :ghpull:`11716`. See :ghpull:`11812` .. _whatsnew760: IPython 7.6.0 ============= IPython 7.6.0 contains a couple of bug fixes and number of small features additions as well as some compatibility with the current development version of Python 3.8. - Add a ``-l`` option to :magic:`psearch` to list the available search types. :ghpull:`11672` - Support ``PathLike`` for ``DisplayObject`` and ``Image``. :ghpull:`11764` - Configurability of timeout in the test suite for slow platforms. :ghpull:`11756` - Accept any casing for matplotlib backend. :ghpull:`121748` - Properly skip test that requires numpy to be installed :ghpull:`11723` - More support for Python 3.8 and positional only arguments (pep570) :ghpull:`11720` - Unicode names for the completion are loaded lazily on first use which should decrease startup time. :ghpull:`11693` - Autoreload now update the types of reloaded objects; this for example allow pickling of reloaded objects. :ghpull:`11644` - Fix a bug where ``%%time`` magic would suppress cell output. :ghpull:`11716` Prepare migration to pytest (instead of nose) for testing --------------------------------------------------------- Most of the work between 7.5 and 7.6 was to prepare the migration from our testing framework to pytest. Most of the test suite should now work by simply issuing ``pytest`` from the root of the repository. The migration to pytest is just at its beginning. Many of our test still rely on IPython-specific plugins for nose using pytest (doctest using IPython syntax is one example of this where test appear as "passing", while no code has been ran). Many test also need to be updated like ``yield-test`` to be properly parametrized tests. Migration to pytest allowed me to discover a number of issues in our test suite; which was hiding a number of subtle issues – or not actually running some of the tests in our test suite – I have thus corrected many of those; like improperly closed resources; or used of deprecated features. I also made use of the ``pytest --durations=...`` to find some of our slowest test and speed them up (our test suite can now be up to 10% faster). Pytest as also a variety of plugins and flags which will make the code quality of IPython and the testing experience better. Misc ---- We skipped the release of 7.6 at the end of May, but will attempt to get back on schedule. We are starting to think about making introducing backward incompatible change and start the 8.0 series. Special Thanks to Gabriel (@gpotter2 on GitHub), who among other took care many of the remaining task for 7.4 and 7.5, like updating the website. .. _whatsnew750: IPython 7.5.0 ============= IPython 7.5.0 consist mostly of bug-fixes, and documentation updates, with one minor new feature. The `Audio` display element can now be assigned an element id when displayed in browser. See :ghpull:`11670` The major outstanding bug fix correct a change of behavior that was introduce in 7.4.0 where some cell magics would not be able to access or modify global scope when using the ``@needs_local_scope`` decorator. This was typically encountered with the ``%%time`` and ``%%timeit`` magics. See :ghissue:`11659` and :ghpull:`11698`. .. _whatsnew740: IPython 7.4.0 ============= Unicode name completions ------------------------ Previously, we provided completion for a unicode name with its relative symbol. With this, now IPython provides complete suggestions to unicode name symbols. As on the PR, if user types ``\LAT``, IPython provides a list of possible completions. In this case, it would be something like:: 'LATIN CAPITAL LETTER A', 'LATIN CAPITAL LETTER B', 'LATIN CAPITAL LETTER C', 'LATIN CAPITAL LETTER D', .... This help to type unicode character that do not have short latex aliases, and have long unicode names. for example ``Ͱ``, ``\GREEK CAPITAL LETTER HETA``. This feature was contributed by Luciana Marques :ghpull:`11583`. Make audio normalization optional --------------------------------- Added 'normalize' argument to `IPython.display.Audio`. This argument applies when audio data is given as an array of samples. The default of `normalize=True` preserves prior behavior of normalizing the audio to the maximum possible range. Setting to `False` disables normalization. Miscellaneous ------------- - Fix improper acceptation of ``return`` outside of functions. :ghpull:`11641`. - Fixed PyQt 5.11 backwards incompatibility causing sip import failure. :ghpull:`11613`. - Fix Bug where ``type?`` would crash IPython. :ghpull:`1608`. - Allow to apply ``@needs_local_scope`` to cell magics for convenience. :ghpull:`11542`. .. _whatsnew730: IPython 7.3.0 ============= .. _whatsnew720: IPython 7.3.0 bring several bug fixes and small improvements that you will described bellow. The biggest change to this release is the implementation of the ``%conda`` and ``%pip`` magics, that will attempt to install packages in the **current environment**. You may still need to restart your interpreter or kernel for the change to be taken into account, but it should simplify installation of packages into remote environment. Installing using pip/conda from the command line is still the prefer method. The ``%pip`` magic was already present, but was only printing a warning; now it will actually forward commands to pip. Misc bug fixes and improvements: - Compatibility with Python 3.8. - Do not expand shell variable in execution magics, and added the ``no_var_expand`` decorator for magic requiring a similar functionality :ghpull:`11516` - Add ``%pip`` and ``%conda`` magic :ghpull:`11524` - Re-initialize posix aliases after a ``%reset`` :ghpull:`11528` - Allow the IPython command line to run ``*.ipynb`` files :ghpull:`11529` IPython 7.2.0 ============= IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options: - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464` - Run CI on Mac OS ! :ghpull:`11471` - Fix IPython "Demo" mode. :ghpull:`11498` - Fix ``%run`` magic with path in name :ghpull:`11499` - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502` - Better rendering of signatures, especially long ones. :ghpull:`11505` - Re-enable jedi by default if it's installed :ghpull:`11506` - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509` Added ability to show subclasses when using pinfo and other utilities --------------------------------------------------------------------- When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses. Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris is one of the people who played a critical role in IPython/Jupyter getting funding. We are grateful for all the help Chris has given us over the years, and we're now proud to have code contributed by Chris in IPython. OSMagics.cd_force_quiet configuration option -------------------------------------------- You can set this option to force the %cd magic to behave as if ``-q`` was passed: :: In [1]: cd / / In [2]: %config OSMagics.cd_force_quiet = True In [3]: cd /tmp In [4]: See :ghpull:`11491` In vi editing mode, whether the prompt includes the current vi mode can now be configured ----------------------------------------------------------------------------------------- Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value (default: True) to control this feature. See :ghpull:`11492` .. _whatsnew710: IPython 7.1.0 ============= IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x transition. It also brings **Compatibility with Python 3.7.1**, as we're unwillingly relying on a bug in CPython. New Core Dev: - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic work on prompt_toolkit, and we'd like to recognise his impact by giving him commit rights. :ghissue:`11397` Notable Changes - Major update of "latex to unicode" tab completion map (see below) Notable New Features: - Restore functionality and documentation of the **sphinx directive**, which is now stricter (fail on error by daefault), has new configuration options, has a brand new documentation page :ref:`ipython_directive` (which needs some cleanup). It is also now *tested* so we hope to have less regressions. :ghpull:`11402` - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments, allowing a custom width and height to be set instead of using the video's width and height. :ghpull:`11353` - Warn when using ``HTML('