I want to use autocomplete in ipython and jupyter for the following code with read-only class attributes (using @property
):
class A(object):
def
Because of problems with IPython (6.x to 7.2) + jedi my temporary hack is
def fix_ipython_autocomplete(enable=True):
"""Change autocomplete behavior for IPython > 6.x
Parameter
---------
enable : bool (default True)
Is use the trick.
Notes
-----
Since IPython > 6.x the ``jedi`` package is using for autocomplete by default.
But in some cases, the autocomplete doesn't work correctly wrong (see e.g.
`here <https://github.com/ipython/ipython/issues/11653>`_).
To set the correct behaviour we should use in IPython environment::
%config Completer.use_jedi = False
or add to IPython config (``<HOME>\.ipython\profile_default\ipython_config.py``)::
c.Completer.use_jedi = False
"""
try:
__IPYTHON__
except NameError:
pass
else:
from IPython import __version__
major = int(__version__.split('.')[0])
if major >= 6:
from IPython import get_ipython
get_ipython().Completer.use_jedi = not enable
See also https://github.com/ipython/ipython/issues/11653