diff options
Diffstat (limited to 'test/ipynb/mime.out.ipynb')
-rw-r--r-- | test/ipynb/mime.out.ipynb | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/test/ipynb/mime.out.ipynb b/test/ipynb/mime.out.ipynb new file mode 100644 index 000000000..4cc806a1e --- /dev/null +++ b/test/ipynb/mime.out.ipynb @@ -0,0 +1,169 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from __future__ import annotations\n", + "\n", + "from dataclasses import dataclass" + ], + "id": "0ad1fbe7-107b-4668-ae4d-8ce4ae9a4400" + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "7.29.0\n" + ] + } + ], + "source": [ + "import IPython\n", + "\n", + "print(IPython.__version__)" + ], + "id": "c2d3a9f4-dfdb-4ced-bbcd-3dfd1780af80" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Supported IPython display formatters:" + ], + "id": "21e7a4a1-0cf8-48cc-823c-dca698ae6853" + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "text/plain\n", + "text/html\n", + "text/markdown\n", + "image/svg+xml\n", + "image/png\n", + "application/pdf\n", + "image/jpeg\n", + "text/latex\n", + "application/json\n", + "application/javascript\n" + ] + } + ], + "source": [ + "ip = get_ipython()\n", + "for mime in ip.display_formatter.formatters:\n", + " print(mime)" + ], + "id": "053cdbc4-b157-4e3e-9c86-8f374770d006" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's write a simple class that will output different mime:" + ], + "id": "d79b063d-ce81-497b-a0ea-5b2e2972e845" + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Mime:\n", + " math: str\n", + "\n", + " def _repr_mimebundle_(\n", + " self,\n", + " include: Container[str] | None = None,\n", + " exclude: Container[str] | None = None,\n", + " **kwargs,\n", + " ) -> dict[str, str]:\n", + " string = self.math\n", + " data = {\n", + " \"text/plain\": string,\n", + " \"text/html\": (latex := f\"\\\\[{string}\\\\]\"),\n", + " \"text/markdown\": f\"$${string}$$\",\n", + " # \"image/svg+xml\":,\n", + " # \"image/png\":,\n", + " # \"application/pdf\":,\n", + " # \"image/jpeg\":,\n", + " \"text/latex\": latex,\n", + " # \"application/json\":,\n", + " # \"application/javascript\":,\n", + " }\n", + " if include:\n", + " data = {k: v for k, v in data.items() if k in include}\n", + " if exclude:\n", + " data = {k: v for k, v in data.items() if k not in exclude}\n", + " return data" + ], + "id": "c847636c-1c45-432e-9d8d-7310dd7f5637" + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "mime = Mime(\"E = mc^2\")" + ], + "id": "4fa54f22-0c3a-4809-91f7-ea7101ff1907" + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 6, + "metadata": {}, + "data": { + "text/html": [ + "\\[E = mc^2\\]" + ], + "text/latex": [ + "\\[E = mc^2\\]" + ], + "text/markdown": [ + "$$E = mc^2$$" + ], + "text/plain": [ + "E = mc^2" + ] + } + } + ], + "source": [ + "mime" + ], + "id": "c419e6a6-240c-4af0-a244-5f1526705c30" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that #7561 made ipynb reader aware of this, and #7563 made ipynb writer aware of this." + ], + "id": "bf140b8e-16ac-4670-9778-f1c1d9486f9d" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} |