--- 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 <iro@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):