Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
 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)
Beispiel #4
0
 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"]
                ]
Beispiel #6
0
 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
Beispiel #7
0
 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
Beispiel #8
0
    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
Beispiel #9
0
    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
Beispiel #10
0
    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
Beispiel #11
0
    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
Beispiel #12
0
 def highlight_ansi_and_escape(self, text):
     return self.escape(filters.strip_ansi(text))
Beispiel #13
0
 def highlight_ansi_and_escape(self, text):
     return self.escape(filters.strip_ansi(text))