dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #25086
Re: dolfin:error doc string breaks build
On Wednesday November 16 2011 10:43:52 Anders Logg wrote:
> On Wed, Nov 16, 2011 at 10:37:49AM -0800, Johan Hake wrote:
> > On Wednesday November 16 2011 06:16:12 Garth N. Wells wrote:
> > > On 16 November 2011 13:13, Anders Logg <logg@xxxxxxxxx> wrote:
> > > > On Wed, Nov 16, 2011 at 01:06:41PM +0000, Garth N. Wells wrote:
> > > >> On 16 November 2011 12:12, Anders Logg <logg@xxxxxxxxx> wrote:
> > > >> > On Wed, Nov 16, 2011 at 01:04:54PM +0100, Anders Logg wrote:
> > > >> >> On Wed, Nov 16, 2011 at 10:10:38AM +0000, Garth N. Wells wrote:
> > > >> >> > I get
> > > >> >> >
> > > >> >> > [100%] Built target dolfin
> > > >> >> > [100%] Swig source
> > > >> >> > /home/garth/code/fenics/dolfin.d/1.0.d/working/dolfin/swig/docs
> > > >> >> > trin gs.i:3081: Error: Syntax error in input(1).
> > > >> >> > make[2]: *** [dolfin/swig/dolfinPYTHON_wrap.cxx] Error 1
> > > >> >> > make[1]: *** [dolfin/swig/CMakeFiles/_cpp.dir/all] Error 2
> > > >> >> >
> > > >> >> > How was this not picked up by a local build?
> > > >> >>
> > > >> >> Strange, my branch builds fine here and so does my buildbot:
> > > >> >>
> > > >> >> http://fenicsproject.org:8082/
> > > >> >>
> > > >> >> Could it be a merge problem from when Johan merged his changes?
> > > >> >
> > > >> > The problem was that Johan ran generate.py to regenerate the
> > > >> > docstrings and I didn't so the problem never showed up for me or
> > > >> > on my buildbot which does not have that changeset.
> > > >> >
> > > >> > When should we run generate.py?
> > > >>
> > > >> It should be run when a header file is added or a doc string
> > > >> changes. Adding functions or changing function signatures doesn't
> > > >> require generate.py to be run.
> > > >
> > > > Why not? The function signature will be part of the online
> > > > documentation and if a new function is added, then the corresponding
> > > > docstring must be generated.
> >
> > AFAIK, generate.py only considers changes in docstrings.
> >
> > Previously we did include the signature in the docstrings, using:
> > %feature("autodoc")
> >
> > As a matter of fact it is still outcommented in dolfin.i. This feature
> > included information about the signature directly in the docstring.
> > However it conflicted with some of our typemaps, and it was disabled.
> > However, it was never dependent on generate.py.
>
> Check these two lines in generate.py:
>
> from documentation import generate_docstrings
> generate_docstrings()
>
> It calls generate_docstrings defined in documentation.py, which does
> among other things this:
I guess you're right.
Johan
> def get_args(signature):
> "Get argument names (for Python) from signature."
> # print "sig: ", signature
> arg_string = signature.split("(")[-1].split(")")[0]
> # print "arg_string: '%s'" % arg_string
> args = []
> if arg_string:
> # This does not handle ',' inside type declaration,
> # e.g. std::pair<uint, uint>.
> # args = [a.split()[-1] for a in arg_string.split(",")]
> for a in arg_string.split(","):
> arg = a.split()[-1]
> # Assuming '::' is never in a name, but always
> # present when dealing with e.g. 'std::pair'
> # or boost::unordered_map.
> if not "::" in arg:
> args.append(arg)
>
> --
> Anders
>
> > Johan
> >
> > > I quote from my email:
> > > "or a doc string changes."
> > >
> > > The addition of a doc string is a change.
> > >
> > > Garth
> > >
> > >
> > > _______________________________________________
> > > Mailing list: https://launchpad.net/~dolfin
> > > Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> > > Unsubscribe : https://launchpad.net/~dolfin
> > > More help : https://help.launchpad.net/ListHelp
References