[capi-sig] Documenting a C/Py API
Campbell Barton
cbarton at metavr.com
Mon Jul 2 16:12:46 CEST 2007
grrr my attachment was stripped
here it is inline..
Campbell Barton wrote:
> Campbell Barton wrote:
>> Revision: 11145
>>
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11145
>> Author: campbellbarton
>> Date: 2007-07-02 14:22:30 +0200 (Mon, 02 Jul 2007)
>>
>> Log Message:
>> -----------
>> Testing a way to have python docs in Blenders PyAPI docstrings.
>> rather then maintaining 2 sets of docs which is what we have done
for a long time.
>>
>> Works for Group and Camera now, here are the results
>>
http://members.optusnet.com.au/cjbarton/bpy_docs/camera.Camera-class.html
>> http://members.optusnet.com.au/cjbarton/bpy_docs/group.Group-class.html
>>
>> This means the C docstrings need to contain epydoc formatting
(humanly readable) but need to be changed in the C files. though editing
be done in py files and the final version copied back into the .c file.
>>
>> _epy_write_docstrings.py - extracts epydocs and examples into their
own py files.
>> _epy_docgen.sh - runs _epy_write_docstrings.py in background mode
and then epydoc to make the html docs.
>>
>> advantage is less work with duplicate docs, we can automate running
all examples within the docs to make sure they work.
>
> Hi, just committed an experimental C docstring/epydoc metrhod of
> maintaining our python API docs. its worth discussing the options for
docs.
>
> this is not ideal (epydocs in C are a bit of a kludge) but it as some
> good points and IMHO is better then what we have been doing.
>
> pros:
> * 1 set of docs, not 2
> * built-in python methods are added, like getitem or __hash__
> * we can do preprocessing since the epydocs are made from a script...
> * better C docstrings (albeit with a bit of odd epydoc tags) - people do
> use the C docstrings sometimes and at the moment they are not well
> checked - some have mistakes or are quite uninformative.
> * extracts examples to py files so we can automate running them all.
> * its more flexible, we could for instance have all examples in py files
> and include them when the blender puts the docs together, this would
> also not bloat blender too much with really big docstrings,
> * converting existing epydocs into C/epy/docstrings is not hard.
>
> cons:
> * editing large docstrings with \n\ at the end of everyline is not nice.
> * nonstandard, uses a custom script (~200 lines) to extract and write
> docstrings
> * workflow to writing docs is longer since you need to edit the c file,
> compile blender and run the script. If there is a missing tab youd not
> want to do all that again.
> ... Realisticly its not so bad since you can edit the docs that blender
> spits out and then update the C file once your done, but the process is
> still longer for writing epydocs though arguably better then editing
> docs in 2 places.
>
> * one more hoop to jump through when writing docs - you have to learn
> our way of adding epydocs in C.
>
> - Even though Id rather not make it harder for new people to come in
> and write docs, so far python scripters have not come up and offered to
> write docs, instead its been the C/API authors - who are alredy familiar
> with the C files, it also seems that very few people besides the API
> devs even use epydoc or have it installed so Im not too worried about
this.
>
> Have a look at Camera.c to see what the epy/docstrings look like.
>
>
http://projects.blender.org/plugins/scmsvn/viewcvs.php/branches/pyapi_devel/source/blender/python/api2_2x/Group.c?view=markup&root=bf-blender&pathrev=11145
>
> If we deciede this is acceptable I can continue and move other finished
> areas of the new API to epy/docstrings.
>
>
> _______________________________________________
> Bf-python mailing list
> Bf-python at blender.org
> http://lists.blender.org/mailman/listinfo/bf-python
>
More information about the capi-sig
mailing list