From 3fda6966ab7ef428586558e05a61247a43134edb Mon Sep 17 00:00:00 2001 From: Sylvain Corlay Date: Wed, 18 Mar 2026 15:40:07 +0100 Subject: [PATCH 1/3] Add nblink requirements --- .nblink/environment.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .nblink/environment.yml diff --git a/.nblink/environment.yml b/.nblink/environment.yml new file mode 100644 index 0000000..1a3118c --- /dev/null +++ b/.nblink/environment.yml @@ -0,0 +1,11 @@ +name: engineersCode +channels: + - https://prefix.dev/emscripten-forge-4x + - https://prefix.dev/conda-forge +dependencies: + - xeus-python + - numpy + - matplotlib + - imageio + - ipywidgets + - ipympl From 0d4d9aab591825fc5796cf33770e0be0afe245b4 Mon Sep 17 00:00:00 2001 From: Sylvain Corlay Date: Wed, 18 Mar 2026 17:18:20 +0100 Subject: [PATCH 2/3] Update notebooks --- notebooks_en/1_Catch_Motion.ipynb | 249 +--------------------- notebooks_en/2_Step_Future.ipynb | 248 +--------------------- notebooks_en/3_Get_Oscillations.ipynb | 248 +--------------------- notebooks_en/4_Birdseye_Vibrations.ipynb | 250 +---------------------- 4 files changed, 5 insertions(+), 990 deletions(-) diff --git a/notebooks_en/1_Catch_Motion.ipynb b/notebooks_en/1_Catch_Motion.ipynb index 1b3c410..23598a0 100644 --- a/notebooks_en/1_Catch_Motion.ipynb +++ b/notebooks_en/1_Catch_Motion.ipynb @@ -88,7 +88,6 @@ "urlretrieve(video_url, fname)\n", "```\n", "
\n", - "\n", "We assume here that you downloaded the video, and you will read it from its local file name. Check the type, and note that you can get info, like the frames-per-second, using `get_meta_data()`. This function returns a dictionary, so to access one data element you would use the key (for example `'fps'` is the key for the data about frames per second)." ] }, @@ -5358,252 +5357,6 @@ "\n", "3. _Elementary Mechanics Using Python_ (2015), Anders Malthe-Sorenssen, Undergraduate Lecture Notes in Physics, Springer. Data at https://folk.universitetetioslo.no/malthe/mechbook/fallingtennisball02.d" ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Execute this cell to load the notebook's style sheet, then ignore it\n", - "from IPython.core.display import HTML\n", - "css_file = '../../../styles/custom.css'\n", - "HTML(open(css_file, \"r\").read())" - ] } ], "metadata": { @@ -5622,7 +5375,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.14.3" } }, "nbformat": 4, diff --git a/notebooks_en/2_Step_Future.ipynb b/notebooks_en/2_Step_Future.ipynb index 084ba6a..6354c10 100644 --- a/notebooks_en/2_Step_Future.ipynb +++ b/notebooks_en/2_Step_Future.ipynb @@ -891,252 +891,6 @@ "\n", "4. _Computational Physics with Python_, lecture notes by Eric Ayars, California State University, Chico. Available online on the author's website: https://physics.csuchico.edu/ayars/312/handouts/comp-phys-python.pdf" ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Execute this cell to load the notebook's style sheet, then ignore it\n", - "from IPython.core.display import HTML\n", - "css_file = '../../../styles/custom.css'\n", - "HTML(open(css_file, \"r\").read())" - ] } ], "metadata": { @@ -1155,7 +909,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.14.3" } }, "nbformat": 4, diff --git a/notebooks_en/3_Get_Oscillations.ipynb b/notebooks_en/3_Get_Oscillations.ipynb index 9906a08..4fdf458 100644 --- a/notebooks_en/3_Get_Oscillations.ipynb +++ b/notebooks_en/3_Get_Oscillations.ipynb @@ -940,252 +940,6 @@ "\n", "2. Cromer, A. (1981). Stable solutions using the Euler approximation. _American Journal of Physics_, 49(5), 455-459. https://doi.org/10.1119/1.12478\n" ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Execute this cell to load the notebook's style sheet, then ignore it\n", - "from IPython.core.display import HTML\n", - "css_file = '../../../styles/custom.css'\n", - "HTML(open(css_file, \"r\").read())" - ] } ], "metadata": { @@ -1204,7 +958,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.5" + "version": "3.14.3" } }, "nbformat": 4, diff --git a/notebooks_en/4_Birdseye_Vibrations.ipynb b/notebooks_en/4_Birdseye_Vibrations.ipynb index 430f19e..95070e7 100644 --- a/notebooks_en/4_Birdseye_Vibrations.ipynb +++ b/notebooks_en/4_Birdseye_Vibrations.ipynb @@ -39,7 +39,7 @@ "from matplotlib import pyplot\n", "%matplotlib inline\n", "pyplot.rc('font', family='serif', size='14')\n", - "pyplot.rcParams['text.usetex'] = True # Enable LaTeX rendering" + "# pyplot.rcParams['text.usetex'] = True # Enable LaTeX rendering" ] }, { @@ -1026,252 +1026,6 @@ "V\n", "2. [Plotting direction fields and trajectories in the phase plane](http://scipy-cookbook.readthedocs.io/items/LoktaVolterraTutorial.html?highlight=direction%20fields#Plotting-direction-fields-and-trajectories-in-the-phase-plane), as part of the Lotka-Volterra tutorial by Pauli Virtanen and Bhupendra, in the _SciPy Cookbook_. " ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Execute this cell to load the notebook's style sheet, then ignore it\n", - "from IPython.core.display import HTML\n", - "css_file = '../../../styles/custom.css'\n", - "HTML(open(css_file, \"r\").read())" - ] } ], "metadata": { @@ -1290,7 +1044,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.5" + "version": "3.14.3" } }, "nbformat": 4, From 509376e69b6979d3a9f2cf8027ae9d34d6c62a88 Mon Sep 17 00:00:00 2001 From: Sylvain Corlay Date: Thu, 19 Mar 2026 16:53:21 +0100 Subject: [PATCH 3/3] Add lock --- .nblink/nblink-lock.json | 616 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 616 insertions(+) create mode 100644 .nblink/nblink-lock.json diff --git a/.nblink/nblink-lock.json b/.nblink/nblink-lock.json new file mode 100644 index 0000000..3d66077 --- /dev/null +++ b/.nblink/nblink-lock.json @@ -0,0 +1,616 @@ +{ + "id": "8515759346578466", + "lockVersion": "1.0.3", + "platform": "emscripten-wasm32", + "specs": [ + "xeus-python", + "numpy", + "matplotlib", + "imageio", + "ipywidgets", + "ipympl" + ], + "channels": [ + "emscripten-forge-4x", + "conda-forge" + ], + "channelInfo": { + "emscripten-forge-4x": [ + { + "url": "https://prefix.dev/emscripten-forge-4x", + "protocol": "https" + }, + { + "url": "https://repo.prefix.dev/emscripten-forge-4x", + "protocol": "https" + } + ], + "conda-forge": [ + { + "url": "https://prefix.dev/conda-forge", + "protocol": "https" + }, + { + "url": "https://repo.prefix.dev/conda-forge", + "protocol": "https" + } + ] + }, + "packages": { + "xeus-python-0.18.1-py313h6852881_0.tar.bz2": { + "name": "xeus-python", + "build": "py313h6852881_0", + "version": "0.18.1", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "dc42fed4a333520b6c27031aa9fc477b", + "sha256": "46dbedc7a95909dca49052257353774b64441b0d8edc3546beb2171dd1de696d" + }, + "size": 5117719 + }, + "xeus-6.0.2-h0b0027f_0.tar.bz2": { + "name": "xeus", + "build": "h0b0027f_0", + "version": "6.0.2", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "dc8693763e78440e2029c7aefbb226a8", + "sha256": "d2e9404e2d2b2a200efa9cd34d0f9c14ede87b6eafeef5142214a6de17e12155" + }, + "size": 310134 + }, + "numpy-2.4.3-py313hcf5bae3_0.tar.bz2": { + "name": "numpy", + "build": "py313hcf5bae3_0", + "version": "2.4.3", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "c2546d31783bb484d4455fbd075a3787", + "sha256": "e417ee08aad4707ee4c0ed6a3ebc9aeea6c463a39244c7a458e17a1309b7257e" + }, + "size": 2798506 + }, + "matplotlib-3.10.8-pyh406a3f9_5.tar.bz2": { + "name": "matplotlib", + "build": "pyh406a3f9_5", + "version": "3.10.8", + "subdir": "noarch", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "7a1da4e1627bbc8f6b2d0c7bc238f6f8", + "sha256": "129185b54f26bd5b1eead9fb6d9b3b22c4fbb2d411659fc9b73be3ca8948f3bd" + }, + "size": 2087144 + }, + "matplotlib-base-3.10.8-np23py313h2ca9bdc_5.tar.bz2": { + "name": "matplotlib-base", + "build": "np23py313h2ca9bdc_5", + "version": "3.10.8", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "cfc034ef76cc49533dfc3c2a4d8da43b", + "sha256": "de6dfcf79922ecc30eeb05aa52ac0f7b95395907d080d13abd4696a9f3c71be4" + }, + "size": 8530785 + }, + "imageio-2.37.0-pyhfb79c49_0.conda": { + "name": "imageio", + "build": "pyhfb79c49_0", + "version": "2.37.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "b5577bc2212219566578fd5af9993af6", + "sha256": "8ef69fa00c68fad34a3b7b260ea774fda9bd9274fd706d3baffb9519fd0063fe" + }, + "size": 293226 + }, + "ipywidgets-8.1.8-pyhd8ed1ab_0.conda": { + "name": "ipywidgets", + "build": "pyhd8ed1ab_0", + "version": "8.1.8", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "d68e3f70d1f068f1b66d94822fdc644e", + "sha256": "6bb58afb7eabc8b4ac0c7e92707fb498313cc0164cf04e7ba1090dbf49af514b" + }, + "size": 114376 + }, + "ipympl-0.10.0-pyhcf101f3_0.conda": { + "name": "ipympl", + "build": "pyhcf101f3_0", + "version": "0.10.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "abb099ef4a8ab45d4b713f2d4277f727", + "sha256": "5cb435e0fe1238b0ec4baa13d52faf4490b76bb62202e5fd5bf004e95f2cf425" + }, + "size": 244162 + }, + "python-3.13.1-h_2efca29_11_cp313.tar.bz2": { + "name": "python", + "build": "h_2efca29_11_cp313", + "version": "3.13.1", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "6541a249de9b863533e745bdeeb6d346", + "sha256": "87a2f18dd094535772fba34526a2398902e0e9e385435f135932a9e563f96acb" + }, + "size": 5731072 + }, + "xeus-python-shell-lite-0.6.6-pyhd8ed1ab_0.conda": { + "name": "xeus-python-shell-lite", + "build": "pyhd8ed1ab_0", + "version": "0.6.6", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "e053ba510540bd9f6e52a72626062e33", + "sha256": "59588e3f38120c0e4df3fa4347727f3f59fdc5e4e677aa0266eb560aa646b618" + }, + "size": 7321 + }, + "xeus-python-shell-0.6.6-pyh332efcf_0.conda": { + "name": "xeus-python-shell", + "build": "pyh332efcf_0", + "version": "0.6.6", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "fb78d1cc085480f0d2b38fee492ff7ae", + "sha256": "dd7eb23e335e9baf5b83eadf97c751d649c6128d5fc14746399c138ff45d7349" + }, + "size": 7365 + }, + "pyodide-http-0.2.2-pyhcf101f3_0.conda": { + "name": "pyodide-http", + "build": "pyhcf101f3_0", + "version": "0.2.2", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "fa9bbfc44b2482fb55bbb9e106958b71", + "sha256": "7e2a6f50f86910c22ab7883aa358fe1f5b4d2e2278b8f158d421c85d27057542" + }, + "size": 16750 + }, + "xeus-python-shell-raw-0.6.6-pyhd8ed1ab_0.conda": { + "name": "xeus-python-shell-raw", + "build": "pyhd8ed1ab_0", + "version": "0.6.6", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "c753450d7e2b773bb35cfd1e2253c2c9", + "sha256": "dd308739e9531ce75f7ba20127cbe2356d00eec63610e813e8d5a06fa0f3af4c" + }, + "size": 12760 + }, + "pyjs-rt-4.0.2-py313h690bb57_3.tar.bz2": { + "name": "pyjs-rt", + "build": "py313h690bb57_3", + "version": "4.0.2", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "sha256": "8482cca682dd4634dbe0e9b015f4cd89f18983540dd8e7e56acf3b80cc136214" + }, + "size": 46493 + }, + "emscripten-abi-4.0.9-h267e887_8.tar.bz2": { + "name": "emscripten-abi", + "build": "h267e887_8", + "version": "4.0.9", + "subdir": "noarch", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "744cafd9d23d91fc2943a29fdbb4c6a6", + "sha256": "98cfd70341371eccfd6e186e3be1b18b2ac1cb859ecb9efb9a96303885a6bb2a" + }, + "size": 13081 + }, + "python_abi-3.13-8_cp313.conda": { + "name": "python_abi", + "build": "8_cp313", + "version": "3.13", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "94305520c52a4aa3f6c2b1ff6008d9f8", + "sha256": "210bffe7b121e651419cb196a2a63687b087497595c9be9d20ebe97dd06060a7" + }, + "size": 7002 + }, + "nlohmann_json-abi-3.12.0-h0f90c79_1.conda": { + "name": "nlohmann_json-abi", + "build": "h0f90c79_1", + "version": "3.12.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "59659d0213082bc13be8500bab80c002", + "sha256": "2a909594ca78843258e4bda36e43d165cda844743329838a29402823c8f20dec" + }, + "size": 4335 + }, + "pillow-12.1.1-py313h6414d15_1.tar.bz2": { + "name": "pillow", + "build": "py313h6414d15_1", + "version": "12.1.1", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "f7dcd4bac24c291ab3283a9c19775fdd", + "sha256": "9c36d3e18b874ef6f18c30e1a69f083e3e4d21c75518a76dbd68811d42a489dd" + }, + "size": 748948 + }, + "comm-0.2.3-pyhe01879c_0.conda": { + "name": "comm", + "build": "pyhe01879c_0", + "version": "0.2.3", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "2da13f2b299d8e1995bafbbe9689a2f7", + "sha256": "576a44729314ad9e4e5ebe055fbf48beb8116b60e58f9070278985b2b634f212" + }, + "size": 14690 + }, + "ipython-9.9.0-py313h6d8a2ba_0.tar.bz2": { + "name": "ipython", + "build": "py313h6d8a2ba_0", + "version": "9.9.0", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "sha256": "7887d2b248c431a1efc18fe03e43042d05c91b103b20f0cdc221e2c5792227b3" + }, + "size": 1177339 + }, + "jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda": { + "name": "jupyterlab_widgets", + "build": "pyhcf101f3_1", + "version": "3.0.16", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "dbf8b81974504fa51d34e436ca7ef389", + "sha256": "5c03de243d7ae6247f39a402f4785d95e61c3be79ef18738e8f17155585d31a8" + }, + "size": 216779 + }, + "traitlets-5.14.3-pyhd8ed1ab_1.conda": { + "name": "traitlets", + "build": "pyhd8ed1ab_1", + "version": "5.14.3", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "019a7385be9af33791c989871317e1ed", + "sha256": "f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959" + }, + "size": 110051 + }, + "widgetsnbextension-4.0.15-pyhd8ed1ab_0.conda": { + "name": "widgetsnbextension", + "build": "pyhd8ed1ab_0", + "version": "4.0.15", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "dc257b7e7cad9b79c1dfba194e92297b", + "sha256": "826af5e2c09e5e45361fa19168f46ff524e7a766022615678c3a670c45895d9a" + }, + "size": 889195 + }, + "packaging-26.0-pyhcf101f3_0.conda": { + "name": "packaging", + "build": "pyhcf101f3_0", + "version": "26.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "b76541e68fea4d511b1ac46a28dcd2c6", + "sha256": "c1fc0f953048f743385d31c468b4a678b3ad20caffdeaa94bed85ba63049fd58" + }, + "size": 72010 + }, + "backcall-0.2.0-pyh9f0ad1d_0.tar.bz2": { + "name": "backcall", + "build": "pyh9f0ad1d_0", + "version": "0.2.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "6006a6d08a3fa99268a2681c7fb55213", + "sha256": "ee62d6434090c1327a48551734e06bd10e65a64ef7f3b6e68719500dab0e42b9" + }, + "size": 13705 + }, + "decorator-5.2.1-pyhd8ed1ab_0.conda": { + "name": "decorator", + "build": "pyhd8ed1ab_0", + "version": "5.2.1", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "9ce473d1d1be1cc3810856a48b3fab32", + "sha256": "c17c6b9937c08ad63cb20a26f403a3234088e57d4455600974a0ce865cb14017" + }, + "size": 14129 + }, + "matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda": { + "name": "matplotlib-inline", + "build": "pyhd8ed1ab_0", + "version": "0.2.1", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "00e120ce3e40bad7bfc78861ce3c4a25", + "sha256": "9d690334de0cd1d22c51bc28420663f4277cfa60d34fa5cad1ce284a13f1d603" + }, + "size": 15175 + }, + "pickleshare-0.7.5-pyhd8ed1ab_1004.conda": { + "name": "pickleshare", + "build": "pyhd8ed1ab_1004", + "version": "0.7.5", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "11a9d1d09a3615fc07c3faf79bc0b943", + "sha256": "e2ac3d66c367dada209fc6da43e645672364b9fd5f9d28b9f016e24b81af475b" + }, + "size": 11748 + }, + "prompt-toolkit-3.0.52-pyha770c72_0.conda": { + "name": "prompt-toolkit", + "build": "pyha770c72_0", + "version": "3.0.52", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "edb16f14d920fb3faf17f5ce582942d6", + "sha256": "4817651a276016f3838957bfdf963386438c70761e9faec7749d411635979bae" + }, + "size": 273927 + }, + "pygments-2.19.2-pyhd8ed1ab_0.conda": { + "name": "pygments", + "build": "pyhd8ed1ab_0", + "version": "2.19.2", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "6b6ece66ebcae2d5f326c77ef2c5a066", + "sha256": "5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a" + }, + "size": 889287 + }, + "stack_data-0.6.3-pyhd8ed1ab_1.conda": { + "name": "stack_data", + "build": "pyhd8ed1ab_1", + "version": "0.6.3", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "b1b505328da7a6b246787df4b5a49fbc", + "sha256": "570da295d421661af487f1595045760526964f41471021056e993e73089e9c41" + }, + "size": 26988 + }, + "pexpect-4.9.0-pyhd8ed1ab_1.conda": { + "name": "pexpect", + "build": "pyhd8ed1ab_1", + "version": "4.9.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "d0d408b1f18883a944376da5cf8101ea", + "sha256": "202af1de83b585d36445dc1fda94266697341994d1a3328fabde4989e1b3d07a" + }, + "size": 53561 + }, + "typing_extensions-4.15.0-pyhcf101f3_0.conda": { + "name": "typing_extensions", + "build": "pyhcf101f3_0", + "version": "4.15.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "0caa1af407ecff61170c9437a808404d", + "sha256": "032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731" + }, + "size": 51692 + }, + "contourpy-1.3.3-py313hffb8c6e_4.tar.bz2": { + "name": "contourpy", + "build": "py313hffb8c6e_4", + "version": "1.3.3", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "01ddbfe7e8b222f7e3bc4c4e862581e2", + "sha256": "f45fa649d712e884c6d305a0d4ea3a23e9e9e1a227ec737157c694ff71f29a6d" + }, + "size": 119965 + }, + "cycler-0.12.1-pyhcf101f3_2.conda": { + "name": "cycler", + "build": "pyhcf101f3_2", + "version": "0.12.1", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "4c2a8fef270f6c69591889b93f9f55c1", + "sha256": "bb47aec5338695ff8efbddbc669064a3b10fe34ad881fb8ad5d64fbfa6910ed1" + }, + "size": 14778 + }, + "fonttools-4.39.4-py313h6d8a2ba_2.tar.bz2": { + "name": "fonttools", + "build": "py313h6d8a2ba_2", + "version": "4.39.4", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "b87eb6d771533c8ea7e530724e6e5679", + "sha256": "4c1a75a957af69a7448e89ab1fcd7f86e10b0907dc9814012bdba1007b3f3c06" + }, + "size": 1672331 + }, + "kiwisolver-1.5.0-py313hb42c9ef_1.tar.bz2": { + "name": "kiwisolver", + "build": "py313hb42c9ef_1", + "version": "1.5.0", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "1b263ae85355cf063f4951c2ad0a13b3", + "sha256": "8b43d233c9ed8d455a837bbc82e74377679282da3d06ea14d897f0c93801c4b1" + }, + "size": 40395 + }, + "pyparsing-3.3.2-pyhcf101f3_0.conda": { + "name": "pyparsing", + "build": "pyhcf101f3_0", + "version": "3.3.2", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "3687cc0b82a8b4c17e1f0eb7e47163d5", + "sha256": "417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de" + }, + "size": 110893 + }, + "python-dateutil-2.9.0.post0-pyhe01879c_2.conda": { + "name": "python-dateutil", + "build": "pyhe01879c_2", + "version": "2.9.0.post0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "5b8d21249ff20967101ffa321cab24e8", + "sha256": "d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664" + }, + "size": 233310 + }, + "pytz-2026.1.post1-pyhcf101f3_0.conda": { + "name": "pytz", + "build": "pyhcf101f3_0", + "version": "2026.1.post1", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "f8a489f43a1342219a3a4d69cecc6b25", + "sha256": "d35c15c861d5635db1ba847a2e0e7de4c01994999602db1f82e41b5935a9578a" + }, + "size": 201725 + }, + "qhull-2020.2-h0b0027f_1.tar.bz2": { + "name": "qhull", + "build": "h0b0027f_1", + "version": "2020.2", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "d7d859c9b2182b224d795b6c9a6644d3", + "sha256": "264e785b4ab779f8c083c854546c948dc792c99ca8cc497557946d20e23a0c5a" + }, + "size": 1688573 + }, + "zlib-1.3.2-h8b79025_0.tar.bz2": { + "name": "zlib", + "build": "h8b79025_0", + "version": "1.3.2", + "subdir": "emscripten-wasm32", + "channel": "emscripten-forge-4x", + "hash": { + "md5": "651e098a93f31fe5302c19a912944d5d", + "sha256": "4b9ba9a6bf69330ebbd337269613f1db3614edb00485c471b54b2993e8a97054" + }, + "size": 886451 + }, + "wcwidth-0.6.0-pyhd8ed1ab_0.conda": { + "name": "wcwidth", + "build": "pyhd8ed1ab_0", + "version": "0.6.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "c3197f8c0d5b955c904616b716aca093", + "sha256": "e298b508b2473c4227206800dfb14c39e4b14fd79d4636132e9e1e4244cdf4aa" + }, + "size": 71550 + }, + "asttokens-3.0.1-pyhd8ed1ab_0.conda": { + "name": "asttokens", + "build": "pyhd8ed1ab_0", + "version": "3.0.1", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "9673a61a297b00016442e022d689faa6", + "sha256": "ee4da0f3fe9d59439798ee399ef3e482791e48784873d546e706d0935f9ff010" + }, + "size": 28797 + }, + "executing-2.2.1-pyhd8ed1ab_0.conda": { + "name": "executing", + "build": "pyhd8ed1ab_0", + "version": "2.2.1", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "ff9efb7f7469aed3c4a8106ffa29593c", + "sha256": "210c8165a58fdbf16e626aac93cc4c14dbd551a01d1516be5ecad795d2422cad" + }, + "size": 30753 + }, + "pure_eval-0.2.3-pyhd8ed1ab_1.conda": { + "name": "pure_eval", + "build": "pyhd8ed1ab_1", + "version": "0.2.3", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "3bfdfb8dbcdc4af1ae3f9a8eb3948f04", + "sha256": "71bd24600d14bb171a6321d523486f6a06f855e75e547fa0cb2a0953b02047f0" + }, + "size": 16668 + }, + "ptyprocess-0.7.0-pyhd8ed1ab_1.conda": { + "name": "ptyprocess", + "build": "pyhd8ed1ab_1", + "version": "0.7.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "7d9daffbb8d8e0af0f769dbbcd173a54", + "sha256": "a7713dfe30faf17508ec359e0bc7e0983f5d94682492469bd462cdaae9c64d83" + }, + "size": 19457 + }, + "six-1.17.0-pyhe01879c_1.conda": { + "name": "six", + "build": "pyhe01879c_1", + "version": "1.17.0", + "subdir": "noarch", + "channel": "conda-forge", + "hash": { + "md5": "3339e3b65d58accf4ca4fb8748ab16b3", + "sha256": "458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d" + }, + "size": 18455 + } + }, + "pipPackages": {} +} \ No newline at end of file