[IPython-dev] problem with publish_display_data?
MinRK
benjaminrk at gmail.com
Wed Jun 13 21:56:05 EDT 2012
On Wed, Jun 13, 2012 at 6:51 PM, Jonathan Taylor <
jonathan.taylor at stanford.edu> wrote:
> I was a little confused because sometimes it displays several things.
When have you seen multiple displays from one display call? This would be
a bug.
> The idea with having several values in the dict is that they might be
> different representations of the same output?
Precisely. One call == one thing to display.
>
>
> On Wed, Jun 13, 2012 at 4:08 PM, MinRK <benjaminrk at gmail.com> wrote:
>
>>
>>
>> On Wed, Jun 13, 2012 at 3:52 PM, Jonathan Taylor <
>> jonathan.taylor at stanford.edu> wrote:
>>
>>> On the master branch, I am getting some unexpected behaviour when I try
>>> the following
>>>
>>> import numpy as np
>>> from IPython.core.displaypub import publish_display_data
>>>
>>> class NormalMean(object):
>>> """
>>> Sample from N(mean, sd) independently n times
>>> """
>>> tol = 5.e-2
>>> checkable = True
>>>
>>> def __init__(self, mean, sd, n, identifier):
>>> self.mean = mean
>>> self.identifier = identifier
>>> self.sd = sd
>>> self.n = n
>>> self.sequence = self.generate()
>>> self.correct_answer = np.mean(self.sequence)
>>>
>>> def generate(self):
>>> return np.round(np.random.standard_normal(self.n), 1) * self.sd+ self.mean
>>>
>>> @property
>>> def answer(self):
>>> return np.mean(self.sequence)
>>>
>>> def publish(self, return_data=False):
>>>
>>> data = {'text/latex': r"What is the sample mean, $\bar{X}$ of
>>> this sequence: %s ?" % `["%0.1f" % s for s in self.sequence]`,
>>> 'text/html': ''}
>>>
>>> data['text/html'] += '<form method="post" name=%s ><p><input
>>> type="text" ></p></form>' % self.identifier
>>> data['application/json'] = {'constructor_info': ('normal_mean',
>>> [self.mean, self.sd, self.n], {})}
>>> publish_display_data("NormalMean", data)
>>> if return_data:
>>> return data
>>>
>>> def check_answer(self, answer):
>>> if np.fabs(answer - self.correct_answer) / np.std(self.sequence)
>>> < self.tol:
>>> data = self.publish(return_data=True)
>>> data['text/html'] += '\n<p><h2>Good job!</h2></p>\n'
>>> else:
>>> self.sequence = self.generate()
>>> data = self.publish(return_data=True)
>>> data['text/html'] += '\n<p><h2>Try Again!</h2></p>\n'
>>>
>>>
>>> NormalMean(10, 3, 6, 'mean_10_sd_3_n_6').publish()
>>>
>>>
>>> I expect to see a latex rendering of the question with a textbox below
>>> it but I am only getting a text box.
>>>
>>> By the way, if I want to see these things in order, I suppose it is best
>>> to use several calls to publish_display_data? Is that right, if so the
>>> outputs are in the order I want them to be rather than
>>> the order of the dict keys (which I cannot control).
>>>
>>
>> Right - one call to "publish_display_data" should always result in
>> exactly one thing being displayed. The idea being "I have a thing I want
>> to display, and I can display in all these different ways". It is up to the
>> frontends to pick their favorite (HTML in the notebook). If you want to
>> display multiple things, then you should use multiple calls.
>>
>> -MinRK
>>
>>
>>>
>>> Thanks,
>>>
>>> Jonathan
>>>
>>>
>>> --
>>> Jonathan Taylor
>>> Dept. of Statistics
>>> Sequoia Hall, 137
>>> 390 Serra Mall
>>> Stanford, CA 94305
>>> Tel: 650.723.9230
>>> Fax: 650.725.8977
>>> Web: http://www-stat.stanford.edu/~jtaylo
>>>
>>> _______________________________________________
>>> IPython-dev mailing list
>>> IPython-dev at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>
>>>
>>
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev at scipy.org
>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>
>>
>
>
> --
> Jonathan Taylor
> Dept. of Statistics
> Sequoia Hall, 137
> 390 Serra Mall
> Stanford, CA 94305
> Tel: 650.723.9230
> Fax: 650.725.8977
> Web: http://www-stat.stanford.edu/~jtaylo
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20120613/fead6c2f/attachment.html>
More information about the IPython-dev
mailing list