<div class="gmail_quote">On Tue, Sep 14, 2010 at 1:58 PM, Fernando Perez <span dir="ltr">&lt;<a href="http://fperez.net">fperez.net</a>@<a href="http://gmail.com">gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="im">On Tue, Sep 14, 2010 at 11:48 AM, Anne Archibald<br>
&lt;<a href="mailto:aarchiba@physics.mcgill.ca">aarchiba@physics.mcgill.ca</a>&gt; wrote:<br>
&gt; On 14 September 2010 11:08, Gökhan Sever &lt;<a href="mailto:gokhansever@gmail.com">gokhansever@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; 1-) When one downloads a script from the matplotlib gallery via an external<br>
&gt;&gt; script (name it load_into_ipython or open_with_ipython) the contents of that<br>
&gt;&gt; gallery script (or any python script) can be executed locally inside an<br>
&gt;&gt; ipython session.<br>
&gt;<br>
&gt; Not to be difficult, but I should point out that allowing users to run<br>
&gt; code with one click, particularly if that code is from a wiki or other<br>
&gt; user-submitted gallery, is just asking for trouble. How long before<br>
&gt; someone submits &quot;import os, shutil;<br>
&gt; shutil.deltree(os.environ[&#39;HOME&#39;])&quot;? Or sneaks it into some otherwise<br>
&gt; inoffensive script?<br>
<br>
</div>Very valid points.  I&#39;m leaning more towards something like a<br>
combination of (hopefully) a &#39;copy code&#39; button on the MPL webpages<br>
themselves, so users don&#39;t have to scroll/highlight a lot but would<br>
still do paste, execute manually, and a special %mplexample magic.<br>
<br>
This would only run examples from the mpl gallery (hardcoding the<br>
path), would display the code to the  user first, and would ask for<br>
confirmation before execution.  Since those html pages are built by<br>
executing those same scripts, there&#39;s a layer of sanity already built<br>
into it (the rmtree call would have already nuked the builder&#39;s home<br>
directory in the build process if it had been there).  Showing the<br>
code to the user and confirming execution before proceeding adds a<br>
final chance for the person to check her parachute before  jumping off<br>
the cliff.<br>
<br>
Does that sound reasonable?<br>
<div class="im"><br>
&gt;&gt; 2-) Matplotlib gallery might turn to an interactive environment where you<br>
&gt;&gt; can execute the script from right within your browser and change parameters<br>
&gt;&gt; in the same browser window. As far as I know mpl figures can now be drawn on<br>
&gt;&gt; html canvas. This might for sure boost the number of matplotlib audience.<br>
&gt;<br>
&gt; Is there a sandboxed browser plugin? Or server plugin, depending on<br>
&gt; where you run the script?<br>
<br>
</div>This would have to be server-side, and code needs to be written.  Part<br>
of our interest with this explicit separation of ipython kernel and<br>
clients with a well-defined protocol is to make the above possible.<br>
But we haven&#39;t written any of the code necessary to have a browser<br>
client, and to serve code read from a sphinx-generated HTML page.<br>
Gokhan, your patches will be welcome, the infrastructure is now ready<br>
and waiting for you :)<br>
<div><div></div><div class="h5"><br>
Cheers,<br>
<br>
f<br>
</div></div></blockquote><div><br>Just a crazy idea to consider that would completely bypass this whole vulnerability issue...<br><br>Why not have an examples module that contains function calls to each example?  On the website, we can show the source code, but also say that one could just do:<br>

<br>&gt;&gt;&gt; import matplotlib.examples as ex<br>&gt;&gt;&gt; ex.bars3d_demo()<br><br>My 2 cents...<br><br>Ben Root<br></div></div>