私の目標は、IPython用のインタラクティブな変数ビューアーを作成することです。つまり、ネストされたdict /リストをツリーとして表示し、ドリルダウンできます(Javascriptのconsole.logに少し似ています)。
IPythonのdirectviewの例から最小限のコードを抽出することに多くの時間を費やしましたが、それでもすべてがどのように機能するかについて頭を悩ませることはできません。私のPythonは大丈夫ですが、jQueryの経験はかなり限られています。
だから私はdirectview.jsを次のように削除する必要がありました
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.ipynbをロードすると機能します。ただし、完全にスタンドアロンにする方法はまだわかりません(つまり、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
コールバックに関連データを入力させる方法はありませんか? - .proxyの全体的なことは何ですか?独自のコールバックを作成したいのです
output
が、それを実行しconsole.log()
て引数がコールバックに渡されると、それらはundefined
役に立たないか、単に役に立たなくなります。
IPythonノートブックの作成者がjQuery/websocketsを使用してこのような美しいフロントエンドを作成するという素晴らしい仕事をしてくれたこと、そして私のような初心者がそれを微調整できるようにする開発者向けドキュメントを作成することは多くのことを求めていることを感謝しますが、誰かが貸してくれるならそれは素晴らしいだろう手!