← Back to team overview

fenics team mailing list archive

Re: FEniCS Documentation -- PyDOLFIN doc-strings

 

On Wednesday July 28 2010 13:30:38 Kristian Ølgaard wrote:
> On 28 July 2010 21:20, Johan Hake <johan.hake@xxxxxxxxx> wrote:
> > [snip]
> > 
> >> > How would you do that? I tried
> >> > 
> >> > %extend dolfin::GenericVector
> >> > {
> >> >  %pythoncode
> >> >  %{
> >> >    def data(self):
> >> >        generated_docstring_module.GenericVector.data.__doc__
> >> >        return self._data()
> >> >  %}
> >> > }
> >> > 
> >> > But it was only possible to have a "real" string, not a variable that
> >> > was a str. Not sure why...
> >> 
> >> Me neither, what I thought about doing was to generate the contents of
> >> the *_post.i files from some source and then insert the docstring as a
> >> literal string in the *_post.i file. But I decided that was too much
> >> work.
> >> 
> >> So what I will end up doing is to assign to the __doc__ members of
> >> these functions in the dolfin/__init__.py (on import). This is
> >> possible because Swig doesn't mess around with these functions but
> >> just adds them to the module. If the *_post.i contains other than
> >> simple functions/member functions we'll have to generate the *_post.i
> >> files from some source.
> > 
> > Would this work? I tried:
> > 
> >  class A(object):
> >      def jada(self):pass
> > 
> >  A.jada.__doc__ = "jada"
> > 
> > but I got
> > 
> >  attribute '__doc__' of 'instancemethod' objects is not writable
> 
> Yes, the trick is to do:
> 
> A.__dict__["jada"].__doc__ = "jada"
> 
> So we just loop all classes in cpp and their dicts and try to assign
> to __doc__, if we can't we'll assume that it is handled by the
> docstrings.i. All other classes and functions in our Python layer have
> correct docstrings by construction.
> 
> > I am still on vacation, which mean that I have been away from coding a
> > bit so my Python is a bit rusty ;)
> 
> You're not much help then are you? ;)

Obviously not! :D

> Enjoy whatever remains of you holiday, looking forward to seeing you
> back, more frequently, on the list.

I'll be back!

Johan



References