diff -r 81916344c63b -r 42fd5075a5d1 createdoc.py --- a/createdoc.py Wed Jun 21 00:52:38 2023 +0200 +++ b/createdoc.py Tue Apr 15 01:19:47 2025 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python3 # Copyright (c) 2012 netzguerilla.net # @@ -38,7 +38,7 @@ from docutils.utils import new_document from docutils.writers.html4css1 import Writer,HTMLTranslator -from iro.view.xmlrpc import TwistedInterface as Current +from iro.view.xmlrpc import TwistedInterface as Current from iro import __version__ from createerm import createSchemaPlot, tables, tables_cls @@ -100,10 +100,10 @@ def keywords(f): NORMAL = 0 TYPE = 1 - pd = publish_doctree(f.__doc__.decode('utf8')) + pd = publish_doctree(f.__doc__) kws={} - for child in pd[1][0]: + for child in pd[1]: kw = Keyword() ftyp = NORMAL for sc in child: @@ -124,7 +124,7 @@ raise Exception("Unknown field_name: %s"%(p[0])) if sc.tagname == "field_body": if ftyp == NORMAL: - kw.description = Markup(reSTify(sc[0])) + kw.description = Markup(reSTify(sc[0]).decode()) if ftyp == TYPE: kw.typ = sc[0][0] else: @@ -134,9 +134,9 @@ def ret(f): NORMAL = 0 TYPE = 1 - - pd = publish_doctree(f.__doc__.decode('utf8')) - for child in pd[1][0]: + + pd = publish_doctree(f.__doc__) + for child in pd[1]: kw = Keyword(name="return") ftyp = NORMAL for sc in child: @@ -153,9 +153,7 @@ raise Exception("Unknown field_name: %s"%(p[0])) if sc.tagname == "field_body": if ftyp == NORMAL: - kw.description = Markup(reSTify(sc[0])) - if ftyp == TYPE: - kw.typ = sc[0][0] + kw.description = Markup(reSTify(sc[0]).decode()) else: return kw @@ -174,20 +172,22 @@ title=name[0].upper()+name[1:] Link.__init__(self,name,title) m=methods[name] - (args, varargs, keywords, defaults)=inspect.getargspec(m) - a=[] - for b in args: - if b in ("self","session"): - continue - else: - a.append(b) - - args = a - self.func_line=inspect.formatargspec(args, varargs, keywords, defaults) + + signature=inspect.signature(m) + + parameters = signature.parameters.copy() + + for arg in ("self", "session"): + try: + del(parameters[arg]) + except KeyError: + pass + + self.func_line=str(signature.replace(parameters=parameters.values())) pd = publish_doctree(m.__doc__) if pd[0].tagname == "paragraph": self.description = pd[0].astext() - self.args=[Arg(a,m) for a in args] + self.args=[Arg(a,m) for a in parameters] self.rets=[ret(m)] class Table(Link): @@ -197,7 +197,7 @@ title=self.tablename[0].upper()+self.tablename[1:] Link.__init__(self,name,title) - self.description = Markup(publish_string(cls.__doc__,writer=_w)) + self.description = Markup(publish_string(cls.__doc__,writer=_w).decode()) class File: def __init__(self,path):