diff --git a/doc/to_sphinx.py b/doc/to_sphinx.py index 08d7cf3e0ceb9d00ab8b3e8edaf10439a17abf60..09809d2351170a195c26aeada9f2c28b6d4a62fa 100644 --- a/doc/to_sphinx.py +++ b/doc/to_sphinx.py @@ -10,10 +10,14 @@ print '.. currentmodule:: %s' % module print '' print '.. class:: %s' % class_name +def _arg_type(arg_type): + if arg_type not in ('str', 'int', 'bool', 'float', 'None'): + return ':class:`%s`' % arg_type + return arg_type class TypedArgument: def __init__(self, name, arg_type): self.name=name - self.type=arg_type + self.type=_arg_type(arg_type) class Method: def __init__(self, name, rtype, args, optional): @@ -57,10 +61,15 @@ def parse_signature(signature): args.append(TypedArgument(a.groupdict()['name'], a.groupdict()['type'])) return Method(method_match.groupdict()['name'], - method_match.groupdict()['rtype'], args[1:], opt_args) + _arg_type(method_match.groupdict()['rtype']), + args[1:], opt_args) print signature, 'not matched' -for m in dir(the_class): +if '--no-derived' in sys.argv: + members=the_class.__dict__.keys() +else: + members=dir(the_class) +for m in members: if m.startswith('__'): continue member_doc=getattr(the_class, m).__doc__