From c6c6a53a6b7b095e075f65a35caebbe371866b7c Mon Sep 17 00:00:00 2001 From: Marc Wouts Date: Sat, 16 Feb 2019 17:53:26 +0100 Subject: [PATCH] Test support for more Jupyter languages Fix #179 --- .../Notebook with html and latex cells.ipynb | 131 ++++++++++++++++++ .../Notebook with html and latex cells.Rmd | 30 ++++ .../Notebook with html and latex cells.py | 28 ++++ .../Notebook with html and latex cells.md | 30 ++++ .../Notebook with html and latex cells.py | 25 ++++ .../Notebook with html and latex cells.py | 25 ++++ tests/test_mirror.py | 2 +- 7 files changed, 270 insertions(+), 1 deletion(-) create mode 100644 tests/notebooks/ipynb_py/Notebook with html and latex cells.ipynb create mode 100644 tests/notebooks/mirror/ipynb_to_Rmd/Notebook with html and latex cells.Rmd create mode 100644 tests/notebooks/mirror/ipynb_to_hydrogen/Notebook with html and latex cells.py create mode 100644 tests/notebooks/mirror/ipynb_to_md/Notebook with html and latex cells.md create mode 100644 tests/notebooks/mirror/ipynb_to_percent/Notebook with html and latex cells.py create mode 100644 tests/notebooks/mirror/ipynb_to_script/Notebook with html and latex cells.py diff --git a/tests/notebooks/ipynb_py/Notebook with html and latex cells.ipynb b/tests/notebooks/ipynb_py/Notebook with html and latex cells.ipynb new file mode 100644 index 000000000..eecba37a0 --- /dev/null +++ b/tests/notebooks/ipynb_py/Notebook with html and latex cells.ipynb @@ -0,0 +1,131 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

Jupytext on GitHub

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%%html\n", + "

Jupytext on GitHub

" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\frac{\\pi}{2}$" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%%latex\n", + "$\\frac{\\pi}{2}$" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext rpy2.ipython" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%%R\n", + "library(ggplot2)\n", + "ggplot(data=data.frame(x=c('A', 'B'), y=c(5, 2)), aes(x,weight=y)) + geom_bar()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMYAAACMCAYAAAAnWNZXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAABSVJREFUeJzt3U2IVXUcxvHnSY2CQogZWvjSLSjEVcIQgasMQjNqEaVFrYJZBRZBWIuwXW0iKAmml1WREBlECRWkUAujGWuhTYKYkZSlLXqHMJ8WTmD5yzniPXPuzP1+YGDu3MOZHxe+/M+5c5m/kwjAv13U9QDAICIMoEAYQIEwgAJhAAXCAAqEARQIAygQBlBY3MZJR0ZG0uv12jg1cEGmpqZOJBmd7bhWwuj1epqcnGzj1MAFsf11k+O4lAIKhAEUCAMotHKP0Ybe1ne7HmFWR57a2PUI6BNWDKBAGECBMIACYQAFwgAKhAEUCAMoEAZQIAygQBhAgTCAAmEABcIACoQBFAgDKBAGUCAMoNA4DNuLbH9m+502BwIGwfmsGFskTbc1CDBIGoVhe7mkjZJeanccYDA0XTGelfSopFP/d4DtcduTtiePHz/el+GArswahu3bJP2QZOpcxyWZSDKWZGx0dNb/gAgMtCYrxlpJt9s+ImmHpHW2X211KqBjs4aR5LEky5P0JG2W9GGS+1qfDOgQf8cACuf1nwiT7JG0p5VJgAHCigEUCAMoEAZQIAygQBhAgTCAAmEABcIACoQBFAgDKBAGUCAMoEAYQIEwgAJhAAXCAAqEARQIAygQBlAgDKBAGECBMIACYQAFwgAKhAEUCAMoEAZQIAygQBhAgTCAAmEABcIACk02p1xhe7ftadsHbG+Zi8GALjXZUemkpEeS7LN9uaQp2x8k+aLl2YDONNmc8rsk+2a+/0XStKRlbQ8GdOm87jFs9yStkfRJG8MAg6Lx5pS2L5P0pqSHkvxcPD8uaVySVq5c2bcB0YJtS7ueoJltP3X2qxutGLaX6HQUryXZWR2TZCLJWJKx0dHRfs4IzLkm70pZ0suSppM80/5IQPearBhrJd0vaZ3tz2e+bm15LqBTs95jJPlYkudgFmBg8JdvoEAYQIEwgAJhAAXCAAqEARQIAygQBlAgDKBAGECBMIACYQAFwgAKhAEUCAMoEAZQIAygQBhAgTCAAmEABcIACoQBFAgDKBAGUCAMoEAYQIEwgAJhAAXCAAqEARQIAygQBlBougffetsHbR+yvbXtoYCuNdmDb5Gk7ZI2SFot6R7bq9seDOhSkxXjBkmHkhxO8qekHZLuaHcsoFtNwlgm6ZszHh+d+RmwYM26OaXqjSlz1kH2uKTxmYe/2j54IYPNgRFJJ/p5Qj/dz7PNO31/PfVkK3uiXtXkoCZhHJW04ozHyyV9+9+DkkxImmg02gCwPZlkrOs5FoqF9no2uZT6VNK1tq+2fbGkzZLebncsoFtN9vk+aftBSe9JWiTplSQHWp8M6FCTSykl2SVpV8uzzLV5c9k3Tyyo19PJWffRwNDjIyFAgTCAwlCHYXut7e1dz4HB0+jmeyGxfb2keyXdLekrSTu7nWhhsD0i6ccskJvWoVgxbF9n+wnb05Ke1+mPuDjJTUme63i8ecf2jbb32N5pe43t/ZL2S/re9vqu5+uHoXhXyvYpSR9JeiDJoZmfHU5yTbeTzU+2JyU9LmmpTr9NuyHJXturJL2eZE2nA/bBUKwYku6UdEzSbtsv2r5Z9WfA0MziJO8neUPSsSR7JSnJlx3P1TdDEUaSt5JskrRK0h5JD0u60vYLtm/pdLj56dQZ3//xn+cWxCXIUFxKVWxfIekuSZuSrOt6nvnE9l+SftPpVfdSSb//85SkS5Is6Wq2fhnaMIBzGYpLKeB8EQZQIAygQBhAgTCAwt/7zRbab6vZ+QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import pandas as pd\n", + "pd.Series({'A':5, 'B':2}).plot(figsize=(3,2), kind='bar')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tests/notebooks/mirror/ipynb_to_Rmd/Notebook with html and latex cells.Rmd b/tests/notebooks/mirror/ipynb_to_Rmd/Notebook with html and latex cells.Rmd new file mode 100644 index 000000000..fffc43b64 --- /dev/null +++ b/tests/notebooks/mirror/ipynb_to_Rmd/Notebook with html and latex cells.Rmd @@ -0,0 +1,30 @@ +--- +jupyter: + kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +```{html} +

Jupytext on GitHub

+``` + +```{latex} +$\frac{\pi}{2}$ +``` + +```{python} +# %load_ext rpy2.ipython +``` + +```{r} +library(ggplot2) +ggplot(data=data.frame(x=c('A', 'B'), y=c(5, 2)), aes(x,weight=y)) + geom_bar() +``` + +```{python} +# %matplotlib inline +import pandas as pd +pd.Series({'A':5, 'B':2}).plot(figsize=(3,2), kind='bar') +``` diff --git a/tests/notebooks/mirror/ipynb_to_hydrogen/Notebook with html and latex cells.py b/tests/notebooks/mirror/ipynb_to_hydrogen/Notebook with html and latex cells.py new file mode 100644 index 000000000..8aebf6c48 --- /dev/null +++ b/tests/notebooks/mirror/ipynb_to_hydrogen/Notebook with html and latex cells.py @@ -0,0 +1,28 @@ +# --- +# jupyter: +# kernelspec: +# display_name: Python 3 +# language: python +# name: python3 +# --- + +# %% +%%html +

Jupytext on GitHub

