Override ipython exit function - oder füge Hooks hinzu

In meinem Projektverwalte, Ich binde iPython ein mit:

from IPython import start_ipython
from traitlets.config import Config
c = Config()
c.TerminalInteractiveShell.banner2 = "Welcome to my shell"
c.InteractiveShellApp.extensions = ['autoreload']
c.InteractiveShellApp.exec_lines = ['%autoreload 2']
start_ipython(argv=[], user_ns={}, config=c)

Es funktioniert gut und öffnet meine iPython-Konsole, aber um ipython zu verlassen, kann ich einfach @ eingebexit oderexit() oder drücken Siectrl+D.

Was ich tun möchte, ist ein @ hinzufügexit hook oder ersetze dasexit Befehl mit etwas anderem.

Sagen wir, ich habe eine Funktion.

def teardown_my_shell():
    # things I want to happen when iPython exits

Wie registriere ich diese Funktion, die ausgeführt werden soll, wenn ichexit oder sogar wie man @ macexit um diese Funktion auszuführen?

HINWEIS: Ich habe versucht, @ zu bestehuser_ns={'exit': teardown_my_shell} und funktioniert nicht.

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage