def getDocumentationFromAutoGen(fullModulePath): def is_code_or_literal_block(node): if node.tagname != 'literal_block': return False classes = node.attributes['classes'] if 'ipython-result' in classes: return True if 'code' in classes and 'python' in classes: return True return False with io.open(fullModulePath, 'r', encoding='utf-8') as f: contents = f.read() sys.stderr = NoOutput(sys.stderr) doctree = publish_doctree(contents) sys.stderr = sys.stderr.release() allCodeExpects = [] lastCode = None for child in doctree.traverse(is_code_or_literal_block): childText = child.astext() if '#_DOCS_SHOW' in childText: continue if 'ipython-result' in child.attributes['classes']: childText = childText.strip() childText = testRunner.stripAddresses(childText, '...') if lastCode is not None: allCodeExpects.append((lastCode, childText)) lastCode = None else: if lastCode not in (None, ""): allCodeExpects.append((lastCode, "")) lastCode = None # unneeded but clear childTextSplit = childText.split('\n') if len(childTextSplit) == 0: continue childTextArray = [childTextSplit[0]] matchesShow = re.search(r'\.show\((.*)\)', childTextSplit[0]) if matchesShow is not None and not matchesShow.group(1).startswith('t'): childTextArray = [] if re.search(r'.plot\(.*\)', childTextSplit[0]): childTextArray = [] if '#_RAISES_ERROR' in childTextSplit[0]: childTextArray = [] if childTextSplit[0].startswith('%'): childTextArray = [] for l in childTextSplit[1:]: # split into multiple examples unless indented if '#_RAISES_ERROR' in childTextSplit[0]: childTextArray = [] elif re.search(r'.plot\(.*\)', childTextSplit[0]): continue elif l.startswith('%'): childTextArray = [] elif l.startswith(' '): matchesShow = re.search(r'\.show\((.*)\)', l) if matchesShow is not None and not matchesShow.group(1).startswith('t'): continue else: childTextArray.append(l) else: lastCode = '\n'.join(childTextArray) if lastCode not in (None, ""): allCodeExpects.append((lastCode, "")) lastCode = None childTextArray = [l] lastCode = '\n'.join(childTextArray) return allCodeExpects
def getDocumentationFromAutoGen(fullModulePath): def is_code_or_literal_block(node): if node.tagname != 'literal_block': return False classes = node.attributes['classes'] if 'ipython-result' in classes: return True if 'code' in classes and 'python' in classes: return True return False with io.open(fullModulePath, 'r', encoding='utf-8') as f: contents = f.read() sys.stderr = NoOutput(sys.stderr) doctree = publish_doctree(contents) sys.stderr = sys.stderr.release() allCodeExpects = [] lastCode = None for child in doctree.traverse(is_code_or_literal_block): childText = child.astext() if '#_DOCS_SHOW' in childText: continue if 'ipython-result' in child.attributes['classes']: childText = childText.strip() childText = testRunner.stripAddresses(childText, '...') if lastCode is not None: allCodeExpects.append((lastCode, childText)) lastCode = None else: if lastCode not in (None, ""): allCodeExpects.append((lastCode, "")) lastCode = None # unneeded but clear childTextSplit = childText.split('\n') if len(childTextSplit) == 0: continue childTextArray = [childTextSplit[0]] matchesShow = re.search(r'\.show\((.*)\)', childTextSplit[0]) if matchesShow is not None and not matchesShow.group(1).startswith( 't'): childTextArray = [] if re.search(r'.plot\(.*\)', childTextSplit[0]): childTextArray = [] if '#_RAISES_ERROR' in childTextSplit[0]: childTextArray = [] if childTextSplit[0].startswith('%'): childTextArray = [] for l in childTextSplit[ 1:]: # split into multiple examples unless indented if '#_RAISES_ERROR' in childTextSplit[0]: childTextArray = [] elif re.search(r'.plot\(.*\)', childTextSplit[0]): continue elif l.startswith('%'): childTextArray = [] elif l.startswith(' '): matchesShow = re.search(r'\.show\((.*)\)', l) if matchesShow is not None and not matchesShow.group( 1).startswith('t'): continue else: childTextArray.append(l) else: lastCode = '\n'.join(childTextArray) if lastCode not in (None, ""): allCodeExpects.append((lastCode, "")) lastCode = None childTextArray = [l] lastCode = '\n'.join(childTextArray) return allCodeExpects