私の目標は、IPython用のインタラクティブな変数ビューアを書くことです。つまり、ネストされたdicts/listsをツリーとして表示し、ドリルダウンすることができます.log in Javascript)。IPythonカーネルJavaScriptの双方向通信の最小限の例
私は、IPythonのダイレクトビューのサンプルから最小限のコードを抽出しようと多くの時間を費やしましたが、それがどういうふうに機能するかについて頭を悩ますことはできません。私のPythonは大丈夫ですが、私のjQueryの経験はかなり限られています。
だから、私はdirectview.ipynbをロードする際にこの作品次
container.show();
var widget = $('<div/>')
element.append(widget);
var output = $('<div></div>');
$(widget).append(output)
var output_area = new IPython.OutputArea(output, false);
var callbacks = { 'output': $.proxy(output_area.handle_output, output_area) };
var code = 'print 1+1'
var msg_id = IPython.notebook.kernel.execute(code, callbacks, {silent: false});
にdirectview.jsをダウンストリッピングになりました。しかし、私はそれを完全にスタンドアロンにする方法(すなわち、directview.pyを必要とせず、標準handle_output
のIPython.OutputArea
よりも別のコールバックを渡す方法)を明らかにしていません。問題の1つは、スタンドアロンの方法で呼び出されたときに失敗するcontainer.show()
です。
私はいくつかの側面に失われています:
- はなぜ
element.append(widget)
、その後$(widget).append(output)
ありますか?また、なぜIpython.OutputArea
を作成する必要があるのでしょうか。<div id=my_output_area>blah</div>
を作成してからoutput
コールバックに関連データを入力させる方法はありませんか? - プロキシのことは何ですか?私は
output
のために私自身のコールバックを作成したいと思いますが、私はそれを行い、引数がコールバックに渡されたconsole.log()
である場合、それらはundefined
であるか、まったく役に立たないです。
私は、IPythonのノートブックの著者はjQueryの/ WebSocketをを使用して、このような美しいフロントエンドを作成する信じられないほどの仕事をしていること、そして私のような初心者がそれを微調整することを可能にする開発者向けドキュメントの作成は多くを求めていることを理解します誰かが手を貸すことができれば偉大になるだろう!