I upgraded to IPython 7.5.0 and now autocompletion of dynamic properties (i.e. overriding getattr) of a class no longer work.

For instance:

class Foo:
    def __init__(self):
        self.d = None
    def c(self): pass
    def __dir__(self):
        return ["a", "b", "c", "d"]
f = Foo()
f.<tab>

Completes only c() and d. The IPython docs say that overriding dir is all that's necessary here, and it seemed to work previously.

I'm on Windows 10, Python 3.6.4, IPython 7.5.0, Jupyter 1.0, Jupyter-Console 5.2.

0 Answers