<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I recently posted a question to Stack Overflow about the possibility of using iPython to generate reproducible, repetitive reports. (<a href="http://stackoverflow.com/questions/13614783/programatically-add-cells-to-an-ipython-notebook-for-report-generation">http://stackoverflow.com/questions/13614783/programatically-add-cells-to-an-ipython-notebook-for-report-generation</a>) Lets say that I have a number of Pandas data frames and for each data frame I want to generate a series of tables , graphs and text, and then combine these into a report. I could use a templating system like Jinja but I am curious to know if I could use the iPython framework of ipython-notebook ---&gt; nbconverter ---&gt; pdf/html/etc for the purpose of generating all of the data analyses and the report into a single document.<span style="text-align: left; ">I have followed Thomas K.'s suggestion to use the&nbsp;</span><span style="text-align: left; background-color: rgb(238, 238, 238); "><font face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px;">get_ipython().set_next_input()</span></font></span><span style="text-align: left; ">&nbsp;function to add text to the next code block. For my idea to work, a few things would need to work:</span><div style="text-align: left;"><br></div><div style="text-align: left;">example code.</div><div style="text-align: left;"><br></div><div style="text-align: left;"><div>from IPython.core.display import Image, display_png</div><div>x = Image(filename='test.png')</div></div><div style="text-align: left;">for i in range(3):</div><div style="text-align: left;"><span class="Apple-tab-span" style="white-space:pre">        </span>x = Image(filename='/Users/zachpowers/Downloads/pics/Sieve_1.png')&nbsp;</div><div style="text-align: left;"><span class="Apple-tab-span" style="white-space:pre">        </span>&nbsp;get_ipython().set_next_input('Thats What I am Talking About!')&nbsp;</div><div style="text-align: left;"><span class="Apple-tab-span" style="white-space:pre">        </span>&nbsp;get_ipython().set_next_input(display_png(x))</div><div style="text-align: left;"><span class="Apple-tab-span" style="white-space:pre">        </span></div><div style="text-align: left;"><br></div><div style="text-align: left;">if you run this you will see that there are a few different problems that you encounter.</div><div style="text-align: left;"><br></div><div style="text-align: left;">1) you can't create Markdown cells &nbsp;</div><div style="text-align: left;">2) the display_png() function does not respect the .set_next_input() function so they are all displayed in the same output block in which they are called</div><div style="text-align: left;">3) the .set_next_input() function would need to be modified to track which code blocks it insert. &nbsp;It iterates over the loop and inserts a code block below the code block it sits in with the result that the code blocks are added in reverse order from expected.</div><div style="text-align: left;">4) there would need to be a way to hide the code-block that calls the rest of the functions.</div><div style="text-align: left;">5) you would probably still need a templating engine to generate interesting text of each markdown block</div><div style="text-align: left;"><br></div><div style="text-align: left;"><br></div><div style="text-align: left;">So in closing I think the python ---&gt; nbconvert is a great tool and that it might potentially be useful for reproducible research of repetitive reports (say that five times fast). I think that a few tweaks to the ipython notebook might make this possible and that the benefit would be the creation of a single file from which analyses could be rerun and from which reports could be generated. However, upon writing up my thoughts I am not sure that this is easier than doing the analysis in one file and outputting the results via a separate templating system.&nbsp;</div><div style="text-align: left;"><br></div><div style="text-align: left;">I hope some of the iPython community might find this line of thought to be useful and if so we could try to implement some of these ideas.</div><div style="text-align: left;"><br></div><div style="text-align: left;"><br></div><div style="text-align: left;">thanks,</div><div style="text-align: left;">zach cp</div><div style="text-align: left;"><br></div></body></html>