教える目的関数のソースコードを(セルからの出力として)表示するIPythonノートブックが必要ですが、複数のノートブックでこれを参照できるようにしたいと考えています。したがって、%psourceの魔法を使用するのと同様の方法で機能コードを表示したいと思いますが、適切な構文が強調表示されています。IPythonノートブックでパッケージ関数のソースコードを表示する方法
これはthis questionと同様の質問ですが、完全なファイルではなく、ファイル内の1つの関数に同時に適用できます。
def print_source(module, function):
"""For use inside an IPython notebook: given a module and a function, print the source code."""
from inspect import getmembers, isfunction, getsource
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
from IPython.core.display import HTML
internal_module = __import__(module)
internal_functions = dict(getmembers(internal_module, isfunction))
return HTML(highlight(getsource(internal_functions[function]), PythonLexer(), HtmlFormatter(full=True)))
つの質問:私は、単純な例で動作する短いコードをハッキング前の質問からの提案を使用して
- This gistは全体の機能を示す定義することによって行うことができることを示唆しています適切なセルマジック。上記のように、単一の関数を表示するために適切なセルマジックを定義することは可能ですか?
- モジュール全体をインポートせずにこれを行う方法はありますか、これを行うにはより堅牢な方法がありますか?