def normalize_output(output): """ Normalizes outputs for comparison. """ output = dict(output) if 'metadata' in output: del output['metadata'] if 'text' in output: output['text'] = re.sub(addr_pat, '<HEXADDR>', output['text']) if 'text/plain' in output.get('data', {}): output['data']['text/plain'] = \ re.sub(addr_pat, '<HEXADDR>', output['data']['text/plain']) if 'application/vnd.jupyter.widget-view+json' in output.get('data', {}): output['data']['application/vnd.jupyter.widget-view+json'] \ ['model_id'] = '<MODEL_ID>' for key, value in output.get('data', {}).items(): if isinstance(value, string_types): if sys.version_info.major == 2: value = value.replace('u\'', '\'') output['data'][key] = normalize_base64(value) if 'traceback' in output: tb = [ re.sub(ipython_input_pat, '<IPY-INPUT>', strip_ansi(line)) for line in output['traceback'] ] output['traceback'] = tb return output
def normalize_output(output): """ Normalizes outputs for comparison. """ from pprint import pprint pprint(output) output = dict(output) pprint(output) if 'metadata' in output: del output['metadata'] if 'text' in output: output['text'] = re.sub(addr_pat, '<HEXADDR>', output['text']) if 'text/plain' in output.get('data', {}): output['data']['text/plain'] = re.sub(addr_pat, '<HEXADDR>', output['data']['text/plain']) if 'application/vnd.jupyter.widget-view+json' in output.get('data', {}): output['data']['application/vnd.jupyter.widget-view+json'][ 'model_id'] = '<MODEL_ID>' if 'image/svg+xml' in output.get('data', {}): output['data']['image/svg+xml'] = xmltodict.parse( output['data']['image/svg+xml']) for key, value in output.get('data', {}).items(): if isinstance(value, string_types): output['data'][key] = normalize_base64(value) if 'traceback' in output: tb = [ re.sub(ipython_input_pat, '<IPY-INPUT>', strip_ansi(line)) for line in output['traceback'] ] output['traceback'] = tb pprint(output) return output
def _indent(self, val: str) -> str: lines = val.split("\n") new_lines = [] for line in lines: new_line = self.indent + strip_ansi(line) if len(new_line) > (self.width - 3): new_line = new_line[:(self.width - 3)] + "..." new_lines.append(new_line) return "\n".join(new_lines)
def _indent(self, val): lines = val.split("\n") new_lines = [] for line in lines: new_line = self.indent + strip_ansi(line) if len(new_line) > (self.width - 3): new_line = new_line[:(self.width - 3)] + "..." new_lines.append(new_line) return "\n".join(new_lines)
def empty_non_deterministic_outputs(cell): if "outputs" in cell and len(cell.outputs): for item in cell.outputs: if "data" in item and "image/png" in item.data: item.data["image/png"] = "" if "filenames" in item.get("metadata", {}): item["metadata"]["filenames"] = { k: os.path.basename(v) for k, v in item["metadata"]["filenames"].items() } if "traceback" in item: item["traceback"] = [ strip_ansi(line) for line in item["traceback"] ]
def load_inline_string(self, code_string): from nbconvert import filters outputs = self.loadstring(code_string) result = "" for out in outputs: if out["output_type"] == "stream": result += out["text"] elif out["output_type"] == "error": result += filters.strip_ansi("".join(out["traceback"])) elif "text/plain" in out["data"]: result += out["data"]["text/plain"] else: result = "" return result
def normalize_output(output): """ Normalizes outputs for comparison. """ output = dict(output) if 'metadata' in output: del output['metadata'] if 'text' in output: output['text'] = re.sub(addr_pat, '<HEXADDR>', output['text']) if 'text/plain' in output.get('data', {}): output['data']['text/plain'] = \ re.sub(addr_pat, '<HEXADDR>', output['data']['text/plain']) if 'traceback' in output: tb = [] for line in output['traceback']: tb.append(strip_ansi(line)) output['traceback'] = tb return output
def normalize_output(output): """ Normalizes outputs for comparison. """ output = dict(output) if 'metadata' in output: del output['metadata'] if 'text' in output: output['text'] = re.sub(addr_pat, '<HEXADDR>', output['text']) if 'text/plain' in output.get('data', {}): output['data']['text/plain'] = \ re.sub(addr_pat, '<HEXADDR>', output['data']['text/plain']) for key, value in output.get('data', {}).items(): if isinstance(value, string_types): output['data'][key] = _normalize_base64(value) if 'traceback' in output: tb = [ re.sub(ipython_input_pat, '<IPY-INPUT>', strip_ansi(line)) for line in output['traceback'] ] output['traceback'] = tb return output
def highlight_ansi_and_escape(self, text): return self.escape(filters.strip_ansi(text))