Show More
@@ -3,9 +3,9 b' language: python' | |||||
3 | python: |
|
3 | python: | |
4 | - "nightly" |
|
4 | - "nightly" | |
5 | - "3.7-dev" |
|
5 | - "3.7-dev" | |
|
6 | - 3.7 | |||
6 | - 3.6 |
|
7 | - 3.6 | |
7 | - 3.5 |
|
8 | - 3.5 | |
8 | - 3.4 |
|
|||
9 | sudo: false |
|
9 | sudo: false | |
10 | env: |
|
10 | env: | |
11 | global: |
|
11 | global: |
@@ -27,12 +27,12 b' import sys' | |||||
27 | #----------------------------------------------------------------------------- |
|
27 | #----------------------------------------------------------------------------- | |
28 |
|
28 | |||
29 | # Don't forget to also update setup.py when this changes! |
|
29 | # Don't forget to also update setup.py when this changes! | |
30 |
if sys.version_info < (3, |
|
30 | if sys.version_info < (3, 5): | |
31 | raise ImportError( |
|
31 | raise ImportError( | |
32 | """ |
|
32 | """ | |
33 |
IPython 7.0+ supports Python 3. |
|
33 | IPython 7.0+ supports Python 3.5 and above. | |
34 | When using Python 2.7, please install IPython 5.x LTS Long Term Support version. |
|
34 | When using Python 2.7, please install IPython 5.x LTS Long Term Support version. | |
35 |
Python 3.3 |
|
35 | Python 3.3 and 3.4 were supported up to IPython 6.x. | |
36 |
|
36 | |||
37 | See IPython `README.rst` file for more information: |
|
37 | See IPython `README.rst` file for more information: | |
38 |
|
38 |
@@ -34,112 +34,6 b' You should be able to update by using:' | |||||
34 |
|
34 | |||
35 | pip install ipython --upgrade |
|
35 | pip install ipython --upgrade | |
36 |
|
36 | |||
37 | New completion API and Interface |
|
|||
38 | -------------------------------- |
|
|||
39 |
|
||||
40 | The completer Completion API has seen an overhaul, and the new completer have |
|
|||
41 | plenty of improvement both from the end users of terminal IPython or for |
|
|||
42 | consumers of the API. |
|
|||
43 |
|
||||
44 | This new API is capable of pulling completions from :any:`jedi`, thus allowing |
|
|||
45 | type inference on non-executed code. If :any:`jedi` is installed completion like |
|
|||
46 | the following are now becoming possible without code evaluation: |
|
|||
47 |
|
||||
48 | >>> data = ['Number of users', 123_456] |
|
|||
49 | ... data[0].<tab> |
|
|||
50 |
|
||||
51 | That is to say, IPython is now capable of inferring that `data[0]` is a string, |
|
|||
52 | and will suggest completions like `.capitalize`. The completion power of IPython |
|
|||
53 | will increase with new Jedi releases, and a number of bugs and more completions |
|
|||
54 | are already available on development version of :any:`jedi` if you are curious. |
|
|||
55 |
|
||||
56 | With the help of prompt toolkit, types of completions can be shown in the |
|
|||
57 | completer interface: |
|
|||
58 |
|
||||
59 | .. image:: ../_images/jedi_type_inference_60.png |
|
|||
60 | :alt: Jedi showing ability to do type inference |
|
|||
61 | :align: center |
|
|||
62 | :width: 400px |
|
|||
63 | :target: ../_images/jedi_type_inference_60.png |
|
|||
64 |
|
||||
65 | The appearance of the completer is controlled by the |
|
|||
66 | ``c.TerminalInteractiveShell.display_completions`` option that will show the |
|
|||
67 | type differently depending on the value among ``'column'``, ``'multicolumn'`` |
|
|||
68 | and ``'readlinelike'`` |
|
|||
69 |
|
||||
70 | The use of Jedi also full fill a number of request and fix a number of bugs |
|
|||
71 | like case insensitive completion, completion after division operator: See |
|
|||
72 | :ghpull:`10182`. |
|
|||
73 |
|
||||
74 | Extra patches and updates will be needed to the :mod:`ipykernel` package for |
|
|||
75 | this feature to be available to other clients like jupyter Notebook, Lab, |
|
|||
76 | Nteract, Hydrogen... |
|
|||
77 |
|
||||
78 | The use of Jedi can is barely noticeable on recent enough machines, but can be |
|
|||
79 | feel on older ones, in cases were Jedi behavior need to be adjusted, the amount |
|
|||
80 | of time given to Jedi to compute type inference can be adjusted with |
|
|||
81 | ``c.IPCompleter.jedi_compute_type_timeout``, with object whose type were not |
|
|||
82 | inferred will be shown as ``<unknown>``. Jedi can also be completely deactivated |
|
|||
83 | by using the ``c.Completer.use_jedi=False`` option. |
|
|||
84 |
|
||||
85 |
|
||||
86 | The old ``Completer.complete()`` API is waiting deprecation and should be |
|
|||
87 | replaced replaced by ``Completer.completions()`` in a near future. Feedback on |
|
|||
88 | the current state of the API and suggestions welcome. |
|
|||
89 |
|
||||
90 | Python 3 only codebase |
|
|||
91 | ---------------------- |
|
|||
92 |
|
||||
93 | One of the large challenges in IPython 6.0 has been the adoption of a pure |
|
|||
94 | Python 3 code base, which lead us to great length to upstream patches in pip, |
|
|||
95 | pypi and warehouse to make sure Python 2 system still upgrade to the latest |
|
|||
96 | compatible Python version compatible. |
|
|||
97 |
|
||||
98 | We remind our Python 2 users that IPython 5 is still compatible with Python 2.7, |
|
|||
99 | still maintained and get regular releases. Using pip 9+, upgrading IPython will |
|
|||
100 | automatically upgrade to the latest version compatible with your system. |
|
|||
101 |
|
||||
102 | .. warning:: |
|
|||
103 |
|
||||
104 | If you are on a system using an older verison of pip on Python 2, pip may |
|
|||
105 | still install IPython 6.0 on your system, and IPython will refuse to start. |
|
|||
106 | You can fix this by ugrading pip, and reinstalling ipython, or forcing pip to |
|
|||
107 | install an earlier version: ``pip install 'ipython<6'`` |
|
|||
108 |
|
||||
109 | The ability to use only Python 3 on the code base of IPython has bring a number |
|
|||
110 | of advantage. Most of the newly written code make use of `optional function type |
|
|||
111 | anotation <https://www.python.org/dev/peps/pep-0484/>`_ leading to clearer code |
|
|||
112 | and better documentation. |
|
|||
113 |
|
||||
114 | The total size of the repository has also for a first time between releases |
|
|||
115 | (excluding the big split for 4.0) decreased by about 1500 lines, potentially |
|
|||
116 | quite a bit more codewide as some documents like this one are append only and |
|
|||
117 | are about 300 lines long. |
|
|||
118 |
|
||||
119 | The removal as of Python2/Python3 shim layer has made the code quite clearer and |
|
|||
120 | more idiomatic in a number of location, and much friendlier to work with and |
|
|||
121 | understand. We hope to further embrace Python 3 capability in the next release |
|
|||
122 | cycle and introduce more of the Python 3 only idioms (yield from, kwarg only, |
|
|||
123 | general unpacking) in the code base of IPython, and see if we can take advantage |
|
|||
124 | of these as well to improve user experience with better error messages and |
|
|||
125 | hints. |
|
|||
126 |
|
||||
127 |
|
||||
128 | Miscs improvements |
|
|||
129 | ------------------ |
|
|||
130 |
|
||||
131 |
|
||||
132 | - The :cellmagic:`capture` magic can now capture the result of a cell (from an |
|
|||
133 | expression on the last line), as well as printed and displayed output. |
|
|||
134 | :ghpull:`9851`. |
|
|||
135 |
|
||||
136 | - Pressing Ctrl-Z in the terminal debugger now suspends IPython, as it already |
|
|||
137 | does in the main terminal prompt. |
|
|||
138 |
|
||||
139 | - autoreload can now reload ``Enum``. See :ghissue:`10232` and :ghpull:`10316` |
|
|||
140 |
|
||||
141 | - IPython.display has gained a :any:`GeoJSON <IPython.display.GeoJSON>` object. |
|
|||
142 | :ghpull:`10288` and :ghpull:`10253` |
|
|||
143 |
|
37 | |||
144 | .. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT. |
|
38 | .. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT. | |
145 |
|
39 |
@@ -26,7 +26,7 b' import sys' | |||||
26 | # |
|
26 | # | |
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 |
if sys.version_info < (3, |
|
29 | if sys.version_info < (3, 5): | |
30 | pip_message = 'This may be due to an out of date pip. Make sure you have pip >= 9.0.1.' |
|
30 | pip_message = 'This may be due to an out of date pip. Make sure you have pip >= 9.0.1.' | |
31 | try: |
|
31 | try: | |
32 | import pip |
|
32 | import pip | |
@@ -42,9 +42,9 b' if sys.version_info < (3, 4):' | |||||
42 |
|
42 | |||
43 |
|
43 | |||
44 | error = """ |
|
44 | error = """ | |
45 |
IPython 7.0+ supports Python 3. |
|
45 | IPython 7.0+ supports Python 3.5 and above. | |
46 | When using Python 2.7, please install IPython 5.x LTS Long Term Support version. |
|
46 | When using Python 2.7, please install IPython 5.x LTS Long Term Support version. | |
47 |
Python 3.3 |
|
47 | Python 3.3 and 3.4 were supported up to IPython 6.x. | |
48 |
|
48 | |||
49 | See IPython `README.rst` file for more information: |
|
49 | See IPython `README.rst` file for more information: | |
50 |
|
50 | |||
@@ -201,7 +201,6 b' install_requires = [' | |||||
201 |
|
201 | |||
202 | extras_require.update({ |
|
202 | extras_require.update({ | |
203 | ':python_version == "3.4"': ['typing'], |
|
203 | ':python_version == "3.4"': ['typing'], | |
204 | ':python_version >= "3.5"': ['trio', 'curio'], |
|
|||
205 | ':sys_platform != "win32"': ['pexpect'], |
|
204 | ':sys_platform != "win32"': ['pexpect'], | |
206 | ':sys_platform == "darwin"': ['appnope'], |
|
205 | ':sys_platform == "darwin"': ['appnope'], | |
207 | ':sys_platform == "win32"': ['colorama'], |
|
206 | ':sys_platform == "win32"': ['colorama'], | |
@@ -231,7 +230,7 b' for key, deps in extras_require.items():' | |||||
231 | extras_require['all'] = everything |
|
230 | extras_require['all'] = everything | |
232 |
|
231 | |||
233 | if 'setuptools' in sys.modules: |
|
232 | if 'setuptools' in sys.modules: | |
234 |
setuptools_extra_args['python_requires'] = '>=3. |
|
233 | setuptools_extra_args['python_requires'] = '>=3.5' | |
235 | setuptools_extra_args['zip_safe'] = False |
|
234 | setuptools_extra_args['zip_safe'] = False | |
236 | setuptools_extra_args['entry_points'] = { |
|
235 | setuptools_extra_args['entry_points'] = { | |
237 | 'console_scripts': find_entry_points(), |
|
236 | 'console_scripts': find_entry_points(), |
General Comments 0
You need to be logged in to leave comments.
Login now