from __future__ import annotations
from dataclasses import dataclassimport IPython
print(IPython.__version__)7.29.0
Supported IPython display formatters:
ip = get_ipython()
for mime in ip.display_formatter.formatters:
print(mime)text/plain
text/html
text/markdown
image/svg+xml
image/png
application/pdf
image/jpeg
text/latex
application/json
application/javascript
Let's write a simple class that will output different mime:
@dataclass
class Mime:
math: str
def _repr_mimebundle_(
self,
include: Container[str] | None = None,
exclude: Container[str] | None = None,
**kwargs,
) -> dict[str, str]:
string = self.math
data = {
"text/plain": string,
"text/html": (latex := f"\\[{string}\\]"),
"text/markdown": f"$${string}$$",
# "image/svg+xml":,
# "image/png":,
# "application/pdf":,
# "image/jpeg":,
"text/latex": latex,
# "application/json":,
# "application/javascript":,
}
if include:
data = {k: v for k, v in data.items() if k in include}
if exclude:
data = {k: v for k, v in data.items() if k not in exclude}
return datamime = Mime("E = mc^2")mimeNote that #7561 made ipynb reader aware of this, and #7563 made ipynb writer aware of this.