Пример #1
0
def make_cmdline_overview(descr, title=True):
    content = Rest()
    if title:
        content.add(Title("Overview of Command Line Options for '%s'" % (descr._name,), abovechar="=", belowchar="="))
    cmdlines = []
    config = Config(descr)
    for path in config.getpaths(include_groups=False):
        subconf, step = config._cfgimpl_get_home_by_path(path)
        fullpath = descr._name + "." + path
        prefix = fullpath.rsplit(".", 1)[0]
        subdescr = getattr(subconf._cfgimpl_descr, step)
        cmdline = get_cmdline(subdescr.cmdline, fullpath)
        if cmdline is not None:
            header = _get_section_header(cmdline, fullpath, subdescr)
            cmdlines.append((header, cmdline, fullpath, subdescr))
    cmdlines.sort(key=lambda x: (x[0], x[1].strip("-")))
    currheader = ""
    curr = content
    for header, cmdline, fullpath, subdescr in cmdlines:
        if header != currheader:
            content.add(Title(header, abovechar="", belowchar="="))
            curr = content.add(Paragraph())
            currheader = header
        curr.add(ListItem(Link(cmdline + ":", fullpath + ".html"), Text(subdescr.doc)))
    return content
Пример #2
0
 def get_content(self, txtpath, encoding):
     if txtpath.basename == "commandline.rst":
         result = []
         for line in txtpath.read().splitlines():
             if line.startswith('.. GENERATE:'):
                 start = line[len('.. GENERATE:'):].strip()
                 descr = start_to_descr[start]
                 line = make_cmdline_overview(descr, title=False).text()
             result.append(line)
         return "\n".join(result)
     fullpath = txtpath.purebasename
     start = fullpath.split(".")[0]
     path = fullpath.rsplit(".", 1)[0]
     basedescr = start_to_descr.get(start)
     if basedescr is None:
         return txtpath.read()
     if fullpath.count(".") == 0:
         descr = basedescr
         path = ""
     else:
         conf = Config(basedescr)
         subconf, step = conf._cfgimpl_get_home_by_path(
                 fullpath.split(".", 1)[1])
         descr = getattr(subconf._cfgimpl_descr, step)
     text = unicode(descr.make_rest_doc(path).text())
     if txtpath.check(file=True):
         content = txtpath.read()
         if content:
             text += "\nDescription\n==========="
             return u"%s\n\n%s" % (text, unicode(txtpath.read(), encoding))
     return text
Пример #3
0
def make_cmdline_overview(descr, title=True):
    content = Rest()
    if title:
        content.add(
            Title("Overview of Command Line Options for '%s'" %
                  (descr._name, ),
                  abovechar="=",
                  belowchar="="))
    cmdlines = []
    config = Config(descr)
    for path in config.getpaths(include_groups=False):
        subconf, step = config._cfgimpl_get_home_by_path(path)
        fullpath = (descr._name + "." + path)
        prefix = fullpath.rsplit(".", 1)[0]
        subdescr = getattr(subconf._cfgimpl_descr, step)
        cmdline = get_cmdline(subdescr.cmdline, fullpath)
        if cmdline is not None:
            header = _get_section_header(cmdline, fullpath, subdescr)
            cmdlines.append((header, cmdline, fullpath, subdescr))
    cmdlines.sort(key=lambda x: (x[0], x[1].strip("-")))
    currheader = ""
    curr = content
    for header, cmdline, fullpath, subdescr in cmdlines:
        if header != currheader:
            content.add(Title(header, abovechar="", belowchar="="))
            curr = content.add(Paragraph())
            currheader = header
        curr.add(
            ListItem(Link(cmdline + ":", fullpath + ".html"),
                     Text(subdescr.doc)))
    return content
Пример #4
0
 def make_rest_doc(self, path=""):
     fullpath = get_fullpath(self, path)
     content = Rest(Title(fullpath, abovechar="=", belowchar="="),
                    Directive("contents"))
     if path:
         content.add(Paragraph(Link("back to parent", path + ".html")))
     content.join(Title("Basic Option Information"),
                  ListItem(Strong("name:"), self._name),
                  ListItem(Strong("description:"), self.doc),
                  Title("Sub-Options"))
     stack = []
     prefix = fullpath
     curr = content
     config = Config(self)
     for ending in self.getpaths(include_groups=True):
         subpath = fullpath + "." + ending
         while not (subpath.startswith(prefix)
                    and subpath[len(prefix)] == "."):
             curr, prefix = stack.pop()
         print subpath, fullpath, ending, curr
         sub, step = config._cfgimpl_get_home_by_path(ending)
         doc = getattr(sub._cfgimpl_descr, step).doc
         if doc:
             new = curr.add(
                 ListItem(Link(subpath + ":", subpath + ".html"), Em(doc)))
         else:
             new = curr.add(ListItem(Link(subpath + ":",
                                          subpath + ".html")))
         stack.append((curr, prefix))
         prefix = subpath
         curr = new
     return content
Пример #5
0
 def make_rest_doc(self, path=""):
     fullpath = get_fullpath(self, path)
     content = Rest(
         Title(fullpath, abovechar="=", belowchar="="),
         Directive("contents"))
     if path:
         content.add(
             Paragraph(Link("back to parent", path + ".html")))
     content.join(
         Title("Basic Option Information"),
         ListItem(Strong("name:"), self._name),
         ListItem(Strong("description:"), self.doc),
         Title("Sub-Options"))
     stack = []
     prefix = fullpath
     curr = content
     config = Config(self)
     for ending in self.getpaths(include_groups=True):
         subpath = fullpath + "." + ending
         while not (subpath.startswith(prefix) and
                    subpath[len(prefix)] == "."):
             curr, prefix = stack.pop()
         print subpath, fullpath, ending, curr
         sub, step = config._cfgimpl_get_home_by_path(ending)
         doc = getattr(sub._cfgimpl_descr, step).doc
         if doc:
             new = curr.add(ListItem(Link(subpath + ":", subpath + ".html"),
                                     Em(doc)))
         else:
             new = curr.add(ListItem(Link(subpath + ":", subpath + ".html")))
         stack.append((curr, prefix))
         prefix = subpath
         curr = new
     return content
Пример #6
0
 def get_content(self, txtpath, encoding):
     if txtpath.basename == "commandline.txt":
         result = [".. contents::"]
         for descr in all_optiondescrs:
             result.append(".. %s_:\n" % (descr._name, ))
             result.append(make_cmdline_overview(descr).text())
             result.append("")
         result.append(txtpath.read())
         return "\n".join(result)
     fullpath = txtpath.purebasename
     start = fullpath.split(".")[0]
     path = fullpath.rsplit(".", 1)[0]
     basedescr = start_to_descr.get(start)
     if basedescr is None:
         return txtpath.read()
     if fullpath.count(".") == 0:
         descr = basedescr
         path = ""
     else:
         conf = Config(basedescr)
         subconf, step = conf._cfgimpl_get_home_by_path(
                 fullpath.split(".", 1)[1])
         descr = getattr(subconf._cfgimpl_descr, step)
     text = unicode(descr.make_rest_doc(path).text())
     if txtpath.check(file=True):
         content = txtpath.read()
         if content:
             text += "\nDescription\n==========="
             return u"%s\n\n%s" % (text, unicode(txtpath.read(), encoding))
     return text