def parse(cls, lines): """Parse a method definition item from a set of lines. The class method parses the method signature and defintion from the list of docstring lines and produces a MethodItem where the term is the method name and the classifier is arguments .. note:: The global indention in the definition lines is striped The method definition item is assumed to be as follows:: +------------------------------+ | term "(" [ classifier ] ")" | +--+---------------------------+---+ | definition | | (body elements)+ | +--------------------- ---------+ Arguments --------- lines : docstring lines of the method definition item without any empty lines before or after. Returns ------- definition : MethodItem """ header = lines[0].strip() term, classifier, _ = signature_regex.split(header) definition = trim_indent(lines[1:]) if (len(lines) > 1) else [''] return cls(term, classifier, definition)
def parse(cls, lines): """Parse a definition item from a set of lines. The class method parses the defintion list item from the list of docstring lines and produces a DefinitionItem with the term, classifier and the definition. .. note:: The global indention in the definition lines is striped The term definition is assumed to be in one of the following formats:: term Definition. :: term Definition, paragraph 1. Definition, paragraph 2. :: term : classifier Definition. Arguments --------- lines docstring lines of the definition without any empty lines before or after. Returns ------- definition : DefinitionItem """ header = lines[0].strip() term, classifier = header_regex.split(header, maxsplit=1) if \ (' :' in header) else (header, '') trimed_lines = trim_indent(lines[1:]) if (len(lines) > 1) else [''] definition = [line.rstrip() for line in trimed_lines] return cls(term.strip(), classifier.strip(), definition)