+ +# %% +%%latex +$\frac{\pi}{2}$ + +# %% +%load_ext rpy2.ipython + +# %% +%%R +library(ggplot2) +ggplot(data=data.frame(x=c('A', 'B'), y=c(5, 2)), aes(x,weight=y)) + geom_bar() + +# %% +%matplotlib inline +import pandas as pd +pd.Series({'A':5, 'B':2}).plot(figsize=(3,2), kind='bar') diff --git a/tests/notebooks/mirror/ipynb_to_md/Notebook with html and latex cells.md b/tests/notebooks/mirror/ipynb_to_md/Notebook with html and latex cells.md new file mode 100644 index 000000000..6c4c6a9c3 --- /dev/null +++ b/tests/notebooks/mirror/ipynb_to_md/Notebook with html and latex cells.md @@ -0,0 +1,30 @@ +--- +jupyter: + kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +```html +

Jupytext on GitHub

+``` + +```latex +$\frac{\pi}{2}$ +``` + +```python +%load_ext rpy2.ipython +``` + +```R +library(ggplot2) +ggplot(data=data.frame(x=c('A', 'B'), y=c(5, 2)), aes(x,weight=y)) + geom_bar() +``` + +```python +%matplotlib inline +import pandas as pd +pd.Series({'A':5, 'B':2}).plot(figsize=(3,2), kind='bar') +``` diff --git a/tests/notebooks/mirror/ipynb_to_percent/Notebook with html and latex cells.py b/tests/notebooks/mirror/ipynb_to_percent/Notebook with html and latex cells.py new file mode 100644 index 000000000..73e650871 --- /dev/null +++ b/tests/notebooks/mirror/ipynb_to_percent/Notebook with html and latex cells.py @@ -0,0 +1,25 @@ +# --- +# jupyter: +# kernelspec: +# display_name: Python 3 +# language: python +# name: python3 +# --- + +# %% {"language": "html"} +#

Jupytext on GitHub

+ +# %% {"language": "latex"} +# $\frac{\pi}{2}$ + +# %% +# %load_ext rpy2.ipython + +# %% {"language": "R"} +# library(ggplot2) +# ggplot(data=data.frame(x=c('A', 'B'), y=c(5, 2)), aes(x,weight=y)) + geom_bar() + +# %% +# %matplotlib inline +import pandas as pd +pd.Series({'A':5, 'B':2}).plot(figsize=(3,2), kind='bar') diff --git a/tests/notebooks/mirror/ipynb_to_script/Notebook with html and latex cells.py b/tests/notebooks/mirror/ipynb_to_script/Notebook with html and latex cells.py new file mode 100644 index 000000000..2eeef483c --- /dev/null +++ b/tests/notebooks/mirror/ipynb_to_script/Notebook with html and latex cells.py @@ -0,0 +1,25 @@ +# --- +# jupyter: +# kernelspec: +# display_name: Python 3 +# language: python +# name: python3 +# --- + +# + {"language": "html"} +#

Jupytext on GitHub

+ +# + {"language": "latex"} +# $\frac{\pi}{2}$ +# - + +# %load_ext rpy2.ipython + +# + {"language": "R"} +# library(ggplot2) +# ggplot(data=data.frame(x=c('A', 'B'), y=c(5, 2)), aes(x,weight=y)) + geom_bar() +# - + +# %matplotlib inline +import pandas as pd +pd.Series({'A':5, 'B':2}).plot(figsize=(3,2), kind='bar') diff --git a/tests/test_mirror.py b/tests/test_mirror.py index 54e8567d9..100efb99d 100644 --- a/tests/test_mirror.py +++ b/tests/test_mirror.py @@ -199,7 +199,7 @@ def test_spin_to_ipynb(nb_file): assert_conversion_same_as_mirror(nb_file, 'ipynb:spin', 'script_to_ipynb') -@pytest.mark.parametrize('nb_file', list_notebooks('ipynb_py', skip='(raw|hash|frozen|magic|164)')) +@pytest.mark.parametrize('nb_file', list_notebooks('ipynb_py', skip='(raw|hash|frozen|magic|html|164)')) def test_ipynb_to_python_sphinx(nb_file): assert_conversion_same_as_mirror(nb_file, 'py:sphinx', 'ipynb_to_sphinx')