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)
def visit_field_list(self, node): self._fieldlist_row_index = 0 return BaseTranslator.visit_field_list(self, node)
def visit_field_list(self, node): # type: (nodes.Node) -> None self._fieldlist_row_index = 0 return BaseTranslator.visit_field_list(self, node)