ドキュメントを少し読んだ後 (そしてリードのソース コードを覗いた後)、この問題の解決策を見つけました。
ここで、すべてのカスタム関数を.ipython
ディレクトリ内のモジュールに移動する必要があります。私が行っていたのは現在のディレクトリの git ブランチとステータスを返す単純な関数だったので、というファイルを作成し、構成オプションgitprompt.py
にファイル名を含めました。exec_file
c.InteractiveShellApp.exec_files = [b'gitprompt.py']
このようなファイル内のすべての定義は、ユーザー名前空間に配置されます。これで、プロンプト内で使用できます。
# Input prompt. '\#' will be transformed to the prompt number
c.PromptManager.in_template = br'{color.Green}\# {color.LightBlue}~\u{color.Green}:\w{color.LightBlue} {git_branch_and_st} \$\n>>> '
# Continuation prompt.
c.PromptManager.in2_template = br'... '
関数がそのように動作する (つまり、プロンプトが出力されるたびに呼び出される) ためには、IPython.core.prompts.LazyEvaluation
クラスを使用する必要があることに注意してください。関数のデコレータとして使用できます。gitprompt.py
要点としてパブリックドメインに配置されています: https://gist.github.com/2719419