Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the best way to do literate programming in Python on Windows? [closed]

I've been playing with various ways of doing literate programming in Python. I like noweb, but I have two main problems with it: first, it is hard to build on Windows, where I spend about half my development time; and second, it requires me to indent each chunk of code as it will be in the final program --- which I don't necessarily know when I write it. I don't want to use Leo, because I'm very attached to Emacs.

Is there a good literate programming tool that:

  1. Runs on Windows
  2. Allows me to set the indentation of the chunks when they're used, not when they're written
  3. Still lets me work in Emacs

Thanks!


Correction: noweb does allow me to indent later --- I misread the paper I found on it.

By default, notangle preserves whitespace and maintains indentation when expanding chunks. It can therefore be used with languages like Miranda and Haskell, in which indentation is significant

That leaves me with only the "Runs on Windows" problem.

like image 755
JasonFruit Avatar asked Aug 12 '09 16:08

JasonFruit


2 Answers

I have written Pweave http://mpastell.com/pweave, that is aimed for dynamic report generation and uses noweb syntax. It is a pure python script so it also runs on Windows. It doesn't fix your indent problem, but maybe you can modify it for that, the code is really quite simple.

like image 122
Matti Pastell Avatar answered Sep 29 '22 11:09

Matti Pastell


The de-facto standard in the community is IPython notebooks.

Excellent example in which Peter Norvig demonstrates algorithms to solve the Travelling Salesman Problem: https://nbviewer.org/url/norvig.com/ipython/TSP.ipynb

More examples listed at https://github.com/jupyter/jupyter/wiki

like image 45
Colonel Panic Avatar answered Sep 29 '22 10:09

Colonel Panic