give PTCompleter InteractiveShell, not Completer...
give PTCompleter InteractiveShell, not Completer
it is possible for the completer to get reloaded/replaced,
at which point the prompt-toolkit completions will not be those of ip.Completer,
but whatever ip.Completer was originally.