From 159972c67855c0d17cdcdd081fcbace388e9a6cb Mon Sep 17 00:00:00 2001 From: "Joshua E. Jodesty" Date: Thu, 20 Aug 2020 11:53:56 -0400 Subject: [PATCH] hot fix --- .gitignore | 5 + .../v3/Aragon_Conviction_Voting_Model.ipynb | 448 ++++++++++++++++-- models/v3/debug.py | 12 + .../model/__pycache__/config.cpython-37.pyc | Bin 1194 -> 0 bytes .../model/__pycache__/config.cpython-38.pyc | Bin 1455 -> 0 bytes .../__pycache__/economyconfig.cpython-36.pyc | Bin 1046 -> 0 bytes .../__pycache__/economyconfig.cpython-37.pyc | Bin 1041 -> 0 bytes .../__pycache__/genesis_states.cpython-36.pyc | Bin 322 -> 0 bytes .../__pycache__/genesis_states.cpython-37.pyc | Bin 583 -> 0 bytes .../partial_state_update_block.cpython-36.pyc | Bin 759 -> 0 bytes .../partial_state_update_block.cpython-37.pyc | Bin 1161 -> 0 bytes .../partial_state_update_block.cpython-38.pyc | Bin 922 -> 0 bytes .../v3/model/__pycache__/run.cpython-36.pyc | Bin 7637 -> 0 bytes .../v3/model/__pycache__/run.cpython-37.pyc | Bin 8589 -> 0 bytes .../state_variables.cpython-37.pyc | Bin 590 -> 0 bytes .../state_variables.cpython-38.pyc | Bin 444 -> 0 bytes models/v3/model/config.py | 3 +- ...conviction_helper_functions.cpython-36.pyc | Bin 15931 -> 0 bytes ...conviction_helper_functions.cpython-37.pyc | Bin 14983 -> 0 bytes .../parts/__pycache__/designed.cpython-36.pyc | Bin 4791 -> 0 bytes .../parts/__pycache__/designed.cpython-37.pyc | Bin 4425 -> 0 bytes .../exogenousProcesses.cpython-36.pyc | Bin 3476 -> 0 bytes .../exogenousProcesses.cpython-37.pyc | Bin 2313 -> 0 bytes .../__pycache__/initialization.cpython-36.pyc | Bin 665 -> 0 bytes .../__pycache__/initialization.cpython-37.pyc | Bin 647 -> 0 bytes .../parts/__pycache__/kpis.cpython-36.pyc | Bin 384 -> 0 bytes .../parts/__pycache__/kpis.cpython-37.pyc | Bin 1973 -> 0 bytes .../parts/__pycache__/metrics.cpython-37.pyc | Bin 2689 -> 0 bytes .../__pycache__/operatorentity.cpython-37.pyc | Bin 5625 -> 0 bytes .../__pycache__/participants.cpython-36.pyc | Bin 4936 -> 0 bytes .../__pycache__/participants.cpython-37.pyc | Bin 4895 -> 0 bytes .../__pycache__/participants.cpython-38.pyc | Bin 4849 -> 0 bytes .../__pycache__/proposals.cpython-36.pyc | Bin 3212 -> 0 bytes .../__pycache__/proposals.cpython-37.pyc | Bin 3178 -> 0 bytes .../__pycache__/proposals.cpython-38.pyc | Bin 3176 -> 0 bytes .../subpopulation_clusters.cpython-37.pyc | Bin 12711 -> 0 bytes .../supportingFunctions.cpython-37.pyc | Bin 13365 -> 0 bytes .../__pycache__/sys_params.cpython-37.pyc | Bin 680 -> 0 bytes .../__pycache__/sys_params.cpython-38.pyc | Bin 633 -> 0 bytes .../parts/__pycache__/system.cpython-36.pyc | Bin 3373 -> 0 bytes .../parts/__pycache__/system.cpython-37.pyc | Bin 3859 -> 0 bytes .../parts/__pycache__/system.cpython-38.pyc | Bin 3900 -> 0 bytes .../parts/__pycache__/utils.cpython-37.pyc | Bin 15157 -> 0 bytes .../parts/__pycache__/utils.cpython-38.pyc | Bin 14803 -> 0 bytes 44 files changed, 424 insertions(+), 44 deletions(-) create mode 100644 models/v3/debug.py delete mode 100644 models/v3/model/__pycache__/config.cpython-37.pyc delete mode 100644 models/v3/model/__pycache__/config.cpython-38.pyc delete mode 100644 models/v3/model/__pycache__/economyconfig.cpython-36.pyc delete mode 100644 models/v3/model/__pycache__/economyconfig.cpython-37.pyc delete mode 100644 models/v3/model/__pycache__/genesis_states.cpython-36.pyc delete mode 100644 models/v3/model/__pycache__/genesis_states.cpython-37.pyc delete mode 100644 models/v3/model/__pycache__/partial_state_update_block.cpython-36.pyc delete mode 100644 models/v3/model/__pycache__/partial_state_update_block.cpython-37.pyc delete mode 100644 models/v3/model/__pycache__/partial_state_update_block.cpython-38.pyc delete mode 100644 models/v3/model/__pycache__/run.cpython-36.pyc delete mode 100644 models/v3/model/__pycache__/run.cpython-37.pyc delete mode 100644 models/v3/model/__pycache__/state_variables.cpython-37.pyc delete mode 100644 models/v3/model/__pycache__/state_variables.cpython-38.pyc delete mode 100644 models/v3/model/parts/__pycache__/conviction_helper_functions.cpython-36.pyc delete mode 100644 models/v3/model/parts/__pycache__/conviction_helper_functions.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/designed.cpython-36.pyc delete mode 100644 models/v3/model/parts/__pycache__/designed.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/exogenousProcesses.cpython-36.pyc delete mode 100644 models/v3/model/parts/__pycache__/exogenousProcesses.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/initialization.cpython-36.pyc delete mode 100644 models/v3/model/parts/__pycache__/initialization.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/kpis.cpython-36.pyc delete mode 100644 models/v3/model/parts/__pycache__/kpis.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/metrics.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/operatorentity.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/participants.cpython-36.pyc delete mode 100644 models/v3/model/parts/__pycache__/participants.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/participants.cpython-38.pyc delete mode 100644 models/v3/model/parts/__pycache__/proposals.cpython-36.pyc delete mode 100644 models/v3/model/parts/__pycache__/proposals.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/proposals.cpython-38.pyc delete mode 100644 models/v3/model/parts/__pycache__/subpopulation_clusters.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/supportingFunctions.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/sys_params.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/sys_params.cpython-38.pyc delete mode 100644 models/v3/model/parts/__pycache__/system.cpython-36.pyc delete mode 100644 models/v3/model/parts/__pycache__/system.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/system.cpython-38.pyc delete mode 100644 models/v3/model/parts/__pycache__/utils.cpython-37.pyc delete mode 100644 models/v3/model/parts/__pycache__/utils.cpython-38.pyc diff --git a/.gitignore b/.gitignore index 7807246..ea0aba3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,8 @@ __pycache__ .vscode .ipynb_checkpoints .DS_Store +.idea +models/__pycache__ +models/v3/__pycache__ +models/v3/model/__pycache__ +models/v3/model/parts/__pycache__ diff --git a/models/v3/Aragon_Conviction_Voting_Model.ipynb b/models/v3/Aragon_Conviction_Voting_Model.ipynb index 88d3290..51e2dd0 100644 --- a/models/v3/Aragon_Conviction_Voting_Model.ipynb +++ b/models/v3/Aragon_Conviction_Voting_Model.ipynb @@ -382,14 +382,51 @@ "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "/home/aclarkdata/anaconda3/lib/python3.7/site-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n", - " import pandas.util.testing as tm\n" + "\n", + " ___________ ____\n", + " ________ __ ___/ / ____/ | / __ \\\n", + " / ___/ __` / __ / / / /| | / / / /\n", + "/ /__/ /_/ / /_/ / /___/ ___ |/ /_/ /\n", + "\\___/\\__,_/\\__,_/\\____/_/ |_/_____/\n", + "by cadCAD\n", + "\n", + "Execution Mode: local_proc\n", + "Configuration Count: 1\n", + "Dimensions of the first simulation: (Timesteps, Params, Runs, Vars) = (20, 11, 1, 9)\n", + "Execution Method: local_simulations\n", + "SimIDs : [0]\n", + "SubsetIDs: [0]\n", + "Ns : [0]\n", + "ExpIDs : [0]\n", + "Execution Mode: single_threaded\n", + "Total execution time: 2.32s\n" ] } ], + "source": [ + "# Debug Cell\n", + "from model import config\n", + "from model.parts.sys_params import initial_values\n", + "from model.parts.utils import *\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "from model import run\n", + "pd.options.display.float_format = '{:.2f}'.format\n", + "\n", + "%matplotlib inline\n", + "\n", + "rdf = run.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], "source": [ "from model import config\n", "from model.parts.sys_params import initial_values\n", @@ -534,7 +571,7 @@ { "data": { "text/plain": [ - "{'network': ,\n", + "{'network': ,\n", " 'funds': 4867.21,\n", " 'sentiment': 0.6,\n", " 'effective_supply': 14020.008000000002,\n", @@ -609,8 +646,8 @@ "data": { "text/plain": [ "{'type': 'participant',\n", - " 'holdings': 1297.0942803905527,\n", - " 'sentiment': 0.5338048276625109}" + " 'holdings': 6898.924984951563,\n", + " 'sentiment': 0.4474268614587007}" ] }, "execution_count": 8, @@ -640,7 +677,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -704,7 +741,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -714,11 +751,11 @@ " 'conviction': 0,\n", " 'status': 'candidate',\n", " 'age': 0,\n", - " 'funds_requested': 681.1084964231192,\n", + " 'funds_requested': 862.4400479725533,\n", " 'trigger': inf}" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -744,7 +781,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -832,7 +869,9 @@ { "cell_type": "code", "execution_count": 15, - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { @@ -895,8 +934,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 4, "metadata": { + "collapsed": true, "tags": [] }, "outputs": [ @@ -920,32 +960,40 @@ "SubsetIDs: [0]\n", "Ns : [0]\n", "ExpIDs : [0]\n", - "Execution Mode: single_threaded\n" + "Execution Mode: single_threaded\n", + "[{'alpha': 0.7937005259840998,\n", + " 'base_completion_rate': 45,\n", + " 'base_engagement_rate': 0.3,\n", + " 'base_failure_rate': 180,\n", + " 'beta': 0,\n", + " 'gamma': 0.001,\n", + " 'lowest_affinity_to_support': 0.3,\n", + " 'min_supp': 1,\n", + " 'rho': 0.0025,\n", + " 'sensitivity': 0.75,\n", + " 'tmin': 1}]\n" ] }, { - "ename": "TypeError", - "evalue": "list indices must be integers or slices, not str", + "ename": "NameError", + "evalue": "name 'exit' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_line_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'matplotlib'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mrdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/repos/Aragon_Conviction_Voting/models/v3/model/run.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m()\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0msimulation\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mExecutor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexec_context\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlocal_mode_ctx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconfigs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 20\u001b[0;31m \u001b[0mraw_system_events\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtensor_field\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msessions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msimulation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 21\u001b[0m \u001b[0;31m# Result System Events DataFrame\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mraw_system_events\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/__init__.py\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 151\u001b[0m simulations_results = self.exec_method(\n\u001b[1;32m 152\u001b[0m \u001b[0msim_executors\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvar_dict_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_lists\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs_structs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSimIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mRunIDs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 153\u001b[0;31m \u001b[0mExpIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSubsetIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSubsetWindows\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moriginal_N\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 154\u001b[0m )\n\u001b[1;32m 155\u001b[0m \u001b[0mfinal_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_final_results\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msimulations_results\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpartial_state_updates\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msessions\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mremote_threshold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/execution.py\u001b[0m in \u001b[0;36mlocal_simulations\u001b[0;34m(simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, SimIDs, Ns, ExpIDs, SubsetIDs, SubsetWindows, configured_n)\u001b[0m\n\u001b[1;32m 132\u001b[0m return single_proc_exec(\n\u001b[1;32m 133\u001b[0m \u001b[0msimulation_execs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvar_dict_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_lists\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs_structs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSimIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 134\u001b[0;31m \u001b[0mExpIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSubsetIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSubsetWindows\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigured_n\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 135\u001b[0m )\n\u001b[1;32m 136\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mconfig_amt\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# and config_amt < remote_threshold:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/execution.py\u001b[0m in \u001b[0;36msingle_proc_exec\u001b[0;34m(simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, SimIDs, Ns, ExpIDs, SubsetIDs, SubsetWindows, configured_n)\u001b[0m\n\u001b[1;32m 34\u001b[0m )\n\u001b[1;32m 35\u001b[0m result = simulation_exec(\n\u001b[0;32m---> 36\u001b[0;31m \u001b[0mvar_dict_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msim_id\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mN\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubset_id\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubset_window\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigured_n\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 37\u001b[0m )\n\u001b[1;32m 38\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36msimulation\u001b[0;34m(self, sweep_dict, states_list, configs, env_processes, time_seq, simulation_id, run, subset_id, subset_window, configured_N, additional_objs)\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m pipe_run = flatten(\n\u001b[0;32m--> 251\u001b[0;31m \u001b[0;34m[\u001b[0m\u001b[0mexecute_run\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 252\u001b[0m )\n\u001b[1;32m 253\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mexecute_run\u001b[0;34m(sweep_dict, states_list, configs, env_processes, time_seq, _run)\u001b[0m\n\u001b[1;32m 242\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 243\u001b[0m first_timestep_per_run: List[Dict[str, Any]] = self.run_pipeline(\n\u001b[0;32m--> 244\u001b[0;31m \u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list_copy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 245\u001b[0m )\n\u001b[1;32m 246\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mstates_list_copy\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mrun_pipeline\u001b[0;34m(self, sweep_dict, states_list, configs, env_processes, time_seq, run, additional_objs)\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mtime_step\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 199\u001b[0m pipe_run: List[Dict[str, Any]] = self.state_update_pipeline(\n\u001b[0;32m--> 200\u001b[0;31m \u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msimulation_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 201\u001b[0m )\n\u001b[1;32m 202\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mstate_update_pipeline\u001b[0;34m(self, sweep_dict, simulation_list, configs, env_processes, time_step, run, additional_objs)\u001b[0m\n\u001b[1;32m 174\u001b[0m states_list: List[Dict[str, Any]] = self.partial_state_update(\n\u001b[1;32m 175\u001b[0m \u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msimulation_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms_conf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp_conf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 176\u001b[0;31m \u001b[0madditional_objs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 177\u001b[0m )\n\u001b[1;32m 178\u001b[0m \u001b[0msub_step\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mpartial_state_update\u001b[0;34m(self, sweep_dict, sub_step, sL, sH, state_funcs, policy_funcs, env_processes, time_step, run, additional_objs)\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[0mlast_in_obj\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mAny\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdeepcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msL\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 119\u001b[0m _input: Dict[str, Any] = self.policy_update_exception(\n\u001b[0;32m--> 120\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_policy_input\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msH\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlast_in_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpolicy_funcs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 121\u001b[0m )\n\u001b[1;32m 122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mget_policy_input\u001b[0;34m(self, sweep_dict, sub_step, sL, s, funcs, additional_objs)\u001b[0m\n\u001b[1;32m 53\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 55\u001b[0;31m \u001b[0mcol_results\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_col_results\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 56\u001b[0m \u001b[0mkey_set\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreduce\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcol_results\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0mnew_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkey_set\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mget_col_results\u001b[0;34m(sweep_dict, sub_step, sL, s, funcs)\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mpolicy_scope_tuner\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0madditional_objs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 43\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 44\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcompose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minit_reduction_funct\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunct_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval_list\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36m\u001b[0;34m(f)\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mpolicy_scope_tuner\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0madditional_objs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 43\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 44\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcompose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minit_reduction_funct\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunct_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval_list\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mpolicy_scope_tuner\u001b[0;34m(additional_objs, f)\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mpolicy_scope_tuner\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0madditional_objs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0madditional_objs\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 39\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 40\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/repos/Aragon_Conviction_Voting/models/v3/model/parts/system.py\u001b[0m in \u001b[0;36mdriving_process\u001b[0;34m(params, step, sL, s)\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0mnew_proposal_ct\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mmedian_affinity\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 56\u001b[0;31m \u001b[0mexpected_request\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'beta'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'funds'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 57\u001b[0m \u001b[0mnew_proposal_requested\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mexpon\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrvs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexpected_request\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexpected_request\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mct\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_proposal_ct\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mTypeError\u001b[0m: list indices must be integers or slices, not str" + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_line_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'matplotlib'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mrdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/Projects/Aragon_Conviction_Voting/models/v3/model/run.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m()\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0msimulation\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mExecutor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexec_context\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlocal_mode_ctx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconfigs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 20\u001b[0;31m \u001b[0mraw_system_events\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtensor_field\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msessions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msimulation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 21\u001b[0m \u001b[0;31m# Result System Events DataFrame\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mraw_system_events\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/__init__.py\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 151\u001b[0m simulations_results = self.exec_method(\n\u001b[1;32m 152\u001b[0m \u001b[0msim_executors\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvar_dict_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_lists\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs_structs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSimIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mRunIDs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 153\u001b[0;31m \u001b[0mExpIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSubsetIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSubsetWindows\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moriginal_N\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 154\u001b[0m )\n\u001b[1;32m 155\u001b[0m \u001b[0mfinal_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_final_results\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msimulations_results\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpartial_state_updates\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msessions\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mremote_threshold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/execution.py\u001b[0m in \u001b[0;36mlocal_simulations\u001b[0;34m(simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, SimIDs, Ns, ExpIDs, SubsetIDs, SubsetWindows, configured_n)\u001b[0m\n\u001b[1;32m 133\u001b[0m return single_proc_exec(\n\u001b[1;32m 134\u001b[0m \u001b[0msimulation_execs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvar_dict_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_lists\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs_structs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 135\u001b[0;31m \u001b[0mTs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSimIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mExpIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSubsetIDs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSubsetWindows\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigured_n\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 136\u001b[0m )\n\u001b[1;32m 137\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mconfig_amt\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# and config_amt < remote_threshold:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/execution.py\u001b[0m in \u001b[0;36msingle_proc_exec\u001b[0;34m(simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, SimIDs, Ns, ExpIDs, SubsetIDs, SubsetWindows, configured_n)\u001b[0m\n\u001b[1;32m 35\u001b[0m )\n\u001b[1;32m 36\u001b[0m result = simulation_exec(\n\u001b[0;32m---> 37\u001b[0;31m \u001b[0mvar_dict_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msim_id\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mN\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubset_id\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubset_window\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigured_n\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 38\u001b[0m )\n\u001b[1;32m 39\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36msimulation\u001b[0;34m(self, sweep_dict, states_list, configs, env_processes, time_seq, simulation_id, run, subset_id, subset_window, configured_N, additional_objs)\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 254\u001b[0m pipe_run = flatten(\n\u001b[0;32m--> 255\u001b[0;31m \u001b[0;34m[\u001b[0m\u001b[0mexecute_run\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 256\u001b[0m )\n\u001b[1;32m 257\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mexecute_run\u001b[0;34m(sweep_dict, states_list, configs, env_processes, time_seq, _run)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m first_timestep_per_run: List[Dict[str, Any]] = self.run_pipeline(\n\u001b[0;32m--> 248\u001b[0;31m \u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list_copy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 249\u001b[0m )\n\u001b[1;32m 250\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mstates_list_copy\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mrun_pipeline\u001b[0;34m(self, sweep_dict, states_list, configs, env_processes, time_seq, run, additional_objs)\u001b[0m\n\u001b[1;32m 202\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mtime_step\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 203\u001b[0m pipe_run: List[Dict[str, Any]] = self.state_update_pipeline(\n\u001b[0;32m--> 204\u001b[0;31m \u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msimulation_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 205\u001b[0m )\n\u001b[1;32m 206\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mstate_update_pipeline\u001b[0;34m(self, sweep_dict, simulation_list, configs, env_processes, time_step, run, additional_objs)\u001b[0m\n\u001b[1;32m 178\u001b[0m states_list: List[Dict[str, Any]] = self.partial_state_update(\n\u001b[1;32m 179\u001b[0m \u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msimulation_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms_conf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp_conf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 180\u001b[0;31m \u001b[0madditional_objs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 181\u001b[0m )\n\u001b[1;32m 182\u001b[0m \u001b[0msub_step\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mpartial_state_update\u001b[0;34m(self, sweep_dict, sub_step, sL, sH, state_funcs, policy_funcs, env_processes, time_step, run, additional_objs)\u001b[0m\n\u001b[1;32m 122\u001b[0m \u001b[0mlast_in_obj\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mAny\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdeepcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msL\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 123\u001b[0m _input: Dict[str, Any] = self.policy_update_exception(\n\u001b[0;32m--> 124\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_policy_input\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msH\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlast_in_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpolicy_funcs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madditional_objs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 125\u001b[0m )\n\u001b[1;32m 126\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mget_policy_input\u001b[0;34m(self, sweep_dict, sub_step, sL, s, funcs, additional_objs)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mcol_results\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_col_results\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msub_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mkey_set\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreduce\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcol_results\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mnew_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkey_set\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cadCAD/engine/simulation.py\u001b[0m in \u001b[0;36mget_col_results\u001b[0;34m(sweep_dict, sub_step, sL, s, funcs)\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0mpprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msweep_dict\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 40\u001b[0;31m \u001b[0mexit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 41\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mpolicy_scope_tuner\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0madditional_objs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0madditional_objs\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'exit' is not defined" ] } ], @@ -969,7 +1017,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -978,18 +1026,297 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
networkfundssentimenteffective_supplytotal_supplyfractionOfSupplyForVotingfractionOfSupplyInPoolfractionOfProposalStagesfractionOfFundStagessimulation...age_allconviction_alltriggers_allconviction_share_of_trigger_allpercentageOfActiveProposalspercentageOfCompletedProposalspercentageOfKilledProposalspercentageOfActiveFundsRequestedpercentageOfCompletedFundsRequestedpercentageOfKilledFundsRequested
6(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...4889.600.6014020.0122414.610.634.58{'percentageOfActive': 0.0, 'percentageOfCompl...{'percentageOfActiveFundsRequested': 0.0, 'per...0...[1, 1, 1, 1, 1, 1, 1][1140.99452829493, 973.5581573746348, 238.7134...[inf, inf, inf, inf, inf, inf, inf][0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]0.000.000.140.000.000.10
12(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...4912.020.6014020.0122437.030.624.57{'percentageOfActive': 0.0, 'percentageOfCompl...{'percentageOfActiveFundsRequested': 0.0, 'per...0...[2, 2, 2, 2, 2, 2, 2, 1, 1][2178.391649954617, 1746.2717789589933, 428.18...[inf, inf, inf, inf, nan, inf, inf, inf, inf][0.0, 0.0, 0.0, 0.0, nan, 0.0, 0.0, 0.0, 0.0]0.000.000.330.000.000.10
18(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...4934.450.6014020.0122459.460.624.55{'percentageOfActive': 0.0, 'percentageOfCompl...{'percentageOfActiveFundsRequested': 0.0, 'per...0...[3, 3, 3, 3, 3, 3, 3, 2, 2][3001.7742910703023, 2359.5749868455773, 576.2...[inf, inf, inf, inf, nan, inf, inf, nan, nan][0.0, 0.0, 0.0, 0.0, nan, 0.0, 0.0, nan, nan]0.000.000.330.000.000.10
24(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...4956.910.6014020.0122481.920.624.54{'percentageOfActive': 0.0, 'percentageOfCompl...{'percentageOfActiveFundsRequested': 0.0, 'per...0...[4, 4, 4, 4, 4, 4, 4, 3, 3][3709.455194161197, 3028.521847490869, 700.333...[inf, inf, inf, inf, nan, inf, inf, nan, nan][0.0, 0.0, 0.0, 0.0, nan, 0.0, 0.0, nan, nan]0.000.000.330.000.000.10
30(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...4979.400.6014020.0122504.410.624.52{'percentageOfActive': 0.0, 'percentageOfCompl...{'percentageOfActiveFundsRequested': 0.0, 'per...0...[5, 5, 5, 5, 5, 5, 5, 4, 4, 1, 1][4271.1418991733435, 3559.465322640449, 795.01...[inf, inf, inf, inf, nan, inf, inf, nan, nan, ...[0.0, 0.0, 0.0, 0.0, nan, 0.0, 0.0, nan, nan, ...0.000.000.360.000.000.10
\n", + "

5 rows × 43 columns

\n", + "
" + ], + "text/plain": [ + " network funds sentiment \\\n", + "6 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4889.60 0.60 \n", + "12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4912.02 0.60 \n", + "18 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4934.45 0.60 \n", + "24 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4956.91 0.60 \n", + "30 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4979.40 0.60 \n", + "\n", + " effective_supply total_supply fractionOfSupplyForVoting \\\n", + "6 14020.01 22414.61 0.63 \n", + "12 14020.01 22437.03 0.62 \n", + "18 14020.01 22459.46 0.62 \n", + "24 14020.01 22481.92 0.62 \n", + "30 14020.01 22504.41 0.62 \n", + "\n", + " fractionOfSupplyInPool fractionOfProposalStages \\\n", + "6 4.58 {'percentageOfActive': 0.0, 'percentageOfCompl... \n", + "12 4.57 {'percentageOfActive': 0.0, 'percentageOfCompl... \n", + "18 4.55 {'percentageOfActive': 0.0, 'percentageOfCompl... \n", + "24 4.54 {'percentageOfActive': 0.0, 'percentageOfCompl... \n", + "30 4.52 {'percentageOfActive': 0.0, 'percentageOfCompl... \n", + "\n", + " fractionOfFundStages simulation ... \\\n", + "6 {'percentageOfActiveFundsRequested': 0.0, 'per... 0 ... \n", + "12 {'percentageOfActiveFundsRequested': 0.0, 'per... 0 ... \n", + "18 {'percentageOfActiveFundsRequested': 0.0, 'per... 0 ... \n", + "24 {'percentageOfActiveFundsRequested': 0.0, 'per... 0 ... \n", + "30 {'percentageOfActiveFundsRequested': 0.0, 'per... 0 ... \n", + "\n", + " age_all \\\n", + "6 [1, 1, 1, 1, 1, 1, 1] \n", + "12 [2, 2, 2, 2, 2, 2, 2, 1, 1] \n", + "18 [3, 3, 3, 3, 3, 3, 3, 2, 2] \n", + "24 [4, 4, 4, 4, 4, 4, 4, 3, 3] \n", + "30 [5, 5, 5, 5, 5, 5, 5, 4, 4, 1, 1] \n", + "\n", + " conviction_all \\\n", + "6 [1140.99452829493, 973.5581573746348, 238.7134... \n", + "12 [2178.391649954617, 1746.2717789589933, 428.18... \n", + "18 [3001.7742910703023, 2359.5749868455773, 576.2... \n", + "24 [3709.455194161197, 3028.521847490869, 700.333... \n", + "30 [4271.1418991733435, 3559.465322640449, 795.01... \n", + "\n", + " triggers_all \\\n", + "6 [inf, inf, inf, inf, inf, inf, inf] \n", + "12 [inf, inf, inf, inf, nan, inf, inf, inf, inf] \n", + "18 [inf, inf, inf, inf, nan, inf, inf, nan, nan] \n", + "24 [inf, inf, inf, inf, nan, inf, inf, nan, nan] \n", + "30 [inf, inf, inf, inf, nan, inf, inf, nan, nan, ... \n", + "\n", + " conviction_share_of_trigger_all \\\n", + "6 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] \n", + "12 [0.0, 0.0, 0.0, 0.0, nan, 0.0, 0.0, 0.0, 0.0] \n", + "18 [0.0, 0.0, 0.0, 0.0, nan, 0.0, 0.0, nan, nan] \n", + "24 [0.0, 0.0, 0.0, 0.0, nan, 0.0, 0.0, nan, nan] \n", + "30 [0.0, 0.0, 0.0, 0.0, nan, 0.0, 0.0, nan, nan, ... \n", + "\n", + " percentageOfActiveProposals percentageOfCompletedProposals \\\n", + "6 0.00 0.00 \n", + "12 0.00 0.00 \n", + "18 0.00 0.00 \n", + "24 0.00 0.00 \n", + "30 0.00 0.00 \n", + "\n", + " percentageOfKilledProposals percentageOfActiveFundsRequested \\\n", + "6 0.14 0.00 \n", + "12 0.33 0.00 \n", + "18 0.33 0.00 \n", + "24 0.33 0.00 \n", + "30 0.36 0.00 \n", + "\n", + " percentageOfCompletedFundsRequested percentageOfKilledFundsRequested \n", + "6 0.00 0.10 \n", + "12 0.00 0.10 \n", + "18 0.00 0.10 \n", + "24 0.00 0.10 \n", + "30 0.00 0.10 \n", + "\n", + "[5 rows x 43 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df.head(5)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "df.plot('timestep','sentiment')" ] @@ -1003,9 +1330,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "df.plot('timestep',['funds', 'candidate_funds'])" ] @@ -1019,9 +1369,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'affinities_plot' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m-----------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0maffinities_plot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'affinities_plot' is not defined" + ] + } + ], "source": [ "affinities_plot(df)" ] @@ -1218,7 +1580,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.6.8" } }, "nbformat": 4, diff --git a/models/v3/debug.py b/models/v3/debug.py new file mode 100644 index 0000000..630e8b0 --- /dev/null +++ b/models/v3/debug.py @@ -0,0 +1,12 @@ +from model import config +from model.parts.sys_params import initial_values +from model.parts.utils import * + +import numpy as np +import pandas as pd +from model import run +pd.options.display.float_format = '{:.2f}'.format + +# %matplotlib inline + +rdf = run.run() \ No newline at end of file diff --git a/models/v3/model/__pycache__/config.cpython-37.pyc b/models/v3/model/__pycache__/config.cpython-37.pyc deleted file mode 100644 index e58725d6c5be2952d594f8555d7127db7ec1d96b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1194 zcmZ`&&u`Q?6poWjCNr5|EiEmDU9yXWG#qA-xB`N0K|*3VEENY|A~$xYrgj|Jo~nby zsa*LFIKYvA$yfH$3x5D7o)e%#0!MlI{671==jSi~42S&yM)vw%@i_{DPk!=!Bmf@3 zYyJmA1Byg|{WlayhB!nXM$!>CvSb-Yjpihfd8iG zc`&_n4krzsO_A&Fv64$70QM}Gj51-#G<5MEFRhE8a$|w&KRT_M2D-A-*sUF?Wkrih zX<2AeQ6=4g)rH?)7|UwcFI9EO7lq-#kg{aP6bC|;#}F!|jMb&8S3Y^W&YUBt2Iga9 ziDktJ(VQFzX25l|Cfaf$Ah4&FHT9n+n5WULbL#g-4(&Vi%%OiBs;4o|Aa(IAIv(VbLRH1Cs!rghpseDBvbXpkD%zkgm zO^9tmFhQbsz)o+t7^*&UUD^sldlGI7+U+k^`|h|-wUiJjtZJ9oRSoHM41V1KgEvY- zcOUM}e(HzzKNsHl6*XI0E{yK_0I4@UZ+!Dz>;VYSHi}23xCDF7GPy7Ni zGb>X7BGTZj^)v}x2Q<52E@?Tv99{eB0*+Ma$G|Jp?8cgy^D zg}{6Uulg7xL=nXt5&QKx79R1i#SPvNKJgvKyh#F(`Mf1U5{foyJ9(3LM3;0O4tP)W zNnZ@eKn%%HjL68zTYN>Vl2wO8eoKtW7;u|*_(V*|#NjT#Ev97ZaF4I;TYZnO?;|#( zZMH%C7nt3lgC83gm~7G^3y$ypbdR=w#u+ACtb2h-#G>Q3*e08>EjFd2A0Tcvo}+J` zkZrcgwvX?Fhwb=2dz-ERw@Fvm(FNqm-eK?3Tk8nu*wKljw}D>oYFcYLeTcsOjjqx4 z?-6;A;^$~*w%*YaT1jO4CV;{4iU@Dg#ZDrc9~$fEVcrxC$v_Wm=R=dw9K1 zT|y@j@I$2&&EnHUX2}6(3Pg9xMCvTz;Ml6FlG=}RX4UxpOKNQ!20t};-{7wdE+ND& z935YIH~lQnZhV-gVvH&|1iSOe*NIGoiXPN^cOk6klSqz1XK-$?Ag_!MA!lU*Rh1=Q znpV#AcZEDjVdrbh2W}5uwFX2ZjkTv6htSd+3=P2NFFO&eFRDD%S&>J&h}fByNvb1# z#G*Q!N+wR3<%dw~8Uu=Grb?bHqb!e-C@(ZSD2kI^=MZx5+~h6?5QMamxO9I(@}9+( z{PAq|LNTdkB$11wM9k(zTGSG69}^JE0yod?E;ERIZz)l&ibaedg}Wb34$k zH>SbPN;62xlEJmAQ&R?~a%#<*rOa|oRx{We~6eKR?&`7{>LQJcG1KMH04!%TL>~-E^C$gQ1avfK$ zocIU0^5^)#zt#XaoR9OXW4gU!o3Jir0(;%;sC^B(Wxe$Cr?$Om}9hj_?Gc*Mte z4E7EQ@(G{dNzJ?Y7N6oNa_ES3=r-wHBhvrkUL(9iLfXFAy|_a<*N7oJqkXzVCv--q zWbnyWF(jjp4!%p!8)rVgfx4ZeIWnCk%@|K}pk2*4B{bLR+%?{kW!iYJnbP1Ire#S5 zNwPwmv6Y&8W^!6oU=W4miA)74xCv>Q*c6GTV8xHcI4=23{#*0d1niV3_MMU3gnPxiD=QL`rR>`z> zGI0hfG#pq&m@4yh9WfE5ktj4hEsD!Uoe+fUZK{?b6d|`P*h0TLa@%qXKaS&fib@sZ zRIbib9xscm;#6oAzhwGVbs8VYbXADtun<@9Qcz@aQfMYt@zvv)7x0WRg)$4iZi-!$ zYtvs*eJj`lI7C@B96xmBF0AuC0-^S*~QqCI~EaE%Yo{Y4G0v8=_Xs_|SSQDyOj7 zw12f>|F~|)H@2%9aqaCk(l%_zh6MYdRF%_bwk6d=fB=Q?1!(MsXa+NExyVIBZ|vFC Heu4iJ^r{?Z diff --git a/models/v3/model/__pycache__/economyconfig.cpython-37.pyc b/models/v3/model/__pycache__/economyconfig.cpython-37.pyc deleted file mode 100644 index 112bd5d7e3f70f9ea165ab638e1e4f14ef7a0479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1041 zcmZ`&zi-qq6pnMrUG6UTtJjuNmLRbl!=1!jAxbMGB-DW-1}~8tyH`^?j%;7Wv6hvU zi2+7d{v5ANK?_e{2Q8cmHrZ+5n!wGT*?^ zfFcoKzlQ?J5QoU)mT1WcM>R$w#%=ILq9YTW$S&^I{#f*6ANOnA7O5QIfgIwY9O021 z<1zR1SXFSxM~8j`AF zCCv*}p7W)dMQ(DYR^TX=mboS+Rnn!b%6*C4SXQ}S^KNc9L`YFEWAZbhipv`WNBf#f zRx-m4yiP1L;JH^3Z8;H*Ctp<*0!@;+Iq+GbLnjWsa;Ta`xDTao8Q}ph`6k!JhB0dN z0Fnw=e?|o82$tCcV*`t9Xj|tX&jy1$=-umH2IJYPEG$=LW>v=CT1^U@*$b96pSIGZ z4)XFGRA?}ujB-;6vd(y!k*rjfohfxWuM2{3y$x%f0tvn4jVJmw(Ayq+^Yi)QLP@qD zg&_J8bRY}ODrFXjnk-eBAF1*RE(o~gua)KHa&h%&Ar;)-f&n`v*A2&cwRZg_v$s0k zhuX%A5X5PycVVCHy9mf%xDIVPL5JXViPzrWrf&JixLipn6_%B2+jRv8YF|aiVDNT9 z=+WWv{4ZIw|3~otze4ks<-+KWFOYcC^~V2gwIX=`|9wyk=#QPSW6=2gBn4f(Y7@I|39Uh#?Wtds3w$UXU{R zp`oFqo=(fe?4O^YC@iO+Geb%piei|ySg|p#X%md^}LT+AciiHsb3Qd$BtsRr@{zd0>l?! zVY)AIU%?w{A;b^((`#vE0S=B_K0u!6~C zJW<@Z&`gR#&fLbLZ9rL(Bj)2@22tQv6xctyyl_EtYjx>z>o6X}$ciZ>^HFP7Tb$ph zqbMAH%{2$PJJM<@(5Y3Dfh?e`BGlTr^~PdmCMj6Sax?5L0yWxg&b7FNWRYg+nKC&6 z<9aD5Fv29pG7IK`lzsdhHQtZoOy>}@k!0lsXO_h!6xzglB}*~U!DqNLZG}qXI+2N| nKblkg|Lomj=Gs5eGm-GC`Xy!y(WdQ|M?GYZhO~n#q?_~uk&L)Y diff --git a/models/v3/model/__pycache__/partial_state_update_block.cpython-36.pyc b/models/v3/model/__pycache__/partial_state_update_block.cpython-36.pyc deleted file mode 100644 index e3f4fe98c066bb3ea95d1e6ef79853c28b685dd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmZ`%JCD>b5KgkYdELICpgDwSLvfLyMJG;&1QkN!QMj?Z@sPDPu_KRn(fya}sQ621 zui`IIG0p~Vksy&jkH_CUzL8%n7Wvitr~KPA2=0QDFCqICE!+~wK!#25@wkWM9?>4b zM1?SgnVj54a!P9kF?kY5WjuNk$jFn!8O&vRI~iCREL13SSQ1iHJ!LC-_8}8r)Z7cm3?kUP~lT+L=aG3b4-(!YZ+8$jmF#b`3aXG*L1H?Nm!( zNn6k-78(!;#l+6&Y%>r3hOIkc9cAl;cF09_40u;9r+;oVzn8`y zj5hd?p(tbGHQ{sG}*f;6N*i6>E*$M<+V{Q~ug^DF=W diff --git a/models/v3/model/__pycache__/partial_state_update_block.cpython-37.pyc b/models/v3/model/__pycache__/partial_state_update_block.cpython-37.pyc deleted file mode 100644 index 8849d9916fb5cdd48351db68386f696d43ee835f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1161 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 Jc($nf{R6Q&hZ+C? diff --git a/models/v3/model/config.py b/models/v3/model/config.py index 0d2dbbe..d21ceae 100644 --- a/models/v3/model/config.py +++ b/models/v3/model/config.py @@ -15,7 +15,8 @@ from .parts.utils import * sim_config = config_sim({ - 'T': range(100), #day + # 'T': range(100), #day + 'T': range(20), #day 'N': 1, 'M': params, }) diff --git a/models/v3/model/parts/__pycache__/conviction_helper_functions.cpython-36.pyc b/models/v3/model/parts/__pycache__/conviction_helper_functions.cpython-36.pyc deleted file mode 100644 index 29eba1a2cb31cf130ccaa918c186864d5a15d362..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15931 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 diff --git a/models/v3/model/parts/__pycache__/conviction_helper_functions.cpython-37.pyc b/models/v3/model/parts/__pycache__/conviction_helper_functions.cpython-37.pyc deleted file mode 100644 index 8ada600b71f0dfe70898ec4569a7ff4e2a58bf4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14983 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 diff --git a/models/v3/model/parts/__pycache__/designed.cpython-36.pyc b/models/v3/model/parts/__pycache__/designed.cpython-36.pyc deleted file mode 100644 index 3a90629ddc1bc355ee7d8a787c0f115dc23890f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4791 zcmb_gU2NP~6}CP0#QAOhnr7NGo&Ie*-8R#--PJBEq%>`zViQUm1ZxQ**XL&9#$ylH zo^GbfJh4a!fy4t60`P^%J z?!D(bKi@q!*GET(YVA+H`^S=|{Zs3?Ec9>Ujz5DSjr2fsbk!P80j&|3b<44IjS5Z? z_W+rWO_noAMQ4ZxoMEz^5gK$xX~-F)Vdn^qIOC%5c!EZ04C9adwBStAI8A(@Ia4%A zQ)s7YnvSA9N;7l}?F`LQ3GFdDPAAaL(j1*cTcUY7h4wg==``9CbcW8NouhMf9_>kb zjV_>_r;AiUdx|d6>uAe#nXaHcO$$^-dxoykBHFWbjjp3TNBTppa$^^WwbhEAj<}vD z;&}a05P4g>I^O!)pFbV0?GB&**MI-_@1@$We#zHIOSO;ZfB5M)KmPSnZ9`q3EY<%0 zH@-ew^0hZcwB2hMn;K#C^kO|C5md=d-0HQfi*GM1UR}7pcxA;86F;n#)z^jXAl`OH zSE4Z43|i|eJfdQxL-D2%$$IG4MLOt*B(~SRDDX_y78g5=`^&iF*C2KZq?h2RY3>zD zEX|U3Oq32QF6GH88qk6*-K4I--K)fq37Q6vHfqy1Sj~E2&j;>vcD^cF;0>`jBUW309eHtOXW40|aIzS3fzmd;fPNK3G)gSqxC?}hu{AT&<_wQYZ%gDG0 z(G^BX6#AYU1TDPsq;O+S#DsZnnp zYz=2NjAY#n{HKDJ_e~;CV_?65#`Cpv1Oa{&vvW0LTsL*e$=$UJ$8$HPe~yO)T)kz; zw_qQm1lw$x@|ucqPyiy_ObYm7m9!~5vE9D^6DqdNa1G-IFs^~GHpZD4_xN*+n|t1G zXmH0=fi?8>MvjL4flLzR+qFOBw=}58(mu^M@Ap*d1_reW7^pjR$JW|e^h z)3vznhmB^E>a7DKvb3_t=J}i%tA7ApV;e#PGE*PdnslP-Q`Zwi(9NhQ82RS-dx0 z*yb~PJl<=fSAk|ekEK19?_J`Np4jQyzt8&V5tL7H?0dJ|zztER%6Uw8 z_&k_vsxpnKmus-)eUtyDS92u!m!7G48DBb4-_@K7`;(i!Fwa$lS_oCHjDkQAlgt|L zzfIXvV7fK*;ZdFIL$$XUc9(py-}a(IPA|PII=P4$G6?wz;qVYj83f)AI|X&lPQUBZ z`{v8)oz8Edm?j}()OWd8dJOfdAa%TQ_qmJxz7O54estYxkoQ;>bBd?-aa3yO#gt@b zJG>XhI)T)w`To$WoUO~-{mOMynbqD?F5B(64BOJ=rHokfckN<`{T=ET$->t!kktdF zxGMR;lA+)-!T%ACHmc}3JgBJ*)NMY?<#p7bFn7!+6isb#lZJ_^#Wds{ym{e9*G>6- zq?>OQmoUZQm7UC#?IqN|V#2*`O_z6HO2-SV-plDYk?FX$SE~M_PsOj|xpF?W!e$-E zS0ilj`8gyvPK^eo$FoE4f)}AQtu-YdHN%Bw;s>$haL)?4^W3|_Vu8ghixVu4v%o)c zG|4rjtg?6=A{_#)(z@98L?BP`TRs-6!=pN6sS|~&NLBf!iW*fTs4Z9WKBXvMF{8Z6 zj~v!2>Q!JU%S*6S-@@L=08hGW8AbYyJ*|E SCvg|;0X*k_L+B0L*8c(bQ2x^Z diff --git a/models/v3/model/parts/__pycache__/designed.cpython-37.pyc b/models/v3/model/parts/__pycache__/designed.cpython-37.pyc deleted file mode 100644 index 99d2f4660e650b2cf3d931df73c02c3694000f14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4425 zcma)9&2Jn@74PcrnVt{Fak91vA%qZVLWozp;zKKw-Nf0DERi>ogS?CaR(q;#x82h- zTV3PKSUo2rZdq|c9QNQGkvOizKfoW5145`y2=>5Ahy&bm;`ge1#!he|x>et=-mB{O zdmnwfUauN>Ui{|h7s;Yw{GA4q$3*7?luV-H24{)UX1X=o7Fsj0yH49-2DiAKxQ~j~ zLu+s+@w=6F1#2$%erdF;+~*av0k84^ZH?D>9c`UAcoS`d&+s#7n|zj^MLWaUn$ep3 z3X+Z07E`sb(}}WdV>9V>_P%16#U#6iD)?CNNJRWj+>srd=<)a{F3Ji@_8BT^?6O@` zTGE!*A>(Ww$A4-bInRu-{f0G1ueqG@lRNFF*4Qm~dD1_sJTng2F=y$?>QO**+<9tg z8D4JZPVVL&cR#mrF>h5^I2Dd>XYoN4{~9-HS;|U!Pn5kAZ|?{?eaqC1V*Qq_8ohzs z>fedFVal;agP+PciDevRt(r2^zH$ZDdR^sqc6xCqQf^o< zvXUrOuIwdoCY47-aVnLqhi3~Wqer8Dl$9S^*?Z9_Q*RA4|6=K(=xv6ZByXhL{V*9o zs;}IBD8g=rJK{LX%pNF~3BsEQsH#y_NA){HTtxF?b!n&9jh4br5{f+@%5X_U{a&`T z((85yDR|#cJINr6d+EwRh$!vga!dQ~EOmQ4N|qo@W=lNE;_WozH~J%hhHhAX6q1{1 zu(J#7g1KnkFvTUzO))cr0j+Dya400VI9mWdwvDla;-Yx5G4_WSrE$mj`T21rw|7}y zSpb$6jNH#F%f_b{*A38APoc3uQ`I!L*Nx!|&EwzW3aA5=+VD$oGl?5`|9M;={ZU$z znY<1e_JRQpL0(@rUYd6>TccSZ(2;H)9C^=5vm>K>3cMe(aWL%X0XXlB8xkkY>)7Mx zRarT7$IaY1!pWX7X5=n5XOTCD~1M3gWvhQ(3@03?$l*L>3kHYbjUny}=m znX*E@E6&q|&Ec$sLtQuP2^n$a#4>`ZEb8qmVbU2S`X~?ZJ=R7rpsqT%CBhCJ@8hik z)A!Sr`zx^HJ{@0KFx%FQfEPE!*QmNc)z_)IOx1O&zDv~&RPC8=I9#KRYddk0#ObzT zaXXkyf^oY7U$Cc*UNxuPLb77JitXV>UHR(wozXWq@iEUqTJ}R!hUJ?!!)w{B%Fd&Y z+N#nFn_(tfWarsM%*|pBuXTZ4VlHbi@gwY=nrQHpi85HLr4e4p7&|cn!vQBpFtJJFbj=MP>{@o5lKqvFC{A(%Q9m z9qw><+vFY@724`kiwEEz6g$SXyhdEd^*rFto++NgNFf1+TZ4ht_iXV6jLy+AUtKdG z!zn;lwPygrB<_TpNmOFL@p>fQrX7u~cuS5R?T9Gb=_Op;#H4cc(FLJJyhl_% zk2*1V{I*__K)W`rS5Y@NIqnARc49jpfI~*G2l8y7&h+ulvKg}qw9Nr)zJ6y3b7mEI zbXnCFAA-I^wn-0NbDBu}3j@x^PKh`-w@aki1=28vlcuo1;grYK(c8mo(#SnR$e{&< zEk3r!!MFyD)PX*rCkHmTi?Fdw?lP@S^q!iZ7^CaMtHtg^6MN@@UF?z@njyL>eaQ9I`_hZoHCP zv?}5*?RY?ZYlyxAi29IkM_J+T$gPPVP(@BpS=pc~7SMZ5i2X59-lOW2V0-M)#C>8` zLoUCCTwkAF1#vnZh>wT`Wy3|KQcdluRMOHxKkTcS}>yUy{_VL9VP$+-W(- zFjam+Nh!Rc_&yOmM1|b*&Dyz4l$!C>*|wV#jZk8_2Ed=Dz4H?^7D@XC?LnUK2k^@% z<Od|DqrK7qW)v AtN;K2 diff --git a/models/v3/model/parts/__pycache__/exogenousProcesses.cpython-36.pyc b/models/v3/model/parts/__pycache__/exogenousProcesses.cpython-36.pyc deleted file mode 100644 index 0359756aa04625af78774b8cb50958c4fc501dbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3476 zcmcguOK%)S5T4i0KD-;-c{njaVMIdgMb0`-LLe3)poE}EaR_$cFeI$n)4krY=cVr6 zup6yUhGTvJT)DtM;KmX71xS5G94!6;C#rhZleLo&DT8rOonN)tS4^vk^o1ZOubGhJ=tX*C6eG6``RCmhC=diy@#5un*Q)E;Us2~agiIM zon`%D2dA}0kVd^YS@!bQOFM;etpg(>VKI>;OhmDU8?Q6;Wwg=9eG+F8%Xfk4Hi@z> zSwM|;lm>Zcoq@|&b8p+@-nKz)9s^pK6TNj2(vXR{ruMH{R%Onzhy+YoNv7;D=_orP z3CHv+8@^QTLlX6vXu8Ux9p&bs_zl`=XMt=7U6O1tRV}jeph_ zyJ^f8Ne~gfg$^yk-l2xgC-1EfG&+JF=PZ$)J`#jUz!{Ou3lrERhAf5228qC$PSA5;Ix_MF9_zB# ziBiBIAakGX1utx|me;!Q&ZRwva?rsC=o{j1+PNg>&m&wm{8RfCc5|1&)06Kx{zcG46hO>w*_gD zuvnKgX)i#Bnpoti1=oQ)bg8{%a8Hxig_&|v!#!vzI(aL(3&p8fQ7+UV5(~&bXe&$HR;EyHJ4~{kROUdHMHsg!87Q-V zFt^iia6vBuo`P9jeQ&{L0#C;<9kT+zx>Ymz+c4f2YZWGRtY1Or1+iYnq6K%gv*qwr zsY}?bA#Lf%l5{uAaI;saOUpZO=g%5DCCH9Low2-B?e0C4h=Min9_-wdI{ zk+K}?$ID};3fCvqCOcr~Kt|7){0hweZyDvUV?YJ}Hfn$TkX^0)dVqR)9!G0M9`&cl zKYkg-yC~j6@v1U4g_&9#tI8=@e>!2yFx#9}rKA^UgAv0sU^o%V%BY$UL6{9%P~Cwn z$UFV7EC)ahcWASIz#`2ZzlOCKD>0LN0d>!zXrb62r2hmv`oi${u#=Ap?C7B`v$_ay z39mV2SE`i>c&q;cNp5^h diff --git a/models/v3/model/parts/__pycache__/exogenousProcesses.cpython-37.pyc b/models/v3/model/parts/__pycache__/exogenousProcesses.cpython-37.pyc deleted file mode 100644 index a7ccb55d329a1c17e6e047d9f0be16055813ca17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2313 zcmbVN-Hy{n6rOP$$NAaNc9(@+Rjqr2nhI?YTtFp+Sh66YQb2%28_`B4Gs&8DY%^mo zo0W4#FMGj5^rlkZqHi&`l`8QHz3O)+yV+1ysKS=djAzc7pYwg^oLeg^4TfjE^XJdM zH5vPhevTgpotyad4uoKW$E?q7>+~za5tZ0|!fabb>x$|xtnUd=)X>(1FY0K0(GX3v zb-^FAPU|gJV)x&2$PPFBn_-m(@U-x`_aOO!#GTaGLZXHO@k|! z0ufHNH8E$7m2S;-Of8Z5t5oe7KaVC-=Q4ZyB`&PUDT;h?j6aMEs3>i! zNh+l7w2YU9Dx7HJlBsd@J;Sx}22qj~x#3eqE>+}9<aA>Q58-1o{W%14UG6)s<2x3f1hHxMfrVk&&^Zr ziHh)szYN~DwcI<&_|3y_EopkO4AoJ#4-uyO$c({Ar4!4yOv(KSSuZ%wFe&g& z8-e*eEfTR!MMImFC|UmXgq(zlFlR@Kc1V*4qa8bPH|gE&^=m~Q#n{zsp3H9#^CFCG zpj#yy;3%k-L-4fqVV=%UXDd#C)2Ywsi2TK=JY5^o^#``t4UVt>9SrnMh&f-|$m71_ z@HJ#~k9(Cx&t3FR#;o2Z^!y6=eF1B98mMf=B%2y1$*8s^BGksoglR`8Ls1w8r)G+F}BRdtme&|H@0VHeHcZf?d^l)r%%W^`OiY+_t1?-;Dl2} zfVR8B0h!*--CTl-~#tx$|IQZ30&m+ zFc+6ZBqm}m#v&9$F?u_I%bY$Ti&>35$>W+LE~uji>HBw$eO;!n=O2&0pYdhwVXelY ziTrjj~4FgI@epdwlderMyNuR$w{T#+_+#REOUOj$z6}B zV#8eDR7Ih7ZYs63lBvW9ZDoewsCG1iF$xAtTWNPLu$j~lA|%awFkdkvl69UHO0*qI zW(7=J^@K@Pl_F^*7ybD>&ccnGb*VfPNw=sQbmRjmo9k-f*Yo(P5v7TNmFb3M@xy#w zHN%)4inc&UZ$paDczgk!HpaX&KA2SF=1YI$Jo)|)3j35$Y7>F2#Vh2WI7nryL9WjBi z*n?PHg&i@)YZ&7WPH}`04siIUFRlZB&JK3BRFys5a^eB^{4jg>wze;`?A7$clkev+ z%jyiqKF`$GW5%+(ja|&PH%Z*~32nlU+4goVeI%&YpXj_BJ~HTD7Uk)g@0c?`$)&Tp za9Yjp*iG&EUb_ZXJKr^{+-@k<`u#;=)@tEYVbUdPi)DJUGEH3haE?y;pj;NdE45up z->X*E>W!Z$qnwgDtK@G9n_R^><=AmldXqBDWfwiluZY zCXIR`m0p#Y){>7ekEgpp<@ef9onzWI>iezpo|XIb5Dk7mOO{2BiCkz|o`Q5TDbW^H z^01T{HTd{{uP+LxOqQ&VlDq)aE&tV#_4VlOd~}cYR~qlr@5HKGgouxM#G^3m(BL$J JcJd}B^$!oW#&7@t diff --git a/models/v3/model/parts/__pycache__/kpis.cpython-36.pyc b/models/v3/model/parts/__pycache__/kpis.cpython-36.pyc deleted file mode 100644 index c490e1b6eb8b96bbf40bc6248457c6e273850c8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmYjNJx{|h5WRCgTA>!Yp-K#_UGTt)5GcS@bz!T7z=~Zps-0MIf{4^^{24aH&+)** z#9v_IoDOi(d-r7D(>?oqJU;k%|9p5tfG_x0jPw=3oe)Wos9}kHXUj-38NI?XmUs`d z_?sqRktd;14G0k-BkbL{OSX~3DG;+M9K$Z%Cfjty$Q>>GVcwcni>7#1cS<=QuZZ7Z zHt?wxwJ>zz8f86mbC1rak40(Q#$)I4rH*M!Pd~SOT^Yqiu0_3(q7l4SwsPE7x-+6# z_k!m_X4f~TrjknYJ=2oL@r^CqneF@}7dj7dRMwi1=P0}*B?63bg7uixEb&R%8X9M% i4KYh8oM%?{w|}AbYD5k{yr6BZR+r&tU5Guz;pi743Sl+? diff --git a/models/v3/model/parts/__pycache__/kpis.cpython-37.pyc b/models/v3/model/parts/__pycache__/kpis.cpython-37.pyc deleted file mode 100644 index 76885e479578e596899fd07da332d84e153aff2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1973 zcmbVMOK%)S5bmD$%+5aI1d>gxNIYV+IqcpzSqN~HD8g|-wzA0zSdF&ZX6&7ZyJyTU znmNG_;0JJUj{FYp969urQ~m+sL{+cX8!biZ|&+*$fCgkM95Sb>I>5 zJAN!51B{Ph$O90JFghh8$_!>sjRT^!2^#0Ekg+GIf^JZ<;Ay|I8hGcNt7~W%bcf7=(w56|LpU}4;Bj^ znESY9`rEa1s77;DFj!lAQ$n3@A5M~?KK3Jr0Afy zhGGMS=7pxj9sInG;s%OM6t_`ex)o7ZI4y@$k%gTBLjwCXH0GB)}?t%5@m~^QA8IyPyyo&cwypLincI_1?U0u7d=XFe5 z@crhPu$c8tSI6mJFm=~3txEliHFO{R7j#%tt1Oy(s{QPOFHaAjAX`?X`d@HwUBLYt z3x{iHd+^;0p%Tgj8jF$Usue?Dilb@#oo+ztx-9cN69u%>hh;j!rX-bj(Wz%}WTsn* tX0N7;!2AddgFx@EWmo4}mxs3veXX4GkC5ULYYe**yq0&*>v}f4&R+&loT>l- diff --git a/models/v3/model/parts/__pycache__/metrics.cpython-37.pyc b/models/v3/model/parts/__pycache__/metrics.cpython-37.pyc deleted file mode 100644 index d02c40392574e47bf2ee3c39abf0746153ec86a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2689 zcmb_dOK&4Z5bmCr$L~j+5N}wp*yZ6p#7Ia;D@75Tpa{f@4FrK?w6X?w+wpolGwB|O zI2ubxL1K|OfW&bRAaUWk2Yvy+qOY9x#(7Uv&DgPHB1LTIQB`$U_f%C^f7QK{&u0j< zKYqL0{xe6&UpSaG4La`u$@{<jd_ItD7Btpb@qI*|MZ<|Cca8u=cjRwEMw zqz=*qX@ImMBQiJ0Bo&#F1=0@5W5UccZITXYls==AOh~^YT^h$_N9p&;83k>2scHh zHS#N^5Z82^16_WgiNB-L6{`vZ?MEusqw*E&ieT+&RQdO+qo-ex(1=QB6nOEBZs4eV zVN{uqSP6DjjZ%>v6{0FDKQZ8}DyMfdb!a>M&^hk=qTU5^q~uceyl z@5UoJmLVU;|EQG5!>@fYP$k~&@=n-4=509&0(Y!(p&vT#Y-Dyv9+S!rgdh0QaXSbN zYzRUG#|n^q4Oovv;e#puq?bg#;K8{Yg8*kTqq=&b{!X6nHxKP5Z`rdILj6nBuKZG4OhhWH+ z&Et2HUNdk+D4Rnbihf6K2IJ?MEw?Yjjz0{xZ(`KA1&f^C9t8b%2evkH9keGmw_G2_ zavM6cAFj7=kp@>PjjmlDat6E1f~KJfsBI$h*iSYt3aBU|D*<~2Xd37L5rH-6yY7E* z|LWX*LvK|AE;`%`ogRPCy%!%~Yjsh#JKNvIr60vkRWXKATkxY12PCpMDFUxKQASn) z243om785Ufh`~>1|Fv!{t~mF(wCIAFB!Y`88iuNM1>(^69&`_4@bCE|0h3x=p8C++ z_kCBb&-MG$k~qMGNL8KBprb_FFjcw7!*&ev_E+O}I1aedUG6~%1OfM03sX~{MJZdwq-f`gQc_^;xn|`YeGAG`0*D1o zarQ?WN)`9Dnwak58O#r_wKjFItgp@8EKjXXoh|7V?YDA6-{a${%eV$+^?;?IO3Ni` zgI4YUBbH6$&j7AxbepclpG7U2(+wJbT836>1qi1nt^W}ylL>3bv3-mPR;lpO%4M~wviGqgAjPJ2&`IxwWF+d-wQ^e(g%F3 z%wxwL@ub4f%Us>Wz0I++1jKEyBJuEvVNhEWZ$j@ygGJCJxxF-4aU17fNA|{S<@`EQ zH!h1asfrI^`C^c7!T3dkT${PRJfl|xxq?A1A^4M}=o;6E?xkx*w|+5&d*|20mrEhu zfpH@TZ{uhfjFsjEcr$p+kxC1gvZs&t3Cx@*a}@Sn8KXExhrsL$+@wG=3viob&fbE@ Xa^&)Dgu29sW?DtM{jQy{({|<`oVbT% diff --git a/models/v3/model/parts/__pycache__/operatorentity.cpython-37.pyc b/models/v3/model/parts/__pycache__/operatorentity.cpython-37.pyc deleted file mode 100644 index e74920fedba601a48f1a14590b29dec23ee406df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmd5=%WoUU8J}G)m&+wZJ*}4&n`zy&Ob{tW->GBxA*gkbI7aQpHsO|8aaPhwr+!M!|$(eeE!?qw;20^2E(6;&Q+B7FQ_=t*a zgVsUIc)nF^yLA_H?0Sh8>SdHE?$j$N)4W)p;Vv)zj@4&*nNOje;}t%QcAn4hS+om$ zj?be##~1iHw2OR^FQHxH%X|gxGGFEA(XQ|{{tDVvet};^d!8G2Sgra3J7>3QhAex{ zrXRUkV*=^&Rf?OKB-}c=2NsALJedZWX`HAWlTE-A(+e zf9Q)|bxZhUqdAPTG8>&4Y1s(QPAn8ej>FZOvg+Sx&=HbD|zD@b}( zZ}djn2j8YzL(WGXUwBC*wgNA??zOzI>C3qx@y5*?LzGEv5()QX>H%w}lJa_7z<+R%D=p$r4Nc?sz=enWC_q$kz-}c2d`l4D{+8s}L zcxut|(v07eMl4G^V;gpxL36NCL9#9#9vlWS;Hl55r7|o*l13nneKCc3pE9wA=AZ9v z>_u&V!)vxYalpOA+Yo*yiZ{Ua&3457RuJxP+zHynucm@}3QJ7*bIPLO0~qBx6zjiN;npr0v< z&`gMAA)1Ly53i!={-$`EXDZI)<-n386 z_xFZagAzfpj!Cf!OY9Tu0hE%WxPwtyjVgoDlp0ObDEy`VR`B8f6CakkX(gQokIKgu zRB`&~p;D9gqtH)0s9+~*1;3waf? zRK+Wp>&NS^Vk;b+uP9Qbq_(ot4S9Ssye%R!WYP+;uF^MYL7>8;xm!_E^~0#UyGJTd zG-*u36&SSW~*Rw;Ow2xa-RzX6UZCh-WoNI*)^7 zj|=ayG(UVx<`2A1$CEj4JC^y50DA#f!l3G%jvsPa>gYW;THbDLR*+pqOLpY*29|I7;x*#*T~vb^ zca$pY>J=g{1mPhRFcQ564k-~)tL2L~@Fc#Cish9O8V;$RjRIvfjRjIo(?+ojQct2# z4-}|sndU-KT_|k@{~06eS>gxa*~}AX{OC9{Kk^U*ZYbYDzQj%~%YY(#_qc>Nv=S(;Dn9r76VQC?f~0>t!jBo35u6BVp0 zN~olrLGzU;pagEn3@iu4~P{cR`Y9E6WKxwBt0?JaB4wg(g-0fY~cb{BH zi^ohk+&NgbQoo$K$3|KvyFhL>F;iF}SQ^lj!T27D^7H^`GxwzY| zO`V38_$f{L8BH>tXyMNAlCw#ac&%~&BNT+^>75B2Umf5$bSaH35w-DZ=1k&ecuV^b zLN&vcyhw%c&5J9T@y(#SbUM0n`6L29zZ)sf9#24}M0Ff;@pF93%ODq*2}shnvBP_Z zhG)WjaRBpK`}z~!{xXm)aTPN%kjZ{$j`|pbQ$<+Ejd0K;!s2;v;HbFLaBeR#Sb%4+ z1O-Hjpm7J|k0{CnjiN`;o*E>;kH%-Y>aB@c`XJ!cpKGTMC;l8xd}J?51AC$U57~PS zpfafx-l^zL*p_g>;}m= z{xHKZwu@9?m|=|b;u>ar6GuSczWfNZrTHpHpuGPGDROAa<4+#JC3^7n9l`445y1Zs zPT(`Fbn*nWBRqKmmbgBC0u;$)O3=aJG$rV5X_rSTpoH9p_--m8SFUg<{7(%f!V43# zNhR*X@s)>S9h&z?LR}m>!IIMJ_YtD_T+6kBmqH$mECnv&Kk#(EibyLvGa=1$99n~~2Rgm%Kfw2F=uEM7 zCUlgpE2*pQGXU~ z6)H6;H`J2^rEp@JcoqYWl#}3)j_Lv=SvvGYK(}NxC=Uk;vpIT`LKl?_sys)9<0@QK z0gLjP%K9rirc_gX`B)~P@Ky<|a~bzc-IjlazA#=#MX^v>MMP+UTK3O5%g(#bth3}S KqPL75`u_$a1g1p* diff --git a/models/v3/model/parts/__pycache__/participants.cpython-36.pyc b/models/v3/model/parts/__pycache__/participants.cpython-36.pyc deleted file mode 100644 index dc3dac1371690f1acc5d08754d3a0ea9f97d51b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4936 zcmbuD&u<(_700`Kx_f$he%X$R^J59kl3neD5Ql8w5Sb*)8a9V00zohuu?+30o^j9g zbdRfgytcPSLhDFzB#^QaCzK1E;1VvJIPw=DfrQjI1ecX^;J|55d|&na^2UgTousO| ze*b#!^IrMQYSsPg+1FdYKc{Jb*A{*TzV9N4?;v6t(<7~^GlLZ(bqQp8;Qbx}16^}IO_BH;2w0n+pj&xny^=36? z)OfNuui4V1EwS}y1~%s$e%tl%+vMS17lXH%MD?!UECSK4_%}!yvO%He22HMbMfrvBmu~$c%WH z6{4h@Evsr8XT*cN&gOp1l0jxtiX{z)LChMJ%pUsOABfDviiVjX?q|B-bg@}!x)H%k z$a9wp^MK%8% zMQ15mqtDoWd&c?@kOfRnW`KmtH@m@ z)iU^1^qVPC6&WIiQluU}riw)Hhj`gY0r_zeMUcTHnf-{cRV zXb$DiL79#UV<)aq2`rXHIc7qwoN+~#Wkm^4@qs$QIid3Npxc|^^-qM?LKMXOG71~j z({6*mhN{yBYSyO*$3WXroaU4ZCOLkE`hA%qqTRxQUm7U^oeM$>WSjH)0a^>XXAP&W z{!wb+I2tTAlWR%3Kh`O58-n}r!{q!^mXNu81>2Q-w zsefqfnt-Rl6~jtxP%1vsKJ3r{nqqkvNKcsik27+hY5!p*l?9yQCG)n z=*~&q`3j<}3;`7(yhoU*Y)vHX(2rVEA#H6Z3A{G0mX{R<{ywKeZY-aQINHB5EtxwL z7`T01KaBa;sP5~Cn)M*=`rUv`pz<4e1EpDUvRJkGW^p<%-E(HQM`_aOC=okxNy_k? zJzcH>^b|J`X*O9GSegRt3OQ|X*Om}2fP!R+&gz#64lIsCmI?7I2EUD7GuuO_L|UN8 z`0F_tjfw4nGk1)a5V&YRHfCH@q=7v$nVs7sv?-!ZY5#?C>i+Qrz2rC9A9Xy63&CVCGY}f17Y5nOfnGU`Igy$GX}@P3;1% zEwLD*V)f8Z^jc_BUu-k3%X(_};o|WdY-!eGd4rt38_MZJDIC8gxvXsV%3)Kna5E5X z9uCRrzoiNuDxWUc3;0121FloGQEp(m6NDVj;Pjo~!Ts?9zr8bii7fzD2{cjX1PlH@ z!18sBGefK5(dleeF#07LPoet7i4%~+U=2 z;(-veWBznYlCV=Rar_R(JIQf{a6p1g(`h7sK3~#jn3wkPzs>u*`MjCk4n)YUJm($(B;{T6!TuL@Q?8VnDVHOp%Bz=GWh z4}DVg?Baa&t(_nm2E2tojHtK2$ehWGZXbWlKp2eFn_ay(IJv}%{+wo6@VJ%lt+wK9 d;BN+_D7Z~-jUeMNajy%e>0EH$aMqlw{|4h6V157q diff --git a/models/v3/model/parts/__pycache__/participants.cpython-37.pyc b/models/v3/model/parts/__pycache__/participants.cpython-37.pyc deleted file mode 100644 index 5a281ba2fe2970c2b60de5fae48ddc5bc33eb31d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4895 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 diff --git a/models/v3/model/parts/__pycache__/participants.cpython-38.pyc b/models/v3/model/parts/__pycache__/participants.cpython-38.pyc deleted file mode 100644 index 5dc05a00c96a5793ad2e8e3ee95e7d7e6b510b2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4849 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 Q`D#uUxNW>2b)(z=1)LN1Q2+n{ diff --git a/models/v3/model/parts/__pycache__/proposals.cpython-37.pyc b/models/v3/model/parts/__pycache__/proposals.cpython-37.pyc deleted file mode 100644 index c3718e64f6a17168711fa71801f1fa1919a47a6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3178 zcmaJ@&2J<}6|d^A>F$}a$Fmz}O@!5l1v1IvNy17XWNm<~P>7-&l8BWotwz0FJ>#}# zy4zJfi*5CsjI_4I0j`L{28jdW!ihhDBjQ{KE}U{hIqr$ytDc!%TMON)@2~e>z2EQE z&$``^;rq+g`=dYg82dLhR-c8+Pmt6;GQk9&vI8zGVNb0uo3?%62uHZTW(ThDL<^-S zd=a2*iBPmr`htJK2A!|51N-c2j(os1eORJ6TksvWa8Oz(U6eLT zuVOXMy08|l30wFXTLi*ggr_g+)mDELJL^_}R=2Y1 zPVLrS%|y7vYIfl+HtH@~*x}fbe_PM)VD@IcS#OwL|G8bazv7(LVcmI?EyCQZoFiJh zQ3rKQ~Qv%N76#lEu{YG$Mu%kxmWjh803UxZ!)Z4zvc37O}m>Ba{}q} z%Dlx^-4|V)*+2Q$BX)BC5v%<=5F3B6VBgL2hhc>8%fn1XWiic?vnV-ClVcTCMWoU+ z%EnO|Cx=lfi?UGhG%91IQWX_4%8P0*GRt)sj$c`lUhrQ>m$RN2#Xq~>Kg zJ=6Yb14(zOJypfkTi`U?Z(scFxE~r%W@qiMgBCy zzC|v{$p)78<0MH-n(kLJn@m!v1}(icNvly_h*XW9oQiylN9<*(^x@Xex!r7va(IP1Z$z>2DMw}bj)onS7|%T#h;nHi_sUK4-bo3 zI*gNPERSKrcqmic(eS4-o)r1$qqVI@zbvXOpA2U($W#rV{-CK1p;D!WYl-*DGu>O6 z2O=9g6UNk!kuk^T^oN$i=?{6IZ{WYpJIK+G5zq2%-wMsR!*|i&=RI3~7poI86Mdv8 z+06j=V^o&FCBPDJ0RRKs*6FT+==Q=Vz#YMD;rPxDy902a>^=gmEP@(P27tmbIkS8I zh4IE;jHCFbzut??9YnEABatRDouxUPCVFxfRflO5&x(0oMa9^(Ru(b4nfq;S+T1A7 z-hj(K6>WJ3h1{X+Ta>+pOnaj&FXz?Gg}XFnAE#&9eHu^asky`^`wk6luH_mTSwBFh zBL88ovAiAfZL+;3-$CEno?V)NWFx8HAZzS-#VU5mgas;bmlpLZ{@i-T#@tXZtoo2$ z@UQryweI&o$$srE`+e-x!i@x#U3(WCmJWpvk}4~QY%YQedlBRvYJt3cYKayIH2`V0 z>yEjT@UzBr?#RHCpd!h@FT(w4rmCcvl@C5aTag4FJ0H$V;-8U%M`Yv{ zBYVG7t>!arX*W@inNqZ2W!C$bxtsZ z@1GwIT)Bmcd;^)b)qJMyX`1UzqQ3Q#csl65&PnC>Xz8~pBdouUF2((8L;@1Iv=AYQOuT(|^1&l^ z`j1P7x4_>KZ(Hjzf1g#>k-csQ`|R|O1dYePzv3c9zjKLQ#yDLdelO>~?8E$L>=}P% zjcw5pUBC+O4S*=9+&Z}6g5CxHsjTN-9RPyY_uHhGh3FvF1}m&Eh2TFPXL(kg;ce)qVv?$XWuT>b35p;g zHP3GFfC1PXLn{KfyY$qRZPe>fZ{8d7hqPlG=u#OTH#pd!;pYRtfg%M3gGaedwI5M7 zq$Tz&K9%pGHrV*zXe6%Jomb4M8i1O>5iV8DQgzV5Zljgz@_jnx1`r$FCB^MVdjrYd zO+^ndZn$?DVoVT6m_ex7;5{pJ`uw)NjQ}6=$a3trZ4-Vz#HvAn2i1I5o;CF2&Z}&y xw7+ziQ@o{4P1rZFN)nbOEqf*At$A7d`*@hlr|AO<4XT68P=VvW>-YWb{{m+<>X`rl diff --git a/models/v3/model/parts/__pycache__/proposals.cpython-38.pyc b/models/v3/model/parts/__pycache__/proposals.cpython-38.pyc deleted file mode 100644 index 2f9ee281acaa03b4215c26258cb81df1df495ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3176 zcmaJ@OK;rB5$@(|$a&~7_S)8NvLFKIFJ{nBY@(z=b2+sq&^}n0iM>0BmcVAgqYo3w<5H9+Nry> zUk5c4?HyLL3xBau_t3%$C!YM!Dag#}A{A5}kCC1aUyfE#wES~3Bw=5*3*T6AhlBQWj z!$U3e$t06%&@$VTOpl6EWNLJHHqvJm7P3vVy&N^tM>11Ks$gq)q^X9o%j_)8*(egMZU3 zQLvXEn`rH%cAtoA|%Wmvl^K%yd8EA=sx|1;ESjxBu907Oj+%pe`?e6*W)<3 znYa&QyBTpJvsh%Q%qU`+h!4+VeU!z?teh7*F2}aDiilm!ZgjKdc58|K-f-E+YtWJR z@RB<0`D^DT8*|IRi0eMP;9u}XYpoB! z%wZiY^&wVjVMikE*1-iwwA&&CQ&rldxQpn*T|`BfTHx@ITA~G3jli6px@-5P{Yeu( zN+k=Al(=AZ5uhm-h|kqShzWT0+5H8-WY}>qx**QuU}kTvL5}>~PTYHq>(~y zxc>3efiJi5A>V;8uA0w`JIxBSNkq7wl1vA^ugX;UJ(~JW5|r8p@2nDEjmo(ORfD68 z$wB{0y<%PYi2mn~OPPWuX@LhMtOwQ?o6+z6pLp(LyrM8Mhqxnj?%{42X2a<=dHzH6 zzLn?1jHA{gS=pFP*U~x}pa} z;k*I-MB1;T3ohtf@GtGW4(bT#dwac2I$4M<$o6gGx=!JV_M)S$ZI^_IZS-|S|H4|= zXyAoBeF{$OUOI~&PANT$y<6uWuQ+kFi_22}FwV7#n|d7M7?2(%#RQC)7nTE;l|3#G zk5SQg8!Du9yee>}Lj@#H^C~H{O(WA;T%z}`7#2sXFD1{thCghRl1oEN!1!|Bk^#3WM#M}8kG7+$?`t)YhJHweIj zYmPx{A414OC|7LD=_ef^jOF}ZPP z$qV@*z6Kj#k42(;)4di})xgu%j`q^sJW~f!x!D=(1G1 ztSq*6qq?BNZ1627^!oU|gSy`4vE#Y-U0ZdiSPvo`sOGcktRWnKuJfrf;WAlX;4JmR qR(o5bB;i-mw1yZgJ6K`O3iogxnNPDPR1H)Y!ouGRKM4Ebo&N%qE97Ya diff --git a/models/v3/model/parts/__pycache__/subpopulation_clusters.cpython-37.pyc b/models/v3/model/parts/__pycache__/subpopulation_clusters.cpython-37.pyc deleted file mode 100644 index 13c38d8a8351fa658f5ca795977d0251785e47f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12711 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

