On the master branch, I am getting some unexpected behaviour when I try the following<div><br></div><div><div>import numpy as np</div><div>from IPython.core.displaypub import publish_display_data</div><div><br></div><div>class NormalMean(object):</div>
<div>    &quot;&quot;&quot;</div><div>    Sample from N(mean, sd) independently n times </div><div>    &quot;&quot;&quot;</div><div>    tol = 5.e-2</div><div>    checkable = True</div><div>    </div><div>    def __init__(self, mean, sd, n, identifier):</div>
<div>        self.mean = mean</div><div>        self.identifier = identifier</div><div>        <a href="http://self.sd">self.sd</a> = sd</div><div>        self.n = n</div><div>        self.sequence = self.generate()</div>
<div>        self.correct_answer = np.mean(self.sequence)</div><div>        </div><div>    def generate(self):</div><div>        return np.round(np.random.standard_normal(self.n), 1) * <a href="http://self.sd">self.sd</a> + self.mean</div>
<div>        </div><div>    @property</div><div>    def answer(self):</div><div>        return np.mean(self.sequence)</div><div>    </div><div>    def publish(self, return_data=False):</div><div><br></div><div>        data = {&#39;text/latex&#39;: r&quot;What is the sample mean, $\bar{X}$ of this sequence: %s ?&quot; % `[&quot;%0.1f&quot; % s for s in self.sequence]`,</div>
<div>                &#39;text/html&#39;: &#39;&#39;}</div><div>        </div><div>        data[&#39;text/html&#39;] += &#39;&lt;form method=&quot;post&quot; name=%s &gt;&lt;p&gt;&lt;input type=&quot;text&quot; &gt;&lt;/p&gt;&lt;/form&gt;&#39; % self.identifier</div>
<div>        data[&#39;application/json&#39;] = {&#39;constructor_info&#39;: (&#39;normal_mean&#39;, [self.mean, <a href="http://self.sd">self.sd</a>, self.n], {})}</div><div>        publish_display_data(&quot;NormalMean&quot;, data)</div>
<div>        if return_data:</div><div>            return data</div><div>        </div><div>    def check_answer(self, answer):</div><div>        if np.fabs(answer - self.correct_answer) / np.std(self.sequence) &lt; self.tol:</div>
<div>            data = self.publish(return_data=True)</div><div>            data[&#39;text/html&#39;] += &#39;\n&lt;p&gt;&lt;h2&gt;Good job!&lt;/h2&gt;&lt;/p&gt;\n&#39;</div><div>        else:</div><div>            self.sequence = self.generate()</div>
<div>            data = self.publish(return_data=True)</div><div>            data[&#39;text/html&#39;] += &#39;\n&lt;p&gt;&lt;h2&gt;Try Again!&lt;/h2&gt;&lt;/p&gt;\n&#39; </div><div>  </div><div><br></div><div>NormalMean(10, 3, 6, &#39;mean_10_sd_3_n_6&#39;).publish()</div>
<div><br></div><div><br></div><div>I expect to see a latex rendering of the question with a textbox below it but I am only getting a text box.</div><div><br></div><div>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</div>
<div>the order of the dict keys (which I cannot control).</div><div><br></div><div>Thanks,</div><div><br></div><div>Jonathan</div><div><br></div><div><br></div>-- <br>Jonathan Taylor                          <br>Dept. of Statistics                      <br>
Sequoia Hall, 137                          <br>390 Serra Mall<br>Stanford, CA 94305<br>Tel:   650.723.9230<br>Fax:   650.725.8977<br>Web: <a href="http://www-stat.stanford.edu/~jtaylo">http://www-stat.stanford.edu/~jtaylo</a><br>

</div>