Am 2010-10-15 um 08:58 schrieb Henning Hraban Ramm: > Am 2010-10-14 um 19:53 schrieb Paul McNett: >> >> I tried a few systems before rolling my own, and the reason I rolled >> my own was that >> I felt there was far too much noise in the output, mostly due to all >> of the classes >> involved in a given Dabo object. I couldn't seem to get control over >> issues like >> "don't list all the wx-layer stuff". >> >> Also, it was tough to train the other systems how to find the UI >> classes, because of >> the indirection we use. When I got it to work, it gave incorrect >> information >> (dabo.ui.uiwx.dTextBox versus dabo.ui.dTextBox). > > I understand. Of course, dabo is doing some magic here...
Ok, now I understand a bit more: (At least) Sphinx must be able to import all classes, and that can't work without some setup (e.g. loading an UI). I always get "TypeError: Error when calling the metaclass bases" Source RSt files and setup attached. I tried pydoctor (made for Twisted), because that doesn't import your code. It expects epytext formatting and thus gives a lot of warnings that one can ignore. Of course it can't put uiwx classes into ui. Otherwise it works rather well, as long as I only point it at subdirectories (biz, lib, db, ui). On dabo root I get "AttributeError: 'Module' object has no attribute 'subclasses'" - that seems to be some problem of the tree builder. Doxygen looks promising, but the output just isn't as handy as that of the other solutions, perhaps it's too much C- and Java-oriented and has too much overhead. I didn't much try to tweak it, maybe there's potential (see attached cfg). "Out of the box" it doesn't really understand dabo's i18n'ed docstrings (I question the importance of i18n for docstrings, though.) and expects its own formatting (like JavaDoc, I guess). With Epydoc you can choose whether to import or just parse the classes. I get a lot of warnings like "Warning: Module dabo.dPref is shadowed by a variable with the same name.", "Warning: dabo.ui.uiwx.dPemMixin shadows its own value -- using dabo.ui.uiwx.dPemMixin'.dPemMixin instead", "Warning: dabo.lib.datanav.Bizobj.Bizobj's base dabo.biz.dBizobj is not a class", "Warning: No information available for dabo.lib.datanav.Form.Form's base dabo.ui.dForm" While allowing introspection it finally breaks with "Writing HTML docs: dabo.ui.uitk.dPemMixin.dPemMixin-class.html / UNEXPECTED ERROR: object is its own container?". Without introspection it breaks with: "Writing HTML docs: int- class.html / UNEXPECTED ERROR: iteration over non-sequence" - i.e. writing a class documentation on "int"? Strange. Maybe some class inherits from int? Up to that the output looks useful. For the records, I tried: $ epydoc --html -o epydoc --parse-only --name dabo --url dabodev.com -- docformat plaintext --graph all --inheritance included dabo If you like I can package the whole stuff and send it to you: sphinx: < 2 MB HTML, but incomplete pydoctor: 10 MB (just HTML!) doxygen: 64 MB HTML incl. graphics + 7,5 MB LaTeX sources incl. graphics epydoc: 56 MB incl. graphics Greetlings from Lake Constance! Hraban --- http://www.fiee.net https://www.cacert.org (I'm an assurer) --- StripMime Report -- processed MIME parts --- multipart/mixed text/plain (text body -- kept) application/zip application/octet-stream --- _______________________________________________ Post Messages to: [email protected] Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users Searchable Archives: http://leafe.com/archives/search/dabo-users This message: http://leafe.com/archives/byMID/[email protected]
