diff --git a/.github/locks/docs/linux-64/conda.lock b/.github/locks/docs/linux-64/conda.lock index 2b1c258f..ac7abd20 100644 --- a/.github/locks/docs/linux-64/conda.lock +++ b/.github/locks/docs/linux-64/conda.lock @@ -96,7 +96,7 @@ https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#eefe83ff43117f8af6d4641d1bc9fce6 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2#b7190e3ec3eff52839434bf4698e2d62 -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/docs/osx-64/conda.lock b/.github/locks/docs/osx-64/conda.lock index b6451e9e..7683d932 100644 --- a/.github/locks/docs/osx-64/conda.lock +++ b/.github/locks/docs/osx-64/conda.lock @@ -92,7 +92,7 @@ https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#a2ad95050f62f8b4f86a125f77fd9df5 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2#b7190e3ec3eff52839434bf4698e2d62 -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/docs/win-64/conda.lock b/.github/locks/docs/win-64/conda.lock index 8c2d06ab..31e8ad6e 100644 --- a/.github/locks/docs/win-64/conda.lock +++ b/.github/locks/docs/win-64/conda.lock @@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#4dfe69fb8ad8543e4654ea881f19c8e8 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2#b7190e3ec3eff52839434bf4698e2d62 -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/lint/linux-64/conda.lock b/.github/locks/lint/linux-64/conda.lock index a4479528..5d03a021 100644 --- a/.github/locks/lint/linux-64/conda.lock +++ b/.github/locks/lint/linux-64/conda.lock @@ -59,7 +59,7 @@ https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py38h32f6830_1.tar.b https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py38h924ce5b_2.tar.bz2#85f49978317e2f963ffd1d0989b16038 https://conda.anaconda.org/conda-forge/noarch/flake8-3.8.4-py_0.tar.bz2#138b1704321c115bd10e1966320ac790 https://conda.anaconda.org/conda-forge/linux-64/isort-4.3.21-py38h32f6830_1.tar.bz2#7a962de435df2743269a1cb288a88cfe -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.2-pyhd8ed1ab_0.tar.bz2#8bb930d172961c9ba9ffd6e10a64b844 https://conda.anaconda.org/conda-forge/linux-64/selenium-3.141.0-py38h1e0a361_1002.tar.bz2#c5407c16d93e0e81d7113caf15d079b7 diff --git a/.github/locks/lint/osx-64/conda.lock b/.github/locks/lint/osx-64/conda.lock index 95fb4e3b..871e15be 100644 --- a/.github/locks/lint/osx-64/conda.lock +++ b/.github/locks/lint/osx-64/conda.lock @@ -54,7 +54,7 @@ https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py38h32f6830_1.tar.bz2 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py38h5347e94_2.tar.bz2#d60492e2803bc7f3c85544532868cee1 https://conda.anaconda.org/conda-forge/noarch/flake8-3.8.4-py_0.tar.bz2#138b1704321c115bd10e1966320ac790 https://conda.anaconda.org/conda-forge/osx-64/isort-4.3.21-py38h32f6830_1.tar.bz2#b55808f63246945fd16bc17a5a7439d3 -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.2-pyhd8ed1ab_0.tar.bz2#8bb930d172961c9ba9ffd6e10a64b844 https://conda.anaconda.org/conda-forge/osx-64/selenium-3.141.0-py38h4d0b108_1002.tar.bz2#22c4963b1ca8d159fccd7630eb98b0e9 diff --git a/.github/locks/lint/win-64/conda.lock b/.github/locks/lint/win-64/conda.lock index dcb8a57c..090a5531 100644 --- a/.github/locks/lint/win-64/conda.lock +++ b/.github/locks/lint/win-64/conda.lock @@ -48,7 +48,7 @@ https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py38h9bdc248_2.tar.b https://conda.anaconda.org/conda-forge/win-64/setuptools-49.6.0-py38h9bdc248_2.tar.bz2#98726e11607788e59c4135db810e8521 https://conda.anaconda.org/conda-forge/noarch/flake8-3.8.4-py_0.tar.bz2#138b1704321c115bd10e1966320ac790 https://conda.anaconda.org/conda-forge/win-64/isort-4.3.21-py38h32f6830_1.tar.bz2#2cba5a24528e0389e31d0e321817f416 -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.2-pyhd8ed1ab_0.tar.bz2#8bb930d172961c9ba9ffd6e10a64b844 https://conda.anaconda.org/conda-forge/win-64/selenium-3.141.0-py38h1e8a9f7_1002.tar.bz2#82eb5bcde73994ab844862ce24127e70 diff --git a/.github/locks/test/linux-64/py3.6/lab1/conda.lock b/.github/locks/test/linux-64/py3.6/lab1/conda.lock index 55c8cd6b..c9ed3b30 100644 --- a/.github/locks/test/linux-64/py3.6/lab1/conda.lock +++ b/.github/locks/test/linux-64/py3.6/lab1/conda.lock @@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#eefe83ff43117f8af6d4641d1bc9fce6 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/linux-64/py3.6/lab2/conda.lock b/.github/locks/test/linux-64/py3.6/lab2/conda.lock index 50b4805e..f1e3df7a 100644 --- a/.github/locks/test/linux-64/py3.6/lab2/conda.lock +++ b/.github/locks/test/linux-64/py3.6/lab2/conda.lock @@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#eefe83ff43117f8af6d4641d1bc9fce6 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/linux-64/py3.8/lab1/conda.lock b/.github/locks/test/linux-64/py3.8/lab1/conda.lock index 79715ad7..359e648a 100644 --- a/.github/locks/test/linux-64/py3.8/lab1/conda.lock +++ b/.github/locks/test/linux-64/py3.8/lab1/conda.lock @@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#49dd43811f60b5ba18fb9d7663a451d5 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/linux-64/py3.8/lab2/conda.lock b/.github/locks/test/linux-64/py3.8/lab2/conda.lock index ea46d6e1..eeae8903 100644 --- a/.github/locks/test/linux-64/py3.8/lab2/conda.lock +++ b/.github/locks/test/linux-64/py3.8/lab2/conda.lock @@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#49dd43811f60b5ba18fb9d7663a451d5 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/linux-64/py3.8/lab3/conda.lock b/.github/locks/test/linux-64/py3.8/lab3/conda.lock index 8687f6b4..99db81e1 100644 --- a/.github/locks/test/linux-64/py3.8/lab3/conda.lock +++ b/.github/locks/test/linux-64/py3.8/lab3/conda.lock @@ -90,7 +90,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#49dd43811f60b5ba18fb9d7663a451d5 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/linux-64/py3.9/lab1/conda.lock b/.github/locks/test/linux-64/py3.9/lab1/conda.lock index b85cb77d..758c74f6 100644 --- a/.github/locks/test/linux-64/py3.9/lab1/conda.lock +++ b/.github/locks/test/linux-64/py3.9/lab1/conda.lock @@ -88,7 +88,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/linux-64/py3.9/lab2/conda.lock b/.github/locks/test/linux-64/py3.9/lab2/conda.lock index 03092b63..01a1f977 100644 --- a/.github/locks/test/linux-64/py3.9/lab2/conda.lock +++ b/.github/locks/test/linux-64/py3.9/lab2/conda.lock @@ -88,7 +88,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/linux-64/py3.9/lab3/conda.lock b/.github/locks/test/linux-64/py3.9/lab3/conda.lock index 051ab352..a805d7e0 100644 --- a/.github/locks/test/linux-64/py3.9/lab3/conda.lock +++ b/.github/locks/test/linux-64/py3.9/lab3/conda.lock @@ -91,7 +91,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/osx-64/py3.6/lab1/conda.lock b/.github/locks/test/osx-64/py3.6/lab1/conda.lock index a993f2a3..5d0f7faf 100644 --- a/.github/locks/test/osx-64/py3.6/lab1/conda.lock +++ b/.github/locks/test/osx-64/py3.6/lab1/conda.lock @@ -83,7 +83,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#a2ad95050f62f8b4f86a125f77fd9df5 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/osx-64/py3.6/lab2/conda.lock b/.github/locks/test/osx-64/py3.6/lab2/conda.lock index c0f40373..2acce2bb 100644 --- a/.github/locks/test/osx-64/py3.6/lab2/conda.lock +++ b/.github/locks/test/osx-64/py3.6/lab2/conda.lock @@ -83,7 +83,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#a2ad95050f62f8b4f86a125f77fd9df5 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/osx-64/py3.8/lab1/conda.lock b/.github/locks/test/osx-64/py3.8/lab1/conda.lock index e0432fa8..166ea770 100644 --- a/.github/locks/test/osx-64/py3.8/lab1/conda.lock +++ b/.github/locks/test/osx-64/py3.8/lab1/conda.lock @@ -83,7 +83,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#f9a8ce63603d7a7db2890f594da72694 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/osx-64/py3.8/lab2/conda.lock b/.github/locks/test/osx-64/py3.8/lab2/conda.lock index 545d9fa0..f9461110 100644 --- a/.github/locks/test/osx-64/py3.8/lab2/conda.lock +++ b/.github/locks/test/osx-64/py3.8/lab2/conda.lock @@ -83,7 +83,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#f9a8ce63603d7a7db2890f594da72694 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/osx-64/py3.8/lab3/conda.lock b/.github/locks/test/osx-64/py3.8/lab3/conda.lock index 97251513..d2d81ada 100644 --- a/.github/locks/test/osx-64/py3.8/lab3/conda.lock +++ b/.github/locks/test/osx-64/py3.8/lab3/conda.lock @@ -86,7 +86,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#f9a8ce63603d7a7db2890f594da72694 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/osx-64/py3.9/lab1/conda.lock b/.github/locks/test/osx-64/py3.9/lab1/conda.lock index 14c933e3..01cf9c83 100644 --- a/.github/locks/test/osx-64/py3.9/lab1/conda.lock +++ b/.github/locks/test/osx-64/py3.9/lab1/conda.lock @@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/osx-64/py3.9/lab2/conda.lock b/.github/locks/test/osx-64/py3.9/lab2/conda.lock index 4aeb312f..6e33a438 100644 --- a/.github/locks/test/osx-64/py3.9/lab2/conda.lock +++ b/.github/locks/test/osx-64/py3.9/lab2/conda.lock @@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/osx-64/py3.9/lab3/conda.lock b/.github/locks/test/osx-64/py3.9/lab3/conda.lock index e9579897..61a7cb34 100644 --- a/.github/locks/test/osx-64/py3.9/lab3/conda.lock +++ b/.github/locks/test/osx-64/py3.9/lab3/conda.lock @@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/win-64/py3.6/lab1/conda.lock b/.github/locks/test/win-64/py3.6/lab1/conda.lock index 4741696e..5d26c1b8 100644 --- a/.github/locks/test/win-64/py3.6/lab1/conda.lock +++ b/.github/locks/test/win-64/py3.6/lab1/conda.lock @@ -82,7 +82,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#4dfe69fb8ad8543e4654ea881f19c8e8 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/win-64/terminado-0.9.1-py36ha15d459_1.tar.bz2#20bb363dc90d6df868251b6fe13081c2 diff --git a/.github/locks/test/win-64/py3.6/lab2/conda.lock b/.github/locks/test/win-64/py3.6/lab2/conda.lock index 5dca0d6b..8bdf8fc5 100644 --- a/.github/locks/test/win-64/py3.6/lab2/conda.lock +++ b/.github/locks/test/win-64/py3.6/lab2/conda.lock @@ -82,7 +82,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#4dfe69fb8ad8543e4654ea881f19c8e8 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/win-64/terminado-0.9.1-py36ha15d459_1.tar.bz2#20bb363dc90d6df868251b6fe13081c2 diff --git a/.github/locks/test/win-64/py3.8/lab1/conda.lock b/.github/locks/test/win-64/py3.8/lab1/conda.lock index 894a85d5..c2250645 100644 --- a/.github/locks/test/win-64/py3.8/lab1/conda.lock +++ b/.github/locks/test/win-64/py3.8/lab1/conda.lock @@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#b83ae2d41bc9bf8570a5d976904bbe35 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/win-64/py3.8/lab2/conda.lock b/.github/locks/test/win-64/py3.8/lab2/conda.lock index 56133af4..8beeee87 100644 --- a/.github/locks/test/win-64/py3.8/lab2/conda.lock +++ b/.github/locks/test/win-64/py3.8/lab2/conda.lock @@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#b83ae2d41bc9bf8570a5d976904bbe35 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/win-64/py3.9/lab1/conda.lock b/.github/locks/test/win-64/py3.9/lab1/conda.lock index b2390366..c426a4d1 100644 --- a/.github/locks/test/win-64/py3.9/lab1/conda.lock +++ b/.github/locks/test/win-64/py3.9/lab1/conda.lock @@ -85,7 +85,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/locks/test/win-64/py3.9/lab2/conda.lock b/.github/locks/test/win-64/py3.9/lab2/conda.lock index 309c70b8..221622ee 100644 --- a/.github/locks/test/win-64/py3.9/lab2/conda.lock +++ b/.github/locks/test/win-64/py3.9/lab2/conda.lock @@ -85,7 +85,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a -https://conda.anaconda.org/conda-forge/noarch/pip-20.2.4-py_0.tar.bz2#d2c0e7b7ca15440dc445e725f1e79ccf +https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c790f7ad..a9d59834 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ env: PIP_DISABLE_PIP_VERSION_CHECK: 1 PYTHONIOENCODING: utf-8 PYTHONUNBUFFERED: 1 - ATEST_RETRIES: 4 + ATEST_RETRIES: 2 CI: 1 defaults: diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 00000000..31b15a8f --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,17 @@ +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details +version: 2 + +sphinx: + configuration: docs/conf.py + +formats: + - htmlzip + - epub + +conda: + environment: docs/rtd.yml + +python: + install: + - method: pip + path: . diff --git a/LICENSE b/LICENSE index 6d18ed4d..3987057a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018, Nicholas Bollweg +Copyright (c) 2020, Robots from Jupyter All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index b3097828..bae770c6 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ [robot framework]: http://robotframework.org [jupyter]: https://jupyter.org -| pip | conda | docs | demo | pipes | -| :-------------------: | :---: | :---------------------: | :-------------------------: | :---------------------------: | -| [![pip-badge][]][pip] | TODO | [![docs-badge][]][docs] | [![binder-badge][]][binder] | [![worfklow-badge]][workflow] | +| pip | conda | docs | demo | actions | +| :-------------------: | :-----------------------------------: | :---------------------: | :-------------------------: | :-----------------------------: | +| [![pip-badge][]][pip] | [![conda-forge-badge][]][conda-forge] | [![docs-badge][]][docs] | [![binder-badge][]][binder] | [![workflow-badge][]][workflow] | # Using @@ -30,6 +30,8 @@ A Notebook in JupyterLab Capture Page Screenshot ``` +> or use [magics][] in notebooks. + See the [acceptance tests][] for examples. # Installation @@ -48,7 +50,7 @@ conda install -c conda-forge robotframework-jupyterlibrary - get Firefox - Chrome works, too, but more fickle -- get [Miniconda3][] (as in Python 3.6+) +- get [Miniforge][] (as in Python 3.6+) - clone this repo... git clone https://github.com/robots-from-jupyter/robotframework-jupyterlibrary @@ -69,29 +71,37 @@ conda install -c conda-forge robotframework-jupyterlibrary # Free Software -JupyterLibrary is Free Software under the BSD-3-Clause License. It contains code -from a number of other projects: +JupyterLibrary is Free Software under the [BSD-3-Clause License][license]. It +contains code from a number of other projects: - [Jyve][] ([BSD-3-Clause][jyve-license]) - Initial implementations of robot keywords +[license]: + https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/blob/master/LICENSE [acceptance tests]: - https://github.com/robots-from-jupyter/robotframework-jupyterlab -[miniconda3]: https://conda.io/miniconda.html + https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/tree/master/atest +[miniforge]: https://github.com/conda-forge/miniforge/releases [binder-badge]: https://mybinder.org/badge_logo.svg [binder]: - https://mybinder.org/v2/gh/robots-from-jupyter/robotframework-jupyterlibrary/master?urlpath=lab/tree/README.md + https://mybinder.org/v2/gh/robots-from-jupyter/robotframework-jupyterlibrary/master?urlpath=lab/tree/docs/MAGIC.ipynb [workflow-badge]: - https://github.com/bollwyvl/robotframework-jupyterlibrary/workflows/CI/badge.svg + https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/workflows/CI/badge.svg [workflow]: - https://github.com/bollwyvl/robotframework-jupyterlibrary/actions?query=branch%3Amaster+workflow%3ACI + https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/actions?query=workflow%3ACI+branch%3Amaster [docs-badge]: - https://readthedocs.org/projects/robotframework-jupyterlibrary/badge/?version=latest + https://readthedocs.org/projects/robotframework-jupyterlibrary/badge/?version=stable [pip-badge]: https://img.shields.io/pypi/v/robotframework-jupyterlibrary.svg [pip]: https://pypi.org/project/robotframework-jupyterlibrary +[conda-forge]: + https://github.com/conda-forge/robotframework-jupyterlibrary-feedstock#installing-robotframework-jupyterlibrary +[conda-forge-badge]: + https://img.shields.io/conda/vn/conda-forge/robotframework-jupyterlibrary.svg [docs]: https://robotframework-jupyterlibrary.readthedocs.io [seleniumlibrary]: https://github.com/robotframework/SeleniumLibrary [selibrary-license]: https://github.com/robotframework/SeleniumLibrary/blob/master/LICENSE.txt [jyve]: https://github.com/deathbeds/jyve [jyve-license]: https://github.com/deathbeds/jyve/blob/master/LICENSE +[magics]: + https://robotframework-jupyterlibrary.readthedocs.io/en/stable/MAGIC.html diff --git a/_scripts/project.py b/_scripts/project.py index 2323169e..810d1f06 100644 --- a/_scripts/project.py +++ b/_scripts/project.py @@ -12,9 +12,10 @@ try: yaml = __import__(_yaml) if _yaml == "ruamel.yaml": - safe_load = yaml.yaml.safe_load - else: - safe_load = yaml.safe_load + yaml = yaml.yaml + safe_load = yaml.safe_load + safe_dump = yaml.safe_dump + break except ImportError: pass @@ -65,6 +66,7 @@ SRC = ROOT / "src" / "JupyterLibrary" VERSION_FILE = SRC / "VERSION" +LICENSE = ROOT / "LICENSE" VERSION = VERSION_FILE.read_text().strip() PY_SRC = [*SRC.rglob("*.py")] SETUP_CFG = ROOT / "setup.cfg" @@ -78,6 +80,7 @@ ROOT / "MANIFEST.in", SETUP_CFG, VERSION_FILE, + LICENSE, ] BINDER = ROOT / ".binder" ATEST = ROOT / "atest" @@ -99,6 +102,7 @@ # docs DOCS = ROOT / "docs" +RTD_ENV = DOCS / "rtd.yml" DOCS_CONF_PY = DOCS / "conf.py" DOCS_BUILDINFO = BUILD / "docs" / "html" / ".buildinfo" @@ -237,6 +241,8 @@ def _is_excluded(flow, pf, py, lab): *ROOT.glob("*.md"), *ROOT.glob("*.json"), *ROOT.glob("*.yml"), + *DOCS.glob("*.yml"), + *DOCS.rglob("*.css"), *GITHUB.rglob("*.yml"), *BINDER.rglob("*.yml"), ] diff --git a/docs/MAGIC.ipynb b/docs/MAGIC.ipynb index c0cbb60b..45bceb69 100644 --- a/docs/MAGIC.ipynb +++ b/docs/MAGIC.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Magic\n", + "# Magic\n", "JupyterLibrary provides a few lightweight [IPython](https://ipython.readthedocs.io/en/stable/interactive/magics.html) [magics](https://jakevdp.github.io/PythonDataScienceHandbook/01.03-magic-commands.html) for its own testing purposes. \n", "\n", "If you like writing and executing Robot Framework Kernel, you might like a more full-featured experience:\n", @@ -35,7 +35,7 @@ "metadata": {}, "outputs": [], "source": [ - "%%robot\n", + "%%robot -o _static\n", "*** Tasks ***\n", "Log Something\n", " Log Something" @@ -79,7 +79,7 @@ "metadata": {}, "outputs": [], "source": [ - "%%robot -a args\n", + "%%robot -a args -o _static\n", "*** Tasks ***\n", "Do thing A\n", " [Tags] mytag:a\n", @@ -98,7 +98,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Running JupyterLibrary\n", + "## Running JupyterLibrary\n", "\n", "The line below is a _Markdown Cell_... change it to a _Code Cell_ to run it" ] @@ -131,7 +131,7 @@ "source": [ "### With Widgets\n", "\n", - "> There is some more stuff comming with `%%robot`, but for now, `ipywidgets.interact` can be used to quickly build UI around robot-generated artifacts" + "> There is some more stuff coming with `%%robot`, but for now, [ipywidgets.interact](https://ipywidgets.readthedocs.io/en/latest/examples/Using%20Interact.html) can be used to quickly build UI around robot-generated artifacts" ] }, { diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css index 764ff660..1c47d40b 100644 --- a/docs/_static/css/custom.css +++ b/docs/_static/css/custom.css @@ -1,14 +1,45 @@ :root { - --rf-blue: rgb(0,192,181); + --rf-blue: rgb(0, 192, 181); } @font-face { - font-family: "OCR-A"; - src: url("../fonts/OCRA.woff2") format("woff2"); + font-family: 'OCR-A'; + src: url('../fonts/OCRA.woff2') format('woff2'); +} + +h1, +h2, +h3, +h4, +h5, +h6, +.icon.icon-home, +.wy-breadcrumbs { + font-family: 'OCR-A', monospace; + text-transform: uppercase; } -h1, h2, h3, h4, h5, h6 { - font-family: "OCR-A", monospace; - text-transform: uppercase; +.wy-side-nav-search > .icon.icon-home::before { + display: none; +} + +.wy-side-nav-search > .icon.icon-home { + font-size: 150%; + max-width: 50%; + word-break: break-all; +} + +.wy-side-nav-search > .icon.icon-home:hover { + color: white; +} + +.wy-side-nav-search > .icon.icon-home:first-child:first-letter { + float: left; + font-size: 400%; + line-height: 1.2; + padding-top: 0; + padding-right: 0.05em; + padding-left: 0.05em; + transition: all; } .rst-content blockquote { @@ -16,17 +47,24 @@ h1, h2, h3, h4, h5, h6 { margin-left: 0; font-size: 120%; font-style: italic; - background: linear-gradient(to right, #eee 10px, #fff 0) + background: linear-gradient(to right, #eee 10px, #fff 0); } -h1 { - font-size: 350%; +h1, +h1 .headerlink { + font-size: 300%; } -h2 { +h2, +h2 .headerlink { font-size: 200%; } +h3, +h3 .headerlink { + font-size: 150%; +} + p { max-width: 45em; } @@ -46,7 +84,8 @@ iframe { border: 0; } -a:hover, a:active { +a:hover, +a:active { text-decoration: underline; color: var(--rf-blue); } @@ -57,7 +96,8 @@ a:hover, a:active { background-color: transparent; } -div.nbinput div.prompt, div.nboutput div.prompt { +div.nbinput div.prompt, +div.nboutput div.prompt { display: none; } @@ -65,24 +105,22 @@ div.nbinput div.prompt, div.nboutput div.prompt { max-width: unset; } - -#rtd-search-form input[type=text], +#rtd-search-form input[type='text'], .rst-content blockquote { border: 0; border-radius: 0; --notchSize: 9px; - clip-path: - polygon( - 0% var(--notchSize), - var(--notchSize) 0%, - calc(100% - var(--notchSize)) 0%, - 100% var(--notchSize), - 100% calc(100% - var(--notchSize)), - calc(100% - var(--notchSize)) 100%, - var(--notchSize) 100%, - 0% calc(100% - var(--notchSize)) - ); + clip-path: polygon( + 0% var(--notchSize), + var(--notchSize) 0%, + calc(100% - var(--notchSize)) 0%, + 100% var(--notchSize), + 100% calc(100% - var(--notchSize)), + calc(100% - var(--notchSize)) 100%, + var(--notchSize) 100%, + 0% calc(100% - var(--notchSize)) + ); } .rst-content .section .toctree-wrapper > ul { @@ -102,7 +140,7 @@ div.nbinput div.prompt, div.nboutput div.prompt { } .rst-content .section .toctree-wrapper .toctree-l1 > a { - font-family: "OCR-A", monospace; + font-family: 'OCR-A', monospace; text-transform: uppercase; font-size: 150%; } diff --git a/docs/conf.py b/docs/conf.py index 54d98e16..d5485d0d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,21 +1,27 @@ """ Documentation configuration and workflow for JupyterLibrary - - Unlike the JupyterLibrary core, this may use Python3 syntax. """ import subprocess import sys import os +from datetime import datetime from pathlib import Path from tempfile import TemporaryDirectory - +from configparser import ConfigParser import nbsphinx # you have to have run `python -m pip install -e` import JupyterLibrary from JupyterLibrary.core import CLIENTS, COMMON +# not really in use yet... os.environ["IN_SPHINX"] = "1" +_parser = ConfigParser() +_parser.read(Path(__file__).parent.parent / "setup.cfg") + +CONF = {k: _parser[k] for k in _parser.sections()} +YEAR = datetime.now().year + def setup(app): """Runs before the "normal business" of sphinx. Don't go too crazy here.""" @@ -87,14 +93,14 @@ def setup(app): # -- Project information ----------------------------------------------------- -project = JupyterLibrary.__name__ -copyright = "2018, Nick Bollweg" -author = "Nick Bollweg" +project = CONF["metadata"]["name"] +copyright = f"""{YEAR}, {CONF["metadata"]["author"]}""" +author = CONF["metadata"]["author"] # The short X.Y version -version = JupyterLibrary.__version__ +version = ".".join(JupyterLibrary.__version__.split(".")[:2]) # The full version, including alpha/beta/rc tags -release = "" +release = JupyterLibrary.__version__ # -- General configuration --------------------------------------------------- @@ -178,7 +184,7 @@ def setup(app): # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. -htmlhelp_basename = "jupyterlibrarydoc" +htmlhelp_basename = f"""{CONF["metadata"]["name"]}-doc""" # -- Options for LaTeX output ------------------------------------------------ @@ -204,9 +210,9 @@ def setup(app): latex_documents = [ ( master_doc, - "jupyterlibrary.tex", - "JupyterLibrary Documentation", - "Nick Bollweg", + f"""{CONF["metadata"]["name"]}.tex""", + f"""{CONF["metadata"]["name"]} Documentation""", + CONF["metadata"]["author"], "manual", ) ] @@ -217,7 +223,13 @@ def setup(app): # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - (master_doc, "jupyterlibrary", "JupyterLibrary Documentation", [author], 1) + ( + master_doc, + CONF["metadata"]["name"], + f"""{CONF["metadata"]["name"]} Documentation""", + [author], + 1, + ) ] @@ -230,10 +242,10 @@ def setup(app): ( master_doc, "jupyterlibrary", - "JupyterLibrary Documentation", + f"""{CONF["metadata"]["name"]} Documentation""", author, - "jupyterlibrary", - "One line description of project.", + CONF["metadata"]["name"], + CONF["metadata"]["description"], "Miscellaneous", ) ] diff --git a/docs/index.ipynb b/docs/index.ipynb index 70b609a8..f4deaf80 100644 --- a/docs/index.ipynb +++ b/docs/index.ipynb @@ -1,45 +1,19 @@ { "cells": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# JupyterLibrary" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> A [Robot Framework][] library for automating (testing of) [Jupyter][] end-user applications and extensions\n", - "\n", - "[Robot Framework]: http://robotframework.org\n", - "[Jupyter]: https://jupyter.org" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "source_hidden": true + } + }, + "outputs": [], "source": [ - "[Install](./INSTALL.ipynb) the `robotframework-jupyterlibrary` package. Write plain-language `.robot` files that use `JupyterLibrary` [keywords](./KEYWORDS.ipynb).\n", - "\n", - "```robotframework\n", - "*** Settings ***\n", - "Library JupyterLibrary\n", - "Suite Setup Wait for New Jupyter Server to be Ready\n", - "Test Teardown Reset JupyterLab and Close\n", - "Suite Teardown Terminate All Jupyter Servers\n", - "\n", - "*** Test Cases ***\n", - "A Notebook in JupyterLab\n", - " Open JupyterLab\n", - " Launch a new JupyterLab Document\n", - " Add and Run JupyterLab Code Cell\n", - " Wait Until JupyterLab Kernel Is Idle\n", - " Capture Page Screenshot\n", - "```\n", - "\n", - "Run them with `python -m robot mytests`. Get pretty reports with embedded screenshots. Deploy your tests on [CI](./CI.ipynb). Write new Jupyter features **more confidently** and with **better documentation**!" + "import IPython\n", + "IPython.display.display(\n", + " IPython.display.Markdown(\"../README.md\")\n", + ")" ] }, { @@ -50,10 +24,10 @@ } }, "source": [ - "# MORE\n", "- [WHY](WHY.ipynb)\n", "- [INSTALL](INSTALL.ipynb)\n", "- [KEYWORDS](KEYWORDS.ipynb)\n", + "- [MAGIC](MAGIC.ipynb)\n", "- [CI](CI.ipynb)\n", "- [LIMITS](LIMITS.ipynb)\n", "- [HISTORY](HISTORY.ipynb)" diff --git a/docs/rtd.yml b/docs/rtd.yml new file mode 100644 index 00000000..38a8832e --- /dev/null +++ b/docs/rtd.yml @@ -0,0 +1,126 @@ +# Probably don't edit by hand! +# +# This was generated from .github/locks/docs/linux-64/conda.lock +# +# doit docs:rtdenv +# +# platform: linux-64 +# env_hash: baf0cc369f22fad2db7764b3b3e0385b5cf603babfb56b20aa5e9b34a4ea7944 + +channels: + - conda-forge + - nodefaults +dependencies: + - https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 + - https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2020.11.8-ha878542_0.tar.bz2#f9cdccd43ac20a0d1637d84d58c6ff5c + - https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.35.1-hed1e6ac_0.tar.bz2#d0cf77c331382475133dc6c34e7461d7 + - https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-9.3.0-h2ae2ef3_17.tar.bz2#342f3c931d0a3a209ab09a522469d20c + - https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.11.2-h36c2ea0_0.tar.bz2#a0f3b9a8abf73111682fb0c3124c25ec + - https://conda.anaconda.org/conda-forge/linux-64/libgomp-9.3.0-h5dbcf3e_17.tar.bz2#8fd587013b9da8b52050268d50c12305 + - https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04 + - https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-9.3.0-h5dbcf3e_17.tar.bz2#fc9f5adabc4d55cd4b491332adc413e0 + - https://conda.anaconda.org/conda-forge/linux-64/icu-68.1-h58526e2_0.tar.bz2#fc7a4271dc2a7f4fd78cd63695baf7c3 + - https://conda.anaconda.org/conda-forge/linux-64/libffi-3.3-h58526e2_1.tar.bz2#8e42ee98679696e0ddfde5521c98da60 + - https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h516909a_1.tar.bz2#e1ca1a4b82f7b51b29318f80cebae84a + - https://conda.anaconda.org/conda-forge/linux-64/libuv-1.40.0-hd18ef5c_0.tar.bz2#1b13a5d453ff9c552252af8fae5e15ff + - https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2#509f2a21c4a09214cd737a480dfd80c9 + - https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1h-h516909a_0.tar.bz2#3a99e0cb8f325dbf8f616da2d2fb6d4f + - https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9 + - https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h516909a_0.tar.bz2#03a530e925414902547cf48da7756db8 + - https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h516909a_1010.tar.bz2#339cc5584e6d26bc73a875ba900028c3 + - https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz2#81f0fc302b7e637943c8a3334ed7b1fd + - https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38 + - https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568 + - https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da + - https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d + - https://conda.anaconda.org/conda-forge/linux-64/python-3.6.11-hffdb5ce_3_cpython.tar.bz2#78b053e3316c47b2535aac75f6997a53 + - https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.12-py_0.tar.bz2#2489a97287f90176ecdc3ca982b4b0a0 + - https://conda.anaconda.org/conda-forge/linux-64/argh-0.26.2-py36_1001.tar.bz2#d942a3edad9e451533f471a09eb871dd + - https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12 + - https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f + - https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213 + - https://conda.anaconda.org/conda-forge/linux-64/backports-1.0-py36_1.tar.bz2#0e8774f348e40cdc512fee62fb202f7b + - https://conda.anaconda.org/conda-forge/noarch/cloudpickle-1.6.0-py_0.tar.bz2#76d764d8881719e305f6fa368dc2b65e + - https://conda.anaconda.org/conda-forge/noarch/decorator-4.4.2-py_0.tar.bz2#d2eabb9cabd212e1ec6a9463bd846243 + - https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.6.0-py_0.tar.bz2#37e1033daee0e2edaa5ff42584c52b21 + - https://conda.anaconda.org/conda-forge/noarch/idna-2.10-pyh9f0ad1d_0.tar.bz2#f95a12b4f435aae6680fe55ae2eb1b06 + - https://conda.anaconda.org/conda-forge/noarch/imagesize-1.2.0-py_0.tar.bz2#5879bd2c4b399a5072468e5fe587bf1b + - https://conda.anaconda.org/conda-forge/linux-64/ipython_genutils-0.2.0-py36_0.tar.bz2#80794c9ad52d72002687dc91222b31ba + - https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.4.3-pyhd8ed1ab_0.tar.bz2#a1f2fda4d88c624810bf2029aa4c0827 + - https://conda.anaconda.org/conda-forge/linux-64/pandocfilters-1.4.2-py36_0.tar.bz2#26be51dcfe88655e156b2441843ffd3a + - https://conda.anaconda.org/conda-forge/noarch/parso-0.7.1-pyh9f0ad1d_0.tar.bz2#f66647d1ec805566d72ac26f62b19c01 + - https://conda.anaconda.org/conda-forge/linux-64/pathtools-0.1.2-py36_0.tar.bz2#883a039eeb91522f6f75830b8cf9bbf6 + - https://conda.anaconda.org/conda-forge/linux-64/port-for-0.3.1-py36_1.tar.bz2#510327f1443d1c03bf394cf7d5a494a9 + - https://conda.anaconda.org/conda-forge/linux-64/ptyprocess-0.6.0-py36_1000.tar.bz2#bae42840b400c08f8a2e9fd8ab3fabdb + - https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6 + - https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7 + - https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.6-1_cp36m.tar.bz2#7f3681b01bd688b48bfbdae483b2918f + - https://conda.anaconda.org/conda-forge/noarch/pytz-2020.4-pyhd8ed1ab_0.tar.bz2#14aefc827cbbd156cb1bd9e992210380 + - https://conda.anaconda.org/conda-forge/noarch/robotframework-3.2.2-pyh9f0ad1d_0.tar.bz2#1faf44d9a76019b0a3da4d02dead93ec + - https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2 + - https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.0.0-py_0.tar.bz2#fa34c3e7fb741022eb79169c354ca1ae + - https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.2-py_0.tar.bz2#20b2eaeaeea4ef9a9a0d99770620fd09 + - https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.2-py_0.tar.bz2#68e01cac9d38d0e717cd5c87bc3d2cc9 + - https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-1.0.3-py_0.tar.bz2#4508a40465ebf0105e52f7194f299411 + - https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-py_0.tar.bz2#67cd9d9c0382d37479b4d306c369a2d4 + - https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.3-py_0.tar.bz2#d01180388e6d1838c3e1ad029590aa7a + - https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.4-py_0.tar.bz2#8ea6a8036e28dba8827d35c764709358 + - https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9 + - https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 + - https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038 + - https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c + - https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76 + - https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py36h5fab9bb_0.tar.bz2#65b3d08f67f9d039cd0589dcd53db2a6 + - https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py36hc120d54_1.tar.bz2#c49b9df07bcdcfbe22ffb0f8025d474b + - https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py36h9880bd3_1008.tar.bz2#5e1f31687ac8433134d9a1b3c394b074 + - https://conda.anaconda.org/conda-forge/linux-64/docutils-0.16-py36h9880bd3_2.tar.bz2#0fae3d786fe004478f56041b7e606fc4 + - https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#3ff18a1ed2e93fb739b97b3669dcaf89 + - https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816 + - https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py36h9f0ad1d_1.tar.bz2#7aa1974ca53aa6f662c4e24a15f495b9 + - https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py36he6145b8_2.tar.bz2#a4145312b908f2e145ed865c135bfa2e + - https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py36h8c4c3a4_1002.tar.bz2#1f094e44c9d7356638cda5d6cb763510 + - https://conda.anaconda.org/conda-forge/noarch/packaging-20.4-pyh9f0ad1d_0.tar.bz2#6d160f7346ac815500b5475d9a0f88a9 + - https://conda.anaconda.org/conda-forge/linux-64/pexpect-4.8.0-py36h9f0ad1d_1.tar.bz2#7fde8ab34b9254a5c8fb8004f7c649cb + - https://conda.anaconda.org/conda-forge/linux-64/pickleshare-0.7.5-py36h9f0ad1d_1002.tar.bz2#8fa70e047f8c6e1b8c014d0f52f8d8db + - https://conda.anaconda.org/conda-forge/linux-64/pyinotify-0.9.6-py36h9f0ad1d_1002.tar.bz2#1013d9f38f1c4df2418b6f492e4997a3 + - https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.17.3-py36h8c4c3a4_1.tar.bz2#626bf8f4fa67250991ab6aa84bf026d6 + - https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py36h9880bd3_2.tar.bz2#30de662d0749fc0b2417c710e816d984 + - https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.1-py_0.tar.bz2#0d0150ed9c2d25817f5324108d3f7571 + - https://conda.anaconda.org/conda-forge/linux-64/pyyaml-5.3.1-py36he6145b8_1.tar.bz2#a7c3dc583561e28856da8d3f525d8edd + - https://conda.anaconda.org/conda-forge/linux-64/pyzmq-20.0.0-py36h2b1bd32_1.tar.bz2#e1e27643af62dd4ccd2c04db484eba3e + - https://conda.anaconda.org/conda-forge/noarch/robotframework-pythonlibcore-2.1.0-pyhd8ed1ab_1.tar.bz2#c20e2a5cca5be112eddedd02396897b9 + - https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py36h1d69622_0.tar.bz2#a7d630b635139c282dfd840a26ff0eb3 + - https://conda.anaconda.org/conda-forge/linux-64/traitlets-4.3.3-py36h9f0ad1d_1.tar.bz2#37802414836e8c0594873aaf656ace5d + - https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py36he6145b8_1001.tar.bz2#49563e14138ee2a2e1028ab4aa6a7ee3 + - https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py36h6ec43e4_0.tar.bz2#9e37e4ebbea5f4bcb50190192bbcc212 + - https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#03ff97a03955a189acdbc8c4d196e5e1 + - https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8 + - https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py36h5fab9bb_0.tar.bz2#1185d2559694206b07516039f1208763 + - https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py36h9880bd3_2.tar.bz2#ba1f9cf60677266d31905e6ce7899b0a + - https://conda.anaconda.org/conda-forge/linux-64/watchdog-0.10.4-py36h5fab9bb_0.tar.bz2#5495d9c8201962471b0fc996d1a794d3 + - https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.1-py_0.tar.bz2#d36df15eaef96549ce6231e3088fba54 + - https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#d4506316b85679972c0b78d4d1c0b701 + - https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551 + - https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#eefe83ff43117f8af6d4641d1bc9fce6 + - https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a + - https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2#b7190e3ec3eff52839434bf4698e2d62 + - https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1 + - https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723 + - https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f + - https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 + - https://conda.anaconda.org/conda-forge/noarch/nbformat-5.0.8-py_0.tar.bz2#12aaf0d8795a5c375757b49a08e011a2 + - https://conda.anaconda.org/conda-forge/noarch/sphinx-autobuild-0.7.1-py_2.tar.bz2#462771926e7662041f063af46b5201dd + - https://conda.anaconda.org/conda-forge/noarch/urllib3-1.25.11-py_0.tar.bz2#4ce0599839b2b4418befe201e5f072fc + - https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.5-pyh9f0ad1d_2.tar.bz2#5266fcd697043c59621fda522b3d78ee + - https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.1-py_0.tar.bz2#4efba375c50e6668cb5778e36d1f3a7e + - https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.8-pyha770c72_0.tar.bz2#e4df54860ae814be2dba503c97748173 + - https://conda.anaconda.org/conda-forge/noarch/requests-2.25.0-pyhd3deb0d_0.tar.bz2#5b983af1f3dcd93ef20f6067d077f6fe + - https://conda.anaconda.org/conda-forge/linux-64/selenium-3.141.0-py36h8c4c3a4_1002.tar.bz2#e63596de1519b98c94617c4ba8e3b327 + - https://conda.anaconda.org/conda-forge/linux-64/ipython-7.16.1-py36h95af2a2_0.tar.bz2#a2ebe9a0eefdd1156696080390f62c16 + - https://conda.anaconda.org/conda-forge/linux-64/nbconvert-6.0.7-py36h5fab9bb_3.tar.bz2#30f571d5b9a389f49b1d54a0e38871bc + - https://conda.anaconda.org/conda-forge/noarch/robotframework-seleniumlibrary-4.5.0-pyh9f0ad1d_0.tar.bz2#032239f822b29aef45cc4579ae86d031 + - https://conda.anaconda.org/conda-forge/noarch/sphinx-3.3.1-pyhd8ed1ab_0.tar.bz2#5e50bd53dd52884996551ef1f0373909 + - https://conda.anaconda.org/conda-forge/linux-64/ipykernel-5.3.4-py36he448a4c_1.tar.bz2#d174369b709d4c4d4cfede1aacc96e52 + - https://conda.anaconda.org/conda-forge/noarch/nbsphinx-0.7.1-pyh9f0ad1d_0.tar.bz2#a3bb68f9b460d4ad7854269df5e93657 + - https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-0.5.0-pyh9f0ad1d_0.tar.bz2#de5c05f7b46002a761f32608a375e022 +name: rtd diff --git a/dodo.py b/dodo.py index 444b7068..9d1b9e66 100644 --- a/dodo.py +++ b/dodo.py @@ -75,8 +75,45 @@ def task_docs(): """build HTML docs""" env = "docs" run_in = P.RUN_IN[env] + lockfile = P.get_lockfile(env) frozen = P.PIP_LISTS[env] + header, tarballs = lockfile.read_text().split("@EXPLICIT") + + clean, touch = P.get_ok_actions(P.RTD_ENV) + + header = ( + f"# Probably don't edit by hand! \n" + f"#\n" + f"# This was generated from {lockfile.relative_to(P.ROOT)}\n" + f"#\n" + f"# doit docs:rtdenv\n" + f"#\n" + ) + header + + def _env_from_lock(): + P.RTD_ENV.write_text( + header + + P.safe_dump( + dict( + name="rtd", + channels=["conda-forge", "nodefaults"], + dependencies=[ + line.strip() for line in tarballs.strip().splitlines() + ], + ) + ) + ) + + yield dict( + name="rtd:env", + doc="generate a readthedocs-compatible env", + file_dep=[lockfile], + uptodate=[config_changed(header)], + actions=[clean, _env_from_lock], + targets=[P.RTD_ENV], + ) + yield dict( name="sphinx", actions=[[*run_in, "sphinx-build", "-M", "html", "docs", "build/docs"]], diff --git a/package.json b/package.json index 11e7a18a..607ccbed 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,6 @@ "prettier": "^2.1.2" }, "scripts": { - "prettier": "prettier --write --list-different \"./*.{json,md,yml}\" \"{.github,.binder}/**/*.{json,md,yml}\"" + "prettier": "prettier --write --list-different \"./*.{json,md,yml}\" \"{.github,.binder,docs}/**/*.{json,md,yml,css}\"" } } diff --git a/readthedocs.yml b/readthedocs.yml deleted file mode 100644 index 82074154..00000000 --- a/readthedocs.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: robotframework-jupyterlibrary -type: sphinx -conda: - file: environment.yml -python: - version: 3 - setup_py_install: true -formats: - - htmlzip - - epub diff --git a/setup.cfg b/setup.cfg index 6be13f17..4d0d8a49 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,6 +6,13 @@ python_requires = >=3.6 long_description = file: README.md long_description_content_type = text/markdown url = https://github.com/robots-from-jupyter/robotframework-jupyterlibrary +project_urls = + Bug Tracker = https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/issues + Changelog = https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/blob/master/docs/HISTORY.ipynb + CI = https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/actions + Documentation = https://robotframework-jupyterlibrary.readthedocs.io/en/stable + Releases = https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/releases + Source Code = https://gitlab.com/robots-from-jupyter/robotframework-jupyterlibrary author = Robots from Jupyter author_email = nick.bollweg@gmail.com license = BSD-3-Clause diff --git a/src/JupyterLibrary/clients/jupyterlab/Commands.robot b/src/JupyterLibrary/clients/jupyterlab/Commands.robot index 65456680..6929077f 100644 --- a/src/JupyterLibrary/clients/jupyterlab/Commands.robot +++ b/src/JupyterLibrary/clients/jupyterlab/Commands.robot @@ -31,5 +31,5 @@ Reset JupyterLab and Close Close All JupyterLab Tabs Maybe accept a JupyterLab prompt - Execute JupyterLab Command Close All Tabs + Execute JupyterLab Command Close All Tabs Maybe accept a JupyterLab prompt diff --git a/src/JupyterLibrary/clients/jupyterlab/Shell.robot b/src/JupyterLibrary/clients/jupyterlab/Shell.robot index 6121db4d..8661d1cd 100644 --- a/src/JupyterLibrary/clients/jupyterlab/Shell.robot +++ b/src/JupyterLibrary/clients/jupyterlab/Shell.robot @@ -23,7 +23,7 @@ Open JupyterLab Wait for JupyterLab Splash Screen [Documentation] Wait for the JupyterLab splash animation - Wait Until Page Contains Element css:#${JLAB ID SPLASH} timeout=10s + Wait Until Page Contains Element css:#${JLAB ID SPLASH} timeout=10s Wait Until Page Does Not Contain Element css:#${JLAB ID SPLASH} timeout=10s Sleep 2s diff --git a/src/JupyterLibrary/magic.py b/src/JupyterLibrary/magic.py index 00142631..d5c09259 100644 --- a/src/JupyterLibrary/magic.py +++ b/src/JupyterLibrary/magic.py @@ -37,6 +37,9 @@ ipywidgets = None +ENC = dict(encoding="utf-8") + + @magics_class class RobotMagics(Magics): """ @@ -54,10 +57,10 @@ class RobotMagics(Magics): @cell_magic @magic_arguments.magic_arguments() @magic_arguments.argument( - "output_dir", - default="_robot_magic_", - nargs="?", - help="""Name of directory to update (default:.robot-magic) """, + "-o", + "--output-dir", + default=None, + help="""Name of directory to update (default:cwd/_robot_magic_) """, ) @magic_arguments.argument( "-e", "--execute", default=True, help="""run the robot test""" @@ -86,6 +89,12 @@ class RobotMagics(Magics): default=None, help="name of a variable in user_ns to use for robot.run arguments", ) + @magic_arguments.argument( + "-n", + "--name", + default=None, + help="name of the suite. default: Untitled_", + ) def robot(self, line, cell): """run some Robot Framework code""" line = f" {line} " @@ -129,16 +138,21 @@ def widget(self, args, cell, content_hash): def execute(self, args, cell, content_hash): """run a cell in the outputdir, in a directory named after the content hash""" ip = get_ipython() - outputdir = Path.cwd() / args.output_dir / content_hash + if args.output_dir: + outputdir = Path(args.output_dir).resolve() / "_robot_magic_" / content_hash + else: + outputdir = Path.cwd() / "_robot_magic_" / content_hash display(Markdown(f"- _🤖 making files in_ `{outputdir}`")) if outputdir.exists(): shutil.rmtree(outputdir) outputdir.mkdir(parents=True) - robot_file = outputdir / "it.robot" + name = args.name or f"Untitled_{content_hash}" + + robot_file = outputdir / f"{name}.robot" - robot_file.write_text(cell) + robot_file.write_text(cell, **ENC) display(Markdown("- _🤖 running!_")) stdout_file = outputdir / "stdout.txt" @@ -164,7 +178,7 @@ def execute(self, args, cell, content_hash): f""" """ ) @@ -203,10 +217,10 @@ def pretty(self, args, cell): with tempfile.TemporaryDirectory() as td: tdp = Path(td) - it = tdp / "it.robot" - it.write_text(cell) + it = tdp / "ugly.robot" + it.write_text(cell, **ENC) tidier.inplace(str(it)) - cell = it.read_text() + cell = it.read_text(**ENC) lexer = RobotFrameworkLexer() formatter = HtmlFormatter(cssclass=self.PRETTY_CLASS, style=args.style)