Pregunta

He estado jugando con varias formas de hacer la programación ilustrada en Python. Me gustaría noweb , pero tengo dos problemas principales con él: en primer lugar, es duro para construir en Windows, donde paso la mitad de mi tiempo de desarrollo; y en segundo lugar, que me obliga a sangrar cada trozo de código, ya que será en el programa final --- que yo no sé necesariamente cuando lo escribo. No quiero usar Leo, porque estoy muy unido a Emacs.

¿Hay una buena herramienta de programación literaria que:

  1. Se ejecuta en Windows
  2. me permite establecer la sangría de los trozos cuando se usan, no cuando están escritas
  3. Todavía me permite trabajar en Emacs

Gracias!


Corrección: noweb hace permítame para sangrar más adelante --- leí mal el papel que encontré en él.

  
    
      

Por defecto, notangle conserva espacios en blanco y mantiene la sangría cuando se expande trozos. Por lo tanto, se puede utilizar con idiomas como Miranda y Haskell, en el que la sangría es importante

    
  

Eso me deja con sólo los "Funciona con Windows" problema.

¿Fue útil?

Solución

Hice esto:

http://sourceforge.net/projects/pywebtool/

Usted puede obtener cualquier cantidad de productos web / armadura que le ayudará a construir un documento y el código de una sola vez.

Puede - con bastante facilidad - escribir su propio. No es ciencia de cohetes dar un tirón a los bloques de código Python de fuente RST y ensamblarlo. De hecho, le sugiero que escribe sus propias directivas docutils para ensamblar el código Python de un documento de origen RST.

Se ejecuta la RST a través docutils rst2html (o Sphinx) para producir su informe final de HTML.

Se ejecuta el programa de utilidad de la misma fuente RST para extraer los bloques de código Python y producir los módulos finales.

Otros consejos

He escrito Pweave http://mpastell.com/pweave , que está dirigido a la generación de informes dinámico y utiliza la sintaxis noweb. Es un script en Python puro por lo que también se ejecuta en Windows. No se soluciona el problema de guión, pero tal vez usted puede modificarlo para que, el código es realmente muy simple.

El estándar de facto en la comunidad es cuadernos IPython.

Excelente ejemplo en el que Peter Norvig demuestra algoritmos para resolver el problema del viajante: http: // nbviewer.ipython.org/url/norvig.com/ipython/TSPv3.ipynb

Más ejemplos enumerados en https://github.com/ipython/ipython / wiki / A-galería-de-interesantes-IPython-portátiles

Se puede usar org-mode y Babel enredos.

Esto funciona bastante bien, ya que se puede dar a:. Noweb-árbitro bloques de la fuente

Aquí está un ejemplo mínimo: Activar org-babel-enredo , a continuación, poner esto en el noweb-test.org archivo:

#+begin_src python :exports none :noweb-ref c
abc = "abc"
#+end_src

#+begin_src python :noweb yes :tangle noweb-test.py
def x():
  <<c>>
  return abc

print(x())
#+end_src

También puede utilizar las propiedades de los titulares para dar el noweb-ref. A continuación, puede concatenar incluso de forma automática varios bloques de la fuente en una referencia noweb.

Añadir :results output a la línea #+begin_src del segundo bloque para ver los resultados de impresión bajo ese bloque cuando se pulse C-c C-c en el bloque.

Usted puede encontrar noweb 3 más fácil de construir en Windows. Fue diseñado para ser más portátil que noweb estándar.

Véase también mi última herramienta LP: http://code.google.com/p/nano -lp . No se requiere formato de entrada especial, apoya Markdown / MultiMarkdown, reStructuredText, OpenOffice / LibreOffice, criolla, TeX / LaTeX y tiene súper ligero y sintaxis limpia -. Alfabetizados programas no más crípticos

Encontrados esta herramienta para ser útil: https://github.com/bslatkin/pyliterate

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top