<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.&nbsp;<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>
<br>
<br>
<div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><br class="Apple-interchange-newline">
</span><br class="Apple-interchange-newline">
</div>
<br>
</body>
</html>