I'm currently working on a Pyramid-based website which, among other things,
federates under a common user interface (Bootstrap-based), information
coming from Sphinx, Doxygen and Buildbot.
- Sphinx is a document generator written in Python. The documentation is
generated as a collection of static files. At first, I considered creating
an ad hoc Sphinx (Jinja2) template to facilitate the integration of HTML
fragments into a Pyramid .mako template. But I found it simpler to use the
"pickle" export offered by Sphinx. The doc pages are pickled as
dictionaries, which can be used directly from my Mako template. Problem
- Doxygen can generate the API documentation of a C Program as a collection
of static (HTML, ...) files. So, the situation is similar to Sphinx, but
HTML generation is not so customizable. For the moment, I'm using a libxml2
parser via the lxml module to extract, on the fly, the content of the
<body> block, and inject it into a Mako template. Not very efficient, but
- Now, about Buildbot: it's a continuous integration framework written in
Python. It uses Twisted.Web to display status information as web pages. It
also offers a basic JSON API. I see three ways I could integrate Buildbot
to my app :
1/ Use Pyramid as a web proxy, to get and process the Buildbot web pages on
2/ Use the Buildbot JSON API inside Pyramid views, and present the results
via a Mako template.
3/ Take advantage from the fact that Buildbot is a python module, and thus
can expose its functionalities as a Python API. But the API is not so well
documented (use the Source, Luke)...
Choices 2/ and 3/ seem saner to me. 3/ is probably the cleaner, but 2/
seems easier. What would you choose?
Many thanks for your suggestions!