File tree Expand file tree Collapse file tree 4 files changed +71
-11
lines changed
Expand file tree Collapse file tree 4 files changed +71
-11
lines changed Original file line number Diff line number Diff line change 2424 pip install -e .
2525 pip install -r tests/devops_tests/requirements.txt
2626 pytest -vv -rP -We tests/devops_tests/test_notebooks.py::test_run_notebooks
27+ pytest -vv -rP -We tests/test_notebook_vars.py
Original file line number Diff line number Diff line change 11{
22 "cells" : [
33 {
4+ "metadata" : {
5+ "ExecuteTime" : {
6+ "end_time" : " 2025-12-12T09:10:55.941348Z" ,
7+ "start_time" : " 2025-12-12T09:10:54.401551Z"
8+ }
9+ },
410 "cell_type" : " code" ,
5- "execution_count" : 1 ,
6- "id" : " 51913260-f89a-4237-bc7b-af5a0b1785f9" ,
11+ "source" : [
12+ " from matplotlib import pyplot \n " ,
13+ " from open_atmos_jupyter_utils import show_plot\n " ,
14+ " \n " ,
15+ " fig = pyplot.figure()\n " ,
16+ " show_plot(fig=fig)"
17+ ],
18+ "id" : " 840cd46405eb9d0e" ,
19+ "outputs" : [
20+ {
21+ "data" : {
22+ "text/plain" : [
23+ " <Figure size 640x480 with 1 Axes>"
24+ ],
25+ "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"409.165312pt\" height=\"297.190125pt\" viewBox=\"0 0 409.165312 297.190125\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n <metadata>\n <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n <cc:Work>\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n <dc:date>2025-12-12T10:10:55.927708</dc:date>\n <dc:format>image/svg+xml</dc:format>\n <dc:creator>\n <cc:Agent>\n <dc:title>Matplotlib v3.10.0, https://matplotlib.org/</dc:title>\n </cc:Agent>\n </dc:creator>\n </cc:Work>\n </rdf:RDF>\n </metadata>\n <defs>\n <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n </defs>\n <g id=\"figure_1\">\n <g id=\"patch_1\">\n <path d=\"M 0 297.190125 \nL 409.165312 297.190125 \nL 409.165312 0 \nL 0 0 \nz\n\" style=\"fill: #ffffff\"/>\n </g>\n <g id=\"axes_1\">\n <g id=\"patch_2\">\n <path d=\"M 44.845313 273.312 \nL 401.965312 273.312 \nL 401.965312 7.2 \nL 44.845313 7.2 \nz\n\" style=\"fill: #ffffff\"/>\n </g>\n <g id=\"matplotlib.axis_1\">\n <g id=\"xtick_1\">\n <g id=\"line2d_1\">\n <defs>\n <path id=\"m65bd8fe9c8\" d=\"M 0 0 \nL 0 3.5 \n\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </defs>\n <g>\n <use xlink:href=\"#m65bd8fe9c8\" x=\"93.543494\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_1\">\n <!-- −0.04 -->\n <g transform=\"translate(78.220838 287.910437) scale(0.1 -0.1)\">\n <defs>\n <path id=\"DejaVuSans-2212\" d=\"M 678 2272 \nL 4684 2272 \nL 4684 1741 \nL 678 1741 \nL 678 2272 \nz\n\" transform=\"scale(0.015625)\"/>\n <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \nQ 1547 4250 1301 3770 \nQ 1056 3291 1056 2328 \nQ 1056 1369 1301 889 \nQ 1547 409 2034 409 \nQ 2525 409 2770 889 \nQ 3016 1369 3016 2328 \nQ 3016 3291 2770 3770 \nQ 2525 4250 2034 4250 \nz\nM 2034 4750 \nQ 2819 4750 3233 4129 \nQ 3647 3509 3647 2328 \nQ 3647 1150 3233 529 \nQ 2819 -91 2034 -91 \nQ 1250 -91 836 529 \nQ 422 1150 422 2328 \nQ 422 3509 836 4129 \nQ 1250 4750 2034 4750 \nz\n\" transform=\"scale(0.015625)\"/>\n <path id=\"DejaVuSans-2e\" d=\"M 684 794 \nL 1344 794 \nL 1344 0 \nL 684 0 \nL 684 794 \nz\n\" transform=\"scale(0.015625)\"/>\n <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \nL 825 1625 \nL 2419 1625 \nL 2419 4116 \nz\nM 2253 4666 \nL 3047 4666 \nL 3047 1625 \nL 3713 1625 \nL 3713 1100 \nL 3047 1100 \nL 3047 0 \nL 2419 0 \nL 2419 1100 \nL 313 1100 \nL 313 1709 \nL 2253 4666 \nz\n\" transform=\"scale(0.015625)\"/>\n </defs>\n <use xlink:href=\"#DejaVuSans-2212\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(83.789062 0)\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(147.412109 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(179.199219 0)\"/>\n <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(242.822266 0)\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_2\">\n <g id=\"line2d_2\">\n <g>\n <use xlink:href=\"#m65bd8fe9c8\" x=\"158.474403\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_2\">\n <!-- −0.02 -->\n <g transform=\"translate(143.151747 287.910437) scale(0.1 -0.1)\">\n <defs>\n <path id=\"DejaVuSans-32\" d=\"M 1228 531 \nL 3431 531 \nL 3431 0 \nL 469 0 \nL 469 531 \nQ 828 903 1448 1529 \nQ 2069 2156 2228 2338 \nQ 2531 2678 2651 2914 \nQ 2772 3150 2772 3378 \nQ 2772 3750 2511 3984 \nQ 2250 4219 1831 4219 \nQ 1534 4219 1204 4116 \nQ 875 4013 500 3803 \nL 500 4441 \nQ 881 4594 1212 4672 \nQ 1544 4750 1819 4750 \nQ 2544 4750 2975 4387 \nQ 3406 4025 3406 3419 \nQ 3406 3131 3298 2873 \nQ 3191 2616 2906 2266 \nQ 2828 2175 2409 1742 \nQ 1991 1309 1228 531 \nz\n\" transform=\"scale(0.015625)\"/>\n </defs>\n <use xlink:href=\"#DejaVuSans-2212\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(83.789062 0)\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(147.412109 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(179.199219 0)\"/>\n <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(242.822266 0)\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_3\">\n <g id=\"line2d_3\">\n <g>\n <use xlink:href=\"#m65bd8fe9c8\" x=\"223.405313\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_3\">\n <!-- 0.00 -->\n <g transform=\"translate(212.2725 287.910437) scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-30\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(63.623047 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(95.410156 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(159.033203 0)\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_4\">\n <g id=\"line2d_4\">\n <g>\n <use xlink:href=\"#m65bd8fe9c8\" x=\"288.336222\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_4\">\n <!-- 0.02 -->\n <g transform=\"translate(277.203409 287.910437) scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-30\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(63.623047 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(95.410156 0)\"/>\n <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(159.033203 0)\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_5\">\n <g id=\"line2d_5\">\n <g>\n <use xlink:href=\"#m65bd8fe9c8\" x=\"353.267131\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_5\">\n <!-- 0.04 -->\n <g transform=\"translate(342.134318 287.910437) scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-30\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(63.623047 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(95.410156 0)\"/>\n <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(159.033203 0)\"/>\n </g>\n </g>\n </g>\n </g>\n <g id=\"matplotlib.axis_2\">\n <g id=\"ytick_1\">\n <g id=\"line2d_6\">\n <defs>\n <path id=\"m14aefc658a\" d=\"M 0 0 \nL -3.5 0 \n\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </defs>\n <g>\n <use xlink:href=\"#m14aefc658a\" x=\"44.845313\" y=\"237.024\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_6\">\n <!-- −0.04 -->\n <g transform=\"translate(7.2 240.823219) scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-2212\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(83.789062 0)\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(147.412109 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(179.199219 0)\"/>\n <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(242.822266 0)\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_2\">\n <g id=\"line2d_7\">\n <g>\n <use xlink:href=\"#m14aefc658a\" x=\"44.845313\" y=\"188.64\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_7\">\n <!-- −0.02 -->\n <g transform=\"translate(7.2 192.439219) scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-2212\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(83.789062 0)\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(147.412109 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(179.199219 0)\"/>\n <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(242.822266 0)\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_3\">\n <g id=\"line2d_8\">\n <g>\n <use xlink:href=\"#m14aefc658a\" x=\"44.845313\" y=\"140.256\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_8\">\n <!-- 0.00 -->\n <g transform=\"translate(15.579688 144.055219) scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-30\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(63.623047 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(95.410156 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(159.033203 0)\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_4\">\n <g id=\"line2d_9\">\n <g>\n <use xlink:href=\"#m14aefc658a\" x=\"44.845313\" y=\"91.872\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_9\">\n <!-- 0.02 -->\n <g transform=\"translate(15.579688 95.671219) scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-30\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(63.623047 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(95.410156 0)\"/>\n <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(159.033203 0)\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_5\">\n <g id=\"line2d_10\">\n <g>\n <use xlink:href=\"#m14aefc658a\" x=\"44.845313\" y=\"43.488\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n </g>\n </g>\n <g id=\"text_10\">\n <!-- 0.04 -->\n <g transform=\"translate(15.579688 47.287219) scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-30\"/>\n <use xlink:href=\"#DejaVuSans-2e\" transform=\"translate(63.623047 0)\"/>\n <use xlink:href=\"#DejaVuSans-30\" transform=\"translate(95.410156 0)\"/>\n <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(159.033203 0)\"/>\n </g>\n </g>\n </g>\n </g>\n <g id=\"line2d_11\"/>\n <g id=\"patch_3\">\n <path d=\"M 44.845313 273.312 \nL 44.845313 7.2 \n\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n </g>\n <g id=\"patch_4\">\n <path d=\"M 401.965312 273.312 \nL 401.965312 7.2 \n\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n </g>\n <g id=\"patch_5\">\n <path d=\"M 44.845313 273.312 \nL 401.965312 273.312 \n\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n </g>\n <g id=\"patch_6\">\n <path d=\"M 44.845313 7.2 \nL 401.965312 7.2 \n\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n </g>\n </g>\n </g>\n</svg>\n"
26+ },
27+ "metadata" : {},
28+ "output_type" : " display_data" ,
29+ "jetTransient" : {
30+ "display_id" : null
31+ }
32+ },
33+ {
34+ "data" : {
35+ "text/plain" : [
36+ " HBox(children=(HTML(value=\" <a href='./tmp0rzmmn87.pdf' target='_blank'>./tmp0rzmmn87.pdf</a><br>\" ), HTML(value…"
37+ ],
38+ "application/vnd.jupyter.widget-view+json" : {
39+ "version_major" : 2 ,
40+ "version_minor" : 0 ,
41+ "model_id" : " 3156af4432e5435d8f1107dbd4a374d2"
42+ }
43+ },
44+ "metadata" : {},
45+ "output_type" : " display_data" ,
46+ "jetTransient" : {
47+ "display_id" : null
48+ }
49+ }
50+ ],
51+ "execution_count" : 1
52+ },
53+ {
754 "metadata" : {},
55+ "cell_type" : " code" ,
856 "outputs" : [],
57+ "execution_count" : 1 ,
958 "source" : [
1059 " a = 44\n " ,
1160 " b = 666\n " ,
1261 " c = a + b"
13- ]
62+ ],
63+ "id" : " 87f6fa6c4bac39d4"
1464 }
1565 ],
1666 "metadata" : {
1767 "kernelspec" : {
1868 "display_name" : " Python 3 (ipykernel)" ,
1969 "language" : " python" ,
2070 "name" : " python3"
21- },
71+ },
2272 "language_info" : {
2373 "codemirror_mode" : {
2474 "name" : " ipython" ,
2575 "version" : 3
26- },
76+ },
2777 "file_extension" : " .py" ,
2878 "mimetype" : " text/x-python" ,
2979 "name" : " python" ,
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ def notebook_vars(file: Path, plot: bool):
2424 lines [i ] = line .replace (
2525 "show_plot(" ,
2626 "from matplotlib import pyplot; "
27- + ("pyplot.show() #" if plot else "pyplot.gca().clear() #" ),
27+ + ("pyplot.show() #" if plot else "pyplot.close() #" ),
2828 )
2929
3030 exec ("\n " .join (lines ), context ) # pylint: disable=exec-used
Original file line number Diff line number Diff line change 44
55from pathlib import Path
66import pytest
7+ import matplotlib
8+
79
810from open_atmos_jupyter_utils import notebook_vars
9- import examples
1011
1112@pytest .fixture (scope = "session" , name = "notebook_variables" )
1213def notebook_variables_fixture ():
1314 """returns variables from the notebook """
1415 return notebook_vars (
15- file = Path (examples . __file__ ).parent / "notebook_vars.ipynb" ,
16+ file = str ( Path (__file__ ).parent . parent / "examples" / " notebook_vars.ipynb") ,
1617 plot = False ,
1718 )
19+ class TestNotebookVars :
20+ """test notebook_vars function"""
21+ @staticmethod
22+ def test_notebook_vars (notebook_variables ):
23+ """ checks for a value known only after notebook execution"""
24+ assert notebook_variables ["c" ] == notebook_variables ["a" ] + notebook_variables ["b" ]
1825
19- def test_notebook_vars (notebook_variables ):
20- """ checks for a value known only after notebook execution"""
21- assert notebook_variables ["c" ] == notebook_variables ["a" ] + notebook_variables ["b" ]
26+ @staticmethod
27+ def test_plots_closed (notebook_variables ):
28+ """ checks all figures closed """
29+ assert isinstance (notebook_variables ["fig" ], matplotlib .figure .Figure )
30+ assert 0 == len (matplotlib .pyplot .get_fignums ())
You can’t perform that action at this time.
0 commit comments