{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Getting Started with AnyPyTools" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Running a simple macro" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from anypytools import AnyPyProcess \n", "app = AnyPyProcess()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we need to instruct the AnyBody Modelling System to load the and run the model. We do this using _AnyScript_ macro commands. These are short commands that can automate operations in the AnyBody Modeling System (AMS). Operation that are normally done by pointing and clicking in the AMS graphical user interface. \n", "\n", "You can read more on _AnyScript_ macros in the \"User Interface Features\" tutorial that accompanies the AnyBody Modeling System.\n", "\n", "Now we define an _AnyScript_ macro that we want to run on the model.\n", "\n", "```\n", "load \"Knee.any\"\n", "operation Main.MyStudy.Kinematics\n", "run\n", "```\n", "\n", "The macro will command AnyBody to load the model and run the Kinematics operation. \n", "\n", "The macro is executed by parsing it to the `start_macro()` method of the `AnyPyProcess` object." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "943591ec0d6347ba8f84f27274e632a0", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Completed: \u001b[1;36m1\u001b[0m\n" ] }, { "data": { "text/html": [ "
\n" ], "text/plain": [] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "macrolist = [\n", " 'load \"Knee.any\"',\n", " 'operation Main.MyStudy.Kinematics',\n", " 'run',\n", "]\n", "\n", "app.start_macro(macrolist);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Running multiple macros" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is easy to run multiple macros by adding an extra set of macro commands to the macro list." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8c4b1de8a1eb4a7280d7ccd5cb5fd921", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Completed: \u001b[1;36m2\u001b[0m\n" ] }, { "data": { "text/html": [ "\n" ], "text/plain": [] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "macrolist = [\n", " ['load \"Knee.any\"',\n", " 'operation Main.MyStudy.Kinematics',\n", " 'run'],\n", " ['load \"Knee.any\"',\n", " 'operation Main.MyStudy.InverseDynamics',\n", " 'run'],\n", "]\n", "app.start_macro(macrolist);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Parallel execution" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that AnyPyProcess will run the anyscript macros in parallel. Modern computers have multiple cores, but a single AnyBody instance can only utilize a single core, leaving us with a great potential for speeding things up through parallelization.\n", "\n", "To test this, let us create ten macros in a for-loop. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "macrolist = []\n", "for i in range(40):\n", " macro = [\n", " 'load \"Knee.any\"', \n", " 'operation Main.MyStudy.InverseDynamics',\n", " 'run',\n", " ]\n", " macrolist.append(macro)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "AnyPyProcess has a parameter 'num_processes' that controls the number of parallel processes. Let us try a small example to see the difference in speed:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "6574b17df7e24d43993e44f6d3015ef4", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Completed: \u001b[1;36m40\u001b[0m\n" ] }, { "data": { "text/html": [ "\n" ], "text/plain": [] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# First sequentially\n", "app = AnyPyProcess(num_processes = 1)\n", "app.start_macro(macrolist);" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4355dfddc8964a36a35f1678c763df34", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Completed: \u001b[1;36m40\u001b[0m\n" ] }, { "data": { "text/html": [ "\n" ], "text/plain": [] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Then with parallization\n", "app = AnyPyProcess(num_processes = 4)\n", "app.start_macro(macrolist);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Note*: In general you should not use a `num_processes` than the number of cores in your computer." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Getting data from the AnyBody Model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following macro, we have added a new class operation to 'Dump' the result of the maximum muscle activity. The `start_macro` method will return all the dumped variables:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8b777d9604f34a31b4fd5fe3537fba71", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Completed: \u001b[1;36m1\u001b[0m\n" ] }, { "data": { "text/html": [ "\n" ], "text/plain": [] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "macrolist = [\n", " 'load \"Knee.any\"',\n", " 'operation Main.MyStudy.InverseDynamics',\n", " 'run',\n", " 'classoperation Main.MyStudy.Output.MaxMuscleActivity \"Dump\"',\n", "] \n", "\n", "results = app.start_macro(macrolist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can export more variables by adding more `classoperation`. But there is a better way of doing this, as we shall see in the next tutorials. \n", "\n", "Finally, to make a plot we import the `matplotlib` library, and enable inline figures." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "max_muscle_act = results[0]['Main.MyStudy.Output.MaxMuscleActivity']" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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F8ePHxepYveRmZkJiUSCOXPm2K7xXjtWWVkZnn32WQQHB8Pb2xvDhg1DXl6e7ee8345hNBrx2muvIT4+Hl5eXkhISMDixYthNpttbXivu2fnzp146KGHEBUVBYlEgv/85z/tft6V+9rS0oJf//rXCAkJgY+PDx5++GFcvHjx1osT6LrWrVsnKBQKYdWqVcKJEyeEV155RfDx8REuXLggdmkua+LEicI///lP4dixY0JBQYEwZcoUITY2VmhoaLC1eeuttwQ/Pz9hw4YNwtGjR4Xp06cLkZGRgl6vF7Fy17Z//36hb9++wu233y688sortuu8145TU1MjxMXFCT/96U+Fffv2CcXFxcKWLVuEs2fP2trwfjvGn//8ZyE4OFj46quvhOLiYuHzzz8XfH19haVLl9ra8F53T1ZWlrBo0SJhw4YNAgDh3//+d7ufd+W+pqenC9HR0UJOTo5w6NAhYdy4ccLQoUMFo9F4S7UxsNzAyJEjhfT09HbXEhMThVdffVWkitxPRUWFAEDYsWOHIAiCYDabhYiICOGtt96ytWlubhY0Go2wcuVKscp0afX19cKAAQOEnJwc4Z577rEFFt5rx5o/f74wduzY6/6c99txpkyZIrzwwgvtrj322GPCs88+KwgC77Wj/DiwdOW+1tbWCgqFQli3bp2tTVlZmSCVSoXNmzffUj0cEroOg8GAvLw8pKWltbuelpaGPXv2iFSV+6mrqwMABAUFAQCKi4uh0+na3XeVSoV77rmH972bXnrpJUyZMgX3339/u+u81461adMmpKSk4IknnkBYWBiGDx+OVatW2X7O++04Y8eOxdatW3H69GkAwOHDh7F7925MnjwZAO91T+nKfc3Ly0Nra2u7NlFRUUhOTr7le+82hx86WlVVFUwmE8LDw9tdDw8Ph06nE6kq9yIIAjIyMjB27FgkJycDgO3ednbfL1y40Os1urp169bh0KFDOHDgQIef8V47VlFREVasWIGMjAwsXLgQ+/fvx+zZs6FSqTBjxgzebweaP38+6urqkJiYCJlMBpPJhDfeeANPPfUUAP7d7ildua86nQ5KpRKBgYEd2tzqZycDy01IJJJ2/1sQhA7XqHtefvllHDlyBLt37+7wM973W1daWopXXnkF2dnZUKvV123He+0YZrMZKSkpePPNNwEAw4cPx/Hjx7FixQrMmDHD1o73+9atX78eH330ET755BMMHjwYBQUFmDNnDqKiovD888/b2vFe94zu3FdH3HsOCV1HSEgIZDJZh0RYUVHRIV2S/X79619j06ZN2LZtG/r06WO7HhERAQC87w6Ql5eHiooKaLVayOVyyOVy7NixA8uWLYNcLrfdT95rx4iMjMRtt93W7lpSUhJKSkoA8O+2I/32t7/Fq6++iieffBJDhgzBc889h7lz5yIzMxMA73VP6cp9jYiIgMFgwJUrV67bprsYWK5DqVRCq9UiJyen3fWcnByMGTNGpKpcnyAIePnll7Fx40Z89913iI+Pb/fz+Ph4REREtLvvBoMBO3bs4H230/jx43H06FEUFBTYHikpKXjmmWdQUFCAhIQE3msHuuuuuzos0T99+jTi4uIA8O+2IzU1NUEqbf/xJZPJbMuaea97Rlfuq1arhUKhaNemvLwcx44du/V7f0tTdt2cdVnzmjVrhBMnTghz5swRfHx8hPPnz4tdmsv65S9/KWg0GmH79u1CeXm57dHU1GRr89ZbbwkajUbYuHGjcPToUeGpp57ickQHuXaVkCDwXjvS/v37BblcLrzxxhvCmTNnhI8//ljw9vYWPvroI1sb3m/HeP7554Xo6GjbsuaNGzcKISEhwu9+9ztbG97r7qmvrxfy8/OF/Px8AYDw9ttvC/n5+bbtPLpyX9PT04U+ffoIW7ZsEQ4dOiTcd999XNbcG9577z0hLi5OUCqVwogRI2zLb6l7AHT6+Oc//2lrYzabhT/84Q9CRESEoFKphLvvvls4evSoeEW7kR8HFt5rx/ryyy+F5ORkQaVSCYmJicL777/f7ue8346h1+uFV155RYiNjRXUarWQkJAgLFq0SGhpabG14b3unm3btnX6Hv38888LgtC1+3r16lXh5ZdfFoKCggQvLy/hwQcfFEpKSm65NokgCMKt9dEQERER9SzOYSEiIiKnx8BCRERETo+BhYiIiJweAwsRERE5PQYWIiIicnoMLEREROT0GFiIiIjI6TGwEBERkdNjYCEiIiKnx8BCRERETo+BhYiIiJweAwsRERE5vf8P71iSsObmDz0AAAAASUVORK5CYII=", "text/plain": [ "Processing tasks ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40/40 0:02:15 0:00:00\n\n", "text/plain": "Processing tasks \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m 40/40 \u001b[33m0:02:15\u001b[0m \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "46d2e908baf8439fbcaecccfc9829643": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "layout": "IPY_MODEL_3cb00413495246b5bf8ba65871c170dd", "msg": "Failed to load model class 'HTMLModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_4ba3800318ac477cb56657e6dce06793", "value": "100%" } }, "4b4642f56e5344c783603a3f1fd4f4af": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_view_name": "ErrorWidgetView", "children": [ "IPY_MODEL_1a375fe6b4384b6fb9bff4d0552c7673", "IPY_MODEL_b2a9ffa2983d4848a81a563e173c8e87", "IPY_MODEL_d9d138d1fcb441498a8c61e3b72933e4" ], "error": {}, "layout": "IPY_MODEL_208d149848f34d0ebfff66a0e5b7135d", "msg": "Failed to load model class 'HBoxModel' from module '@jupyter-widgets/controls'" } }, "4ba3800318ac477cb56657e6dce06793": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "DescriptionStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'DescriptionStyleModel' from module '@jupyter-widgets/controls'" } }, "4d7ebb51ea4641bba8a4ad134916637d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "4e29c8e0a7ff4e29b87299813951d83e": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "4ef9c185f96b4e35877d408cc677f531": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "4f0eb23d26cf4cfc9b990cc9369b700b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "DescriptionStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'DescriptionStyleModel' from module '@jupyter-widgets/controls'" } }, "507936e5207e44ec9d4272e9d3f743bd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_view_name": "ErrorWidgetView", "children": [ "IPY_MODEL_150aad3e6a4a415a90fc227a79665b9e", "IPY_MODEL_f8f0e173843142aab52a6067dde5562f", "IPY_MODEL_5ce047b5e97841f8a44c84d4f081ce48" ], "error": {}, "layout": "IPY_MODEL_4e29c8e0a7ff4e29b87299813951d83e", "msg": "Failed to load model class 'HBoxModel' from module '@jupyter-widgets/controls'" } }, "5ce047b5e97841f8a44c84d4f081ce48": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "layout": "IPY_MODEL_91e0d6541c844a9cbb70958295566b29", "msg": "Failed to load model class 'HTMLModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_e895e4089e3246729983c6dc68991c2f", "value": " 40/40 [00:39<00:00, 1.07it/s]" } }, "5f2700786493433cb05f0de916b7a01a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_view_name": "ErrorWidgetView", "bar_style": "success", "error": {}, "layout": "IPY_MODEL_e4951310a5c6493caa7aa4e30b48d73d", "max": 1, "msg": "Failed to load model class 'FloatProgressModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_bb123cf25e9e457f896fd4e900b055c3", "value": 1 } }, "61cdbc29d5964aaba79332b6c1b9fd71": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "DescriptionStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'DescriptionStyleModel' from module '@jupyter-widgets/controls'" } }, "6574b17df7e24d43993e44f6d3015ef4": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_ccf259d8146746d69386fe00ce2b7b49", "outputs": [ { "data": { "text/html": "
Processing tasks ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40/40 0:04:22 0:00:00\n\n", "text/plain": "Processing tasks \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m 40/40 \u001b[33m0:04:22\u001b[0m \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "6ab49f196f694e0e942a8ad1c2083ba5": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "6b8f17ee499b4320bbef4ac064cffc59": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_view_name": "ErrorWidgetView", "children": [ "IPY_MODEL_46d2e908baf8439fbcaecccfc9829643", "IPY_MODEL_ecdc9b9531484f38a3bac6a8073516b6", "IPY_MODEL_a0330762cf2e413f8f237fd588a37670" ], "error": {}, "layout": "IPY_MODEL_76cd35d330fa4801a729f67c776b60e6", "msg": "Failed to load model class 'HBoxModel' from module '@jupyter-widgets/controls'" } }, "6dd8b36b2c67400d93a8c99f0c9709b7": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "76cd35d330fa4801a729f67c776b60e6": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "7a17bd77ad224b9cb11d9ec77dc65e4a": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "7be5e9eceb61402ab2e5da1d7464351f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'ProgressStyleModel' from module '@jupyter-widgets/controls'" } }, "7c8a586e484b4a719de1eca2272fb178": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "DescriptionStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'DescriptionStyleModel' from module '@jupyter-widgets/controls'" } }, "83a53e7dab034d21b5fb6b75c441a32b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "DescriptionStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'DescriptionStyleModel' from module '@jupyter-widgets/controls'" } }, "83acbfecc0594dcaba2d3bd1533fcef3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "DescriptionStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'DescriptionStyleModel' from module '@jupyter-widgets/controls'" } }, "855981dd6596479e8daf6421a721c351": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'ProgressStyleModel' from module '@jupyter-widgets/controls'" } }, "8656d227a1554d4b86db3bb3272fb7cb": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "8b777d9604f34a31b4fd5fe3537fba71": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_f199547ecbe745ce808f35ea498c76f7", "outputs": [ { "data": { "text/html": "
Processing tasks ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1/1 0:00:08 0:00:00\n\n", "text/plain": "Processing tasks \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m 1/1 \u001b[33m0:00:08\u001b[0m \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "8c4b1de8a1eb4a7280d7ccd5cb5fd921": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_e524f505468b416ebbf04498e06fdc53", "outputs": [ { "data": { "text/html": "
Processing tasks ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2/2 0:00:11 0:00:00\n\n", "text/plain": "Processing tasks \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m 2/2 \u001b[33m0:00:11\u001b[0m \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "91e0d6541c844a9cbb70958295566b29": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "939f80052ca54a84be271383a422dc6e": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "943591ec0d6347ba8f84f27274e632a0": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_8656d227a1554d4b86db3bb3272fb7cb", "outputs": [ { "data": { "text/html": "
Processing tasks ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1/1 0:00:06 0:00:00\n\n", "text/plain": "Processing tasks \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m 1/1 \u001b[33m0:00:06\u001b[0m \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "9c13066159d1421585fc4956305f845f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "layout": "IPY_MODEL_939f80052ca54a84be271383a422dc6e", "msg": "Failed to load model class 'HTMLModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_83a53e7dab034d21b5fb6b75c441a32b", "value": " 1/1 [00:00<00:00, 1.39it/s]" } }, "a0330762cf2e413f8f237fd588a37670": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "layout": "IPY_MODEL_1af44622829c4294955ef5cbe7d1d607", "msg": "Failed to load model class 'HTMLModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_4f0eb23d26cf4cfc9b990cc9369b700b", "value": " 40/40 [00:28<00:00, 1.59it/s]" } }, "b2a9ffa2983d4848a81a563e173c8e87": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_view_name": "ErrorWidgetView", "bar_style": "success", "error": {}, "layout": "IPY_MODEL_c17b6bbe95944540b88d061ee4feb409", "max": 2, "msg": "Failed to load model class 'FloatProgressModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_b9a15dd9ccdb4372acf1b0d6c1d0ba3d", "value": 2 } }, "b9a15dd9ccdb4372acf1b0d6c1d0ba3d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'ProgressStyleModel' from module '@jupyter-widgets/controls'" } }, "bb123cf25e9e457f896fd4e900b055c3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'ProgressStyleModel' from module '@jupyter-widgets/controls'" } }, "beb54a50352f4a3cae0aa9a05d48cfd3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "c17b6bbe95944540b88d061ee4feb409": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "c27aec8b6b274003a21dc8ed20995983": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "layout": "IPY_MODEL_c9f3bb94474c44dea0bfa5dfbce63642", "msg": "Failed to load model class 'HTMLModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_61cdbc29d5964aaba79332b6c1b9fd71", "value": "100%" } }, "c9f3bb94474c44dea0bfa5dfbce63642": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "ccf259d8146746d69386fe00ce2b7b49": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "d4f9534578a94f9d8cc6d0c0befd1c5f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "d9d138d1fcb441498a8c61e3b72933e4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "layout": "IPY_MODEL_4d7ebb51ea4641bba8a4ad134916637d", "msg": "Failed to load model class 'HTMLModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_2bc61f27c9434772a5f222bf38bc6148", "value": " 2/2 [00:01<00:00, 1.27s/it]" } }, "e1405d7ecc124975bd680a577805cc22": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "layout": "IPY_MODEL_4ef9c185f96b4e35877d408cc677f531", "msg": "Failed to load model class 'HTMLModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_2da674cf084344189789d2f8281548bb", "value": " 1/1 [00:01<00:00, 1.13s/it]" } }, "e4951310a5c6493caa7aa4e30b48d73d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "e524f505468b416ebbf04498e06fdc53": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "e895e4089e3246729983c6dc68991c2f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "DescriptionStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'DescriptionStyleModel' from module '@jupyter-widgets/controls'" } }, "e9cc6f729bd840b7baef014b0e9eefe7": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } }, "ecdc9b9531484f38a3bac6a8073516b6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_view_name": "ErrorWidgetView", "bar_style": "success", "error": {}, "layout": "IPY_MODEL_6dd8b36b2c67400d93a8c99f0c9709b7", "max": 40, "msg": "Failed to load model class 'FloatProgressModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_f0cdf787876949e5a299b19803e7985c", "value": 40 } }, "f0cdf787876949e5a299b19803e7985c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'ProgressStyleModel' from module '@jupyter-widgets/controls'" } }, "f199547ecbe745ce808f35ea498c76f7": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "f8f0e173843142aab52a6067dde5562f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_view_name": "ErrorWidgetView", "bar_style": "success", "error": {}, "layout": "IPY_MODEL_6ab49f196f694e0e942a8ad1c2083ba5", "max": 40, "msg": "Failed to load model class 'FloatProgressModel' from module '@jupyter-widgets/controls'", "style": "IPY_MODEL_7be5e9eceb61402ab2e5da1d7464351f", "value": 40 } }, "fb94187b176a4f079a17684f810528f5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "DescriptionStyleModel", "state": { "_view_name": "ErrorWidgetView", "description_width": "", "error": {}, "msg": "Failed to load model class 'DescriptionStyleModel' from module '@jupyter-widgets/controls'" } }, "fda2cf827ee049e3a7664a7b36ba5e0a": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_view_name": "ErrorWidgetView", "error": {}, "msg": "Failed to load model class 'LayoutModel' from module '@jupyter-widgets/base'" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }