ipython / ipython/ipython

anaconda package for ipython 7.20 depends on jedi[version='>=0.10,<0.18'], but actually needs jedi>=0.18?

Open
#12,813 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
16.8k
Forks
4.5k
Avg merge
1d 2h
Merged PRs (30d)
6

Description

According to https://github.com/ipython/ipython/issues/12740, jedi introduced breaking changes into version 0.18, which broke iPython 7.19. iPython 7.20 contains the fix for jedi 0.18.

iPython 7.20 however does not seem to play nicely with jedi 0.17; results vary between packages:

```
$ conda list | grep -P 'ipython\b|jedi'
ipython 7.20.0 py37hb070fc8_1
jedi 0.17.0 py37_0
$ ipython
Python 3.7.7 (default, May 7 2020, 21:25:33)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.20.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import yaml
In [2]: yaml.
In [3]: import six
In [4]: six.
In [3]: import urllib3
In [4]: urllib3.
In [5]: import itertools
In [6]: itertools.
accumulate compress filterfalse product tee()
chain count groupby repeat zip_longest
combinations cycle islice starmap
[...]
```

(Not sure what's the difference between packages that work and packages that don't.)

That said, given issue 12740, I expected this to work:

```
$ conda install 'ipython=7.20' 'jedi=0.18'
Collecting package metadata (current_repodata.json): done
[...]
UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package setuptools conflicts for:
ipython=7.20 -> pygments -> setuptools
ipython=7.20 -> setuptools[version='>=18.5']
python=3.7 -> pip -> setuptools

Package jedi conflicts for:
ipython=7.20 -> jedi[version='>=0.10,<0.18']
jedi=0.18
```

I almost expected to get `ipython=7.20 -> jedi[version='>=0.18']` instead...

If I circumvent conda and install jedi with pip, iPython goes back to an happy place:

```
$ pip install 'jedi==0.18'
$ ipython
[...]
In [1]: import yaml
In [2]: yaml.add_constructor
add_constructor() CBaseLoader DocumentEndEvent FlowSequenceEndToken MarkedYAMLError ScalarNode tokens
add_implicit_resolver CDumper DocumentEndToken FlowSequenceStartToken Node ScalarToken unsafe_load
add_multi_constructor CFullLoader DocumentStartEvent full_load NodeEvent scan unsafe_load_all
[...]
```

...which seems to confirm the ipython 7.20 conda dependency string for jedi is incorrect.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.