diff --git a/.travis.yml b/.travis.yml index 57bfce2..eee369d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,9 +3,9 @@ language: python python: - "nightly" - "3.7-dev" + - 3.7 - 3.6 - 3.5 - - 3.4 sudo: false env: global: diff --git a/IPython/__init__.py b/IPython/__init__.py index 0b78eca..7bd0ee3 100644 --- a/IPython/__init__.py +++ b/IPython/__init__.py @@ -27,12 +27,12 @@ import sys #----------------------------------------------------------------------------- # Don't forget to also update setup.py when this changes! -if sys.version_info < (3,4): +if sys.version_info < (3, 5): raise ImportError( """ -IPython 7.0+ supports Python 3.4 and above. +IPython 7.0+ supports Python 3.5 and above. When using Python 2.7, please install IPython 5.x LTS Long Term Support version. -Python 3.3 was supported up to IPython 6.x. +Python 3.3 and 3.4 were supported up to IPython 6.x. See IPython `README.rst` file for more information: diff --git a/docs/source/whatsnew/development.rst b/docs/source/whatsnew/development.rst index 4a62f47..a52005c 100644 --- a/docs/source/whatsnew/development.rst +++ b/docs/source/whatsnew/development.rst @@ -34,112 +34,6 @@ You should be able to update by using: pip install ipython --upgrade -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 -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: - - >>> 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 -are already available on development version of :any:`jedi` if you are curious. - -With the help of prompt toolkit, types of completions can be shown in the -completer interface: - -.. image:: ../_images/jedi_type_inference_60.png - :alt: Jedi showing ability to do type inference - :align: center - :width: 400px - :target: ../_images/jedi_type_inference_60.png - -The appearance of the completer is controlled by the -``c.TerminalInteractiveShell.display_completions`` option that will show the -type differently depending on the value among ``'column'``, ``'multicolumn'`` -and ``'readlinelike'`` - -The use of Jedi also full fill a number of request and fix a number of bugs -like case insensitive completion, 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 can is barely noticeable on recent enough machines, but can be -feel on older ones, in cases were Jedi behavior need to be adjusted, the amount -of time given to Jedi to compute type inference can be adjusted with -``c.IPCompleter.jedi_compute_type_timeout``, with object whose type were 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. - -Python 3 only codebase ----------------------- - -One of the large challenges in IPython 6.0 has been the adoption of a pure -Python 3 code base, which lead 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. - -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 -automatically upgrade to the latest version compatible with your system. - -.. warning:: - - If you are on a system using an older verison of pip on Python 2, pip may - still install IPython 6.0 on your system, and IPython will refuse to start. - You can fix this by ugrading 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 has bring a number -of advantage. Most of the newly written code make use of `optional function type -anotation `_ leading to clearer code -and better documentation. - -The total size of the repository has also for a first time between releases -(excluding the big split for 4.0) decreased by about 1500 lines, potentially -quite a bit more codewide 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 -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 -hints. - - -Miscs improvements ------------------- - - -- The :cellmagic:`capture` magic can now capture the result of a cell (from an - expression on the last line), as well as printed and displayed output. - :ghpull:`9851`. - -- Pressing Ctrl-Z in the terminal debugger now suspends IPython, as it already - does in the main terminal prompt. - -- autoreload can now reload ``Enum``. See :ghissue:`10232` and :ghpull:`10316` - -- IPython.display has gained a :any:`GeoJSON ` object. - :ghpull:`10288` and :ghpull:`10253` .. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT. diff --git a/setup.py b/setup.py index ed18841..78529cf 100755 --- a/setup.py +++ b/setup.py @@ -26,7 +26,7 @@ import sys # # This check is also made in IPython/__init__, don't forget to update both when # changing Python version requirements. -if sys.version_info < (3, 4): +if sys.version_info < (3, 5): pip_message = 'This may be due to an out of date pip. Make sure you have pip >= 9.0.1.' try: import pip @@ -42,9 +42,9 @@ if sys.version_info < (3, 4): error = """ -IPython 7.0+ supports Python 3.4 and above. +IPython 7.0+ supports Python 3.5 and above. When using Python 2.7, please install IPython 5.x LTS Long Term Support version. -Python 3.3 was supported up to IPython 6.x. +Python 3.3 and 3.4 were supported up to IPython 6.x. See IPython `README.rst` file for more information: @@ -201,7 +201,6 @@ install_requires = [ extras_require.update({ ':python_version == "3.4"': ['typing'], - ':python_version >= "3.5"': ['trio', 'curio'], ':sys_platform != "win32"': ['pexpect'], ':sys_platform == "darwin"': ['appnope'], ':sys_platform == "win32"': ['colorama'], @@ -231,7 +230,7 @@ for key, deps in extras_require.items(): extras_require['all'] = everything if 'setuptools' in sys.modules: - setuptools_extra_args['python_requires'] = '>=3.4' + setuptools_extra_args['python_requires'] = '>=3.5' setuptools_extra_args['zip_safe'] = False setuptools_extra_args['entry_points'] = { 'console_scripts': find_entry_points(),