FJ3!-?)z)&>_#YFiOCb#!FaFN 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 A5&!@I diff --git a/models/v3/model/parts/__pycache__/sys_params.cpython-37.pyc b/models/v3/model/parts/__pycache__/sys_params.cpython-37.pyc deleted file mode 100644 index 6199b025b0d7076343e337bed34f2895cacc7155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmZWmF^|(Q6pkAw&0X7rgNlKHJra=N#DXX(Fu(#rI*B1dirm_DEfOcPouVFM;s-E; zx-#6t0>6Nb6~y8J>2wPjSrI}!w?#tmtnYjF)AM_upKlKayB?T%KFY6$o_FdFf2SvhZET91mX_rQHhxrV%fbOn*+FONL$b60%1_T_@K41XY z+u{uPvw;0A&aHY`m!d;2KHow&?*V`P%Gt-1KO4TidvZimK9Zw1zgU~{gSDNe?Ip-; zyFfgC{PM#!|J|71J2@Keef=_yeTyf|5bLXXWdl;wa}tMkM>AS8s?kNms6*z(kdN$ysEJ@ab zPFfhT5N2tyDTT};pxiaeh7+P$KCQ~SU`A9jSH!Sve;u6>Q8bEeLYqV;IpNHy-b61J z)l;TTPG&P9p?+?vb=^vtII@9k%6e%#vbMgE=3jk#?usBqz92=zv~u5k?5PXx0giqg zCiALf37Hl|J)y*qM6tTk$t^`VNWD|Zg_y2YKdOw7JSi*63Y{ztHoF97Xmp~NI^Rt5 gDyWHWKvq+*n{JN!GEn442xA;}(BG>cVf6p{4SRRTTmS$7 diff --git a/models/v3/model/parts/__pycache__/sys_params.cpython-38.pyc b/models/v3/model/parts/__pycache__/sys_params.cpython-38.pyc deleted file mode 100644 index 052d906ae497ea796b0e6b6317d25845d0436628..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 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 diff --git a/models/v3/model/parts/__pycache__/system.cpython-38.pyc b/models/v3/model/parts/__pycache__/system.cpython-38.pyc deleted file mode 100644 index 85b1356580e66a8fac75276acfbf2b6f413346bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3900 zcmb_f&5s+m6(>hC(&$^O)qcn}QYCGZC~dt>dg#|;n;=HxpsD+j4-^6dVOE^g&aN~g zlhnp?XL@k}uMa`nTMs=rJ=K@~K}1oY$jSdg(L;ZaBgwm4C+MLg49OuM$;aROz4xdO z>-7r5^U}^6!@qAb_62=hd>nkdiB|~}f(brh18!?)P!NtNOxzFhes54jzdI>S{eeF% z56YYgPZU38gNi5#A9YofMFn+DR7DMSUDQPbbwe~o3w2ZQ_gR1ADRyFao^q6ZZuo0` z$9UnrSrQv>989Od$R&a0a|3k|Zvn6R3+4zeoU|YcUADunv&_}(ggw;=t9owL;6VOcq!_1H_xpYyDu zi)lraF{6t9N|&LmcG)h=YND3bIxMTFMfq1_-TBZH6mS&I3X$yO7SY0+~?3~%LHs-avEZc-kC2d2dlXgV&)cFIK6|tFZiB7g1 zAHX_Jy0Hrs(oTn^n?Pe{jm9p}*v0tH5{)fg&7~gzKb&(rWn#;o2Rn6u>UH*rKjc7V zn>5k2bo&9f+H|1}(9W){v`RPAYhq`UX6<6n>uE7t>TQ8Wu;t$MHO<1muFqj@Y;zZb+J7m>*PR=`e{}A;IF4hAN(XwbOnC&wA`$5D2{&Gxh)_LojC1q5hMzp)(#LvF z*uQ?W_n``<+8YFNd>l;oZY85RDXR9~iS+IH;oe&^7$@=Y?Ib>nMmj?CqeKIhy(w0l zsJ*lA<*hwBh1ydKrNimX*}_!zCy~;lWI8+8r2~*-6q&=??Ecq94)$;f_RalCG6HZ1 zXsqU#lA6zEiPWa16CF&3^f_6WR(Nz2LXop@*)#ra=Wp-)^Zutl8Dj(c;Ftw0Xgq~Q zLrIW+Ij%2b)Z+R=##027E}ZMMDBW|u#27fQu+6RM2S-Oy9O(rDf)|Q$sQQj-XosO3?!lEt7jO(C``rt%mK(mS1YcP16!_D8sw+5aG;9Q^a9{sWL9?HZzWT z&u}%U1rq)N%1b!!0QkKwU!`@*Yd)FU1rXGrvC<>gZ_s{5!PUs1vUDdn`=Aw^1<@op zoUD9ku(3AD8bJ4WD9Z_xy&-jKUV#*SY)~w?WkAjg-q$NkcAiqY#hR_7-||hYIr3=bU;lLyN0nkQpP{lqnMF3wTHY&>od{Bp4ekO-r8q(f2WHlrOQ16_kz^RHqutQapcfl z>HdLDd~bPJ_lamJ1B^ zu?!XYh5Qcn7vdo9x8)B=@P}0Vhzbf?rZ|k^*<3$62(qzFTUXEWO-K*QYyXh@w8RE2 zQC^2}Q#cJ5#zP>Ohk1lt2XfPx&nUCwP!`4aF;kKMFprq)6Mr2StqRH(ukm)Fg1#HP z4fglIdY8M7{5j+=ahmP~ln5-RX}LA0UE;L70S?+0?qnY9UxfWj#2Rb=!u_9GGrk*- zWEiNhmmj@%xai@&)C;D`Jl4JB$bP{Z%R3casb0Z-i!M|7%_+COwK<)*?>`S~c^gCW zT`GP?#d}m(fS#e$ibxf@&MfZ=3kWG<3UdjgT8_gVe2*wstscr@ly)o*bg5tB;KDnA zL+au#?FroABl?fv-jO?ykrW+_J4JlYLss#*YLmu;hE7hySPgYDT+8Rm+pt!nPGqs6 zoKM0>m|*V-4EC&XN#X61)yn8tYfA|SHo6pv1pZCHN*=6+e-NpkTkDSe1!Qy8EzITT z>T6-Pl3$H=gLI|?ii4oaH09=*VB8@BgT|4HW;A=2r4cSyEqVZYlVu=P3Sb z^z~b~M9-(QMIHo@xMLA0#Q*?E|T`Rz~5&i_V;nq1`iI%#)|l1T^z8sJpZ=;vfuKHe)&K3@s70s diff --git a/models/v3/model/parts/__pycache__/utils.cpython-37.pyc b/models/v3/model/parts/__pycache__/utils.cpython-37.pyc deleted file mode 100644 index 616f935bdb6daa8ddf0df6b9d7290ab289bd2680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15157 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 Ad;kCd