Skip to content

Commit 0d5dafe

Browse files
authored
Merge pull request #174 from ccordoba12/fix_handling_metadata
Fix handling metadata in _formatter
2 parents 18180f6 + 99fb502 commit 0d5dafe

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

metakernel/_metakernel.py

+15-8
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,8 @@ def post_execute(self, retval, code, silent):
423423
return
424424
content = {
425425
'execution_count': self.execution_count,
426-
'data': data,
427-
'metadata': {},
426+
'data': data[0],
427+
'metadata': data[1],
428428
}
429429
if not silent:
430430
if Widget and isinstance(retval, Widget):
@@ -630,8 +630,8 @@ def Display(self, *args, **kwargs):
630630
self.Error(e)
631631
return
632632
content = {
633-
'data': data,
634-
'metadata': {}
633+
'data': data[0],
634+
'metadata': data[1]
635635
}
636636
self.send_response(
637637
self.iopub_socket,
@@ -810,25 +810,32 @@ def _formatter(data, repr_func):
810810
if obj:
811811
reprs[mimetype] = obj
812812

813-
retval = {}
813+
format_dict = {}
814+
metadata_dict = {}
814815
for (mimetype, value) in reprs.items():
816+
metadata = None
815817
try:
816818
value = value()
817819
except Exception:
818820
pass
819821
if not value:
820822
continue
823+
if isinstance(value, tuple):
824+
metadata = value[1]
825+
value = value[0]
821826
if isinstance(value, bytes):
822827
try:
823828
value = value.decode('utf-8')
824829
except Exception:
825830
value = base64.encodestring(value)
826831
value = value.decode('utf-8')
827832
try:
828-
retval[mimetype] = str(value)
833+
format_dict[mimetype] = str(value)
829834
except:
830-
retval[mimetype] = value
831-
return retval
835+
format_dict[mimetype] = value
836+
if metadata is not None:
837+
metadata_dict[mimetype] = metadata
838+
return (format_dict, metadata_dict)
832839

833840

834841
def format_message(*args, **kwargs):

0 commit comments

Comments
 (0)