createdoc.py
branchdevel
changeset 76 9f7da8dc8df8
parent 74 c471fed3cab8
child 77 7dce6c0f06fb
equal deleted inserted replaced
75:c6a281dafa7a 76:9f7da8dc8df8
     7 
     7 
     8 import re
     8 import re
     9 import inspect
     9 import inspect
    10 from iro.user import User as Current
    10 from iro.user import User as Current
    11 from iro.newuser import User as New
    11 from iro.newuser import User as New
       
    12 
    12 
    13 
    13 
    14 
    14 
    15 
    15 class Link():
    16 class Link():
    16     def __init__(self,name,title):
    17     def __init__(self,name,title):
    57     return ret,li
    58     return ret,li
    58 
    59 
    59 
    60 
    60 
    61 
    61 def keywords(f):
    62 def keywords(f):
    62     doc=f.__doc__
    63     doc=f.__doc__.decode('utf8')
    63     kwds=re.search("Keywords:\n(?P<keywords>(?P<whitespace>\s*)(.+\n)*)\n",doc)
    64     kwds=re.search("Keywords:\n(?P<keywords>(?P<whitespace>\s*)(.+\n)*)\n",doc)
    64     k=kwds.group("keywords")
    65     k=kwds.group("keywords")
    65     #get rid of beginning whitespaces
    66     #get rid of beginning whitespaces
    66     k=re.sub(re.compile(r"^"+kwds.group("whitespace"),re.M),"",k)
    67     k=re.sub(re.compile(r"^"+kwds.group("whitespace"),re.M),"",k)
    67     return section(k)
    68     return section(k)
    68 
    69 
    69 def ret(f):
    70 def ret(f):
    70     doc=f.__doc__
    71     doc=f.__doc__.decode('utf8')
    71     kwds=re.search("Return:\n(?P<ret>(?P<whitespace>\s*)(.+\n)*)\n",doc)
    72     kwds=re.search("Return:\n(?P<ret>(?P<whitespace>\s*)(.+\n)*)\n",doc)
    72     k=kwds.group("ret")
    73     k=kwds.group("ret")
    73     #get rid of beginning whitespaces
    74     #get rid of beginning whitespaces
    74     k=re.sub(re.compile(r"^"+kwds.group("whitespace"),re.M),"",k)
    75     k=re.sub(re.compile(r"^"+kwds.group("whitespace"),re.M),"",k)
    75     return section(k)
    76     return section(k)
    92         Link.__init__(self,name,title)
    93         Link.__init__(self,name,title)
    93         m=methods[name]
    94         m=methods[name]
    94         (args, varargs, keywords, defaults)=inspect.getargspec(m)
    95         (args, varargs, keywords, defaults)=inspect.getargspec(m)
    95         args= [b for b in args if b is not "self"]
    96         args= [b for b in args if b is not "self"]
    96         self.func_line=inspect.formatargspec(args, varargs, keywords, defaults)
    97         self.func_line=inspect.formatargspec(args, varargs, keywords, defaults)
    97         self.description = m.__doc__.split("\n")[0]
    98         self.description = m.__doc__.split("\n")[0].decode("utf8")
    98         self.args=[Arg(a,m) for a in args]
    99         self.args=[Arg(a,m) for a in args]
    99         _, self.rets=ret(m)
   100         _, self.rets=ret(m)
   100 
   101 
   101 
   102 
   102 def main():
   103 def main():