def visit_field_list(self, node):
    fields = {}
    for n in node.children:
      if len(n.children) == 0: continue
      child = n.children[0]
      rawsource = child.rawsource
      if rawsource.startswith("param "):
        index = rawsource.index("param ")
        if len(child.children) == 0: continue
        child.children[0] = Text(rawsource[index + 6:])
        fields[rawsource[index + 6:]] = n
      if rawsource == "return":
        fields["return"] = n

    for n in node.children:
      if len(n.children) == 0: continue
      child = n.children[0]
      rawsource = child.rawsource
      if rawsource.startswith("type "):
        index = rawsource.index("type ")
        name = rawsource[index + 5:]
        if fields.has_key(name):
          fields[name].type = n.children[1][0][0]
          node.children.remove(n)
      if rawsource == "rtype":
        if fields.has_key("return"):
          fields["return"].type = n.children[1][0][0]
          node.children.remove(n)

    HTMLTranslator.visit_field_list(self, node)
Example #2
0
    def visit_field_list(self, node):
        fields = {}
        for n in node.children:
            if len(n.children) == 0: continue
            child = n.children[0]
            rawsource = child.rawsource
            if rawsource.startswith("param "):
                index = rawsource.index("param ")
                if len(child.children) == 0: continue
                child.children[0] = Text(rawsource[index + 6:])
                fields[rawsource[index + 6:]] = n
            if rawsource == "return":
                fields["return"] = n

        for n in node.children:
            if len(n.children) == 0: continue
            child = n.children[0]
            rawsource = child.rawsource
            if rawsource.startswith("type "):
                index = rawsource.index("type ")
                name = rawsource[index + 5:]
                if fields.has_key(name):
                    fields[name].type = n.children[1][0][0]
                    node.children.remove(n)
            if rawsource == "rtype":
                if fields.has_key("return"):
                    fields["return"].type = n.children[1][0][0]
                    node.children.remove(n)

        HTMLTranslator.visit_field_list(self, node)
    def visit_field_list(self, node):
        fields = {}
        for n in node.children:
            if not n.children:
                continue
            child = n.children[0]
            rawsource = child.rawsource
            if rawsource.startswith("param "):
                index = rawsource.index("param ")
                if not child.children:
                    continue
                # Strip leading escaped asterisks for vararg parameters in Google code style docstrings
                trimmed_name = re.sub(r'\\\*', '*', rawsource[index + 6:])
                child.children[0] = Text(trimmed_name)
                fields[trimmed_name] = n
            if rawsource == "return":
                fields["return"] = n

        for n in node.children:
            if not n.children:
                continue
            child = n.children[0]
            rawsource = child.rawsource
            if rawsource.startswith("type "):
                index = rawsource.index("type ")
                name = re.sub(r'\\\*', '*', rawsource[index + 5:])
                if name in fields:
                    fields[name].type = n.children[1][0][0]
                    node.children.remove(n)
            if rawsource == "rtype":
                if "return" in fields:
                    fields["return"].type = n.children[1][0][0]
                    node.children.remove(n)

        HTMLTranslator.visit_field_list(self, node)
        def visit_field_list(self, node):
            fields = {}
            for field_node in node.children:
                if not field_node.children:
                    continue
                field_name_node = field_node.children[0]
                field_name_raw = field_name_node.rawsource
                if field_name_raw.startswith("param "):
                    if not field_name_node.children:
                        continue
                    param_name = field_name_raw[len("param "):]
                    param_type = None
                    parts = param_name.rsplit(None, 1)
                    if len(parts) == 2:
                        param_type, param_name = parts
                    # Strip leading escaped asterisks for vararg parameters in Google code style docstrings
                    param_name = re.sub(r'\\\*', '*', param_name)
                    field_name_node.children[0] = Text(param_name)
                    fields[param_name] = field_node
                    if param_type:
                        field_node.type = param_type
                if field_name_raw in ("return", "returns"):
                    fields[field_name_raw] = field_node

            for field_node in list(node.children):
                if len(field_node.children) < 2:
                    continue
                field_name_node, field_body_node = field_node.children[:2]
                param_type = self._strip_markup(field_body_node.astext())[1]
                field_name_raw = field_name_node.rawsource
                if field_name_raw.startswith("type "):
                    param_name = re.sub(r'\\\*', '*',
                                        field_name_raw[len("type "):])
                    if param_name in fields:
                        node.children.remove(field_node)
                    else:
                        fields[param_name] = field_node
                        field_name_node.children[0] = Text(param_name)
                        field_body_node.children[:] = []
                    fields[param_name].type = param_type
                elif field_name_raw == "rtype":
                    existing_return_tag = None
                    if "returns" in fields:
                        existing_return_tag = "returns"
                    elif "return" in fields:
                        existing_return_tag = "return"

                    if existing_return_tag:
                        node.children.remove(field_node)
                    else:
                        existing_return_tag = "return"
                        fields[existing_return_tag] = field_node
                        field_name_node.children[0] = Text(existing_return_tag)
                        field_body_node.children[:] = []
                    fields[existing_return_tag].type = param_type

            HTMLTranslator.visit_field_list(self, node)
        def visit_field_list(self, node):
            fields = {}
            for n in node.children:
                if not n.children:
                    continue
                child = n.children[0]
                rawsource = child.rawsource
                if rawsource.startswith("param "):
                    index = rawsource.index("param ")
                    if not child.children:
                        continue
                    param_name = rawsource[index + len("param "):]
                    param_type = None
                    parts = param_name.rsplit(None, 1)
                    if len(parts) == 2:
                        param_type, param_name = parts
                    # Strip leading escaped asterisks for vararg parameters in Google code style docstrings
                    param_name = re.sub(r'\\\*', '*', param_name)
                    child.children[0] = Text(param_name)
                    fields[param_name] = n
                    if param_type:
                        n.type = param_type
                if rawsource == "return":
                    fields["return"] = n

            for n in node.children:
                if len(n.children) < 2:
                    continue
                field_name, field_body = n.children[0], n.children[1]
                rawsource = field_name.rawsource
                if rawsource.startswith("type "):
                    index = rawsource.index("type ")
                    name = re.sub(r'\\\*', '*',
                                  rawsource[index + len("type "):])
                    if name in fields:
                        fields[name].type = self._strip_markup(
                            field_body.astext())[1]
                        node.children.remove(n)
                if rawsource == "rtype":
                    if "return" in fields:
                        fields["return"].type = self._strip_markup(
                            field_body.astext())[1]
                        node.children.remove(n)

            HTMLTranslator.visit_field_list(self, node)
    def visit_field_list(self, node):
        fields = {}
        for n in node.children:
            if not n.children:
                continue
            child = n.children[0]
            rawsource = child.rawsource
            if rawsource.startswith("param "):
                index = rawsource.index("param ")
                if not child.children:
                    continue
                param_name = rawsource[index + 6:]
                param_type = None
                parts = param_name.rsplit(None, 1)
                if len(parts) == 2:
                    param_type, param_name = parts
                # Strip leading escaped asterisks for vararg parameters in Google code style docstrings
                param_name = re.sub(r'\\\*', '*', param_name)
                child.children[0] = Text(param_name)
                fields[param_name] = n
                if param_type:
                    n.type = param_type
            if rawsource == "return":
                fields["return"] = n

        for n in node.children:
            if len(n.children) < 2:
                continue
            field_name, field_body = n.children[0], n.children[1]
            rawsource = field_name.rawsource
            if rawsource.startswith("type "):
                index = rawsource.index("type ")
                name = re.sub(r'\\\*', '*', rawsource[index + 5:])
                if name in fields:
                    fields[name].type = field_body[0][0] if field_body.children else ''
                    node.children.remove(n)
            if rawsource == "rtype":
                if "return" in fields:
                    fields["return"].type = field_body[0][0] if field_body.children else ''
                    node.children.remove(n)

        HTMLTranslator.visit_field_list(self, node)
Example #7
0
File: html.py Project: evhub/sphinx
 def visit_field_list(self, node):
     self._fieldlist_row_index = 0
     return BaseTranslator.visit_field_list(self, node)
Example #8
0
 def visit_field_list(self, node):
     # type: (nodes.Node) -> None
     self._fieldlist_row_index = 0
     return BaseTranslator.visit_field_list(self, node)
Example #9
0
File: html.py Project: LFYG/sphinx
 def visit_field_list(self, node):
     # type: (nodes.Node) -> None
     self._fieldlist_row_index = 0
     return BaseTranslator.visit_field_list(self, node)