diff --git a/.gitignore b/.gitignore index 50bf771..cee0b3e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ - .ipynb_checkpoints/* .DS_Store +.idea +engine/__pycache__ +engine/.ipynb_checkpoints +notebooks/.ipynb_checkpoints +ui/__pycache__ +SimCAD.egg-info \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/engine/.ipynb_checkpoints/run-checkpoint.py b/engine/.ipynb_checkpoints/run-checkpoint.py new file mode 100644 index 0000000..1adcca7 --- /dev/null +++ b/engine/.ipynb_checkpoints/run-checkpoint.py @@ -0,0 +1,21 @@ +from ui.config import state_dict, mechanisms, exogenous_states, env_processes, sim_config +from engine.configProcessor import generate_config +from engine.mechanismExecutor import simulation +from engine.utils import flatten + +#from tabulate import tabulate +import pandas as pd + +def main(): + states_list = [state_dict] + configs = generate_config(mechanisms, exogenous_states) + # p = pipeline(states_list, configs, env_processes, range(10)) + N = sim_config['N'] + r = range(5) + # Dimensions: N x r x mechs + s = simulation(states_list, configs, env_processes, r, N) + result = pd.DataFrame(flatten(s)) + print('Test') +# print(tabulate(result, headers='keys', tablefmt='psql')) +# remove print and tabulate functions, so it returns a dataframe + return result \ No newline at end of file diff --git a/engine/__pycache__/__init__.cpython-36.pyc b/engine/__pycache__/__init__.cpython-36.pyc index cb34c91..9fe0485 100644 Binary files a/engine/__pycache__/__init__.cpython-36.pyc and b/engine/__pycache__/__init__.cpython-36.pyc differ diff --git a/engine/__pycache__/__init__.cpython-37.pyc b/engine/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000..01f339d Binary files /dev/null and b/engine/__pycache__/__init__.cpython-37.pyc differ diff --git a/engine/__pycache__/configProcessor.cpython-36.pyc b/engine/__pycache__/configProcessor.cpython-36.pyc index 8163443..b575caf 100644 Binary files a/engine/__pycache__/configProcessor.cpython-36.pyc and b/engine/__pycache__/configProcessor.cpython-36.pyc differ diff --git a/engine/__pycache__/configProcessor.cpython-37.pyc b/engine/__pycache__/configProcessor.cpython-37.pyc new file mode 100644 index 0000000..faa49be Binary files /dev/null and b/engine/__pycache__/configProcessor.cpython-37.pyc differ diff --git a/engine/__pycache__/mechanismExecutor.cpython-36.pyc b/engine/__pycache__/mechanismExecutor.cpython-36.pyc index 9f7ecd3..9bbf837 100644 Binary files a/engine/__pycache__/mechanismExecutor.cpython-36.pyc and b/engine/__pycache__/mechanismExecutor.cpython-36.pyc differ diff --git a/engine/__pycache__/mechanismExecutor.cpython-37.pyc b/engine/__pycache__/mechanismExecutor.cpython-37.pyc new file mode 100644 index 0000000..1a9ad37 Binary files /dev/null and b/engine/__pycache__/mechanismExecutor.cpython-37.pyc differ diff --git a/engine/__pycache__/run.cpython-36.pyc b/engine/__pycache__/run.cpython-36.pyc index 34bd64a..5e55019 100644 Binary files a/engine/__pycache__/run.cpython-36.pyc and b/engine/__pycache__/run.cpython-36.pyc differ diff --git a/engine/__pycache__/run.cpython-37.pyc b/engine/__pycache__/run.cpython-37.pyc new file mode 100644 index 0000000..cddb38d Binary files /dev/null and b/engine/__pycache__/run.cpython-37.pyc differ diff --git a/engine/__pycache__/utils.cpython-36.pyc b/engine/__pycache__/utils.cpython-36.pyc index f5ade6f..b98d799 100644 Binary files a/engine/__pycache__/utils.cpython-36.pyc and b/engine/__pycache__/utils.cpython-36.pyc differ diff --git a/engine/__pycache__/utils.cpython-37.pyc b/engine/__pycache__/utils.cpython-37.pyc new file mode 100644 index 0000000..4142993 Binary files /dev/null and b/engine/__pycache__/utils.cpython-37.pyc differ diff --git a/engine/run.py b/engine/run.py index ebdeef3..1adcca7 100644 --- a/engine/run.py +++ b/engine/run.py @@ -3,7 +3,7 @@ from engine.configProcessor import generate_config from engine.mechanismExecutor import simulation from engine.utils import flatten -from tabulate import tabulate +#from tabulate import tabulate import pandas as pd def main(): @@ -12,7 +12,10 @@ def main(): # p = pipeline(states_list, configs, env_processes, range(10)) N = sim_config['N'] r = range(5) - # Dimentions: N x r x mechs + # Dimensions: N x r x mechs s = simulation(states_list, configs, env_processes, r, N) result = pd.DataFrame(flatten(s)) - print(tabulate(result, headers='keys', tablefmt='psql')) + print('Test') +# print(tabulate(result, headers='keys', tablefmt='psql')) +# remove print and tabulate functions, so it returns a dataframe + return result \ No newline at end of file diff --git a/notebooks/.ipynb_checkpoints/TestNotebook-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/TestNotebook-checkpoint.ipynb new file mode 100644 index 0000000..57d2504 --- /dev/null +++ b/notebooks/.ipynb_checkpoints/TestNotebook-checkpoint.ipynb @@ -0,0 +1,42 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "assert pd.__version__ == '0.23.4'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/.ipynb_checkpoints/test-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/test-checkpoint.ipynb new file mode 100644 index 0000000..a79181a --- /dev/null +++ b/notebooks/.ipynb_checkpoints/test-checkpoint.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'ui'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mengine\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mrun\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mrun\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmain\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\engine\\run.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mui\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconfig\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mstate_dict\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmechanisms\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexogenous_states\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msim_config\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mengine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconfigProcessor\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mgenerate_config\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mengine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmechanismExecutor\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0msimulation\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mengine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mutils\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mflatten\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'ui'" + ] + } + ], + "source": [ + "from engine import run\n", + "run.main()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/notebooks/CAD_Engine.ipynb b/notebooks/CAD_Engine.ipynb index 988308e..fc51d07 100644 --- a/notebooks/CAD_Engine.ipynb +++ b/notebooks/CAD_Engine.ipynb @@ -1301,13 +1301,13 @@ { "ename": "NameError", "evalue": "name 'non_numeric' 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[1;32m 3\u001b[0m \u001b[0mstate_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m's1'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'3323'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m's2'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'2572'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m's3'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'2.657'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m's4'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'7.914'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'timestamp'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'2018-10-01 15:16:26'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'mech_step'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'time_step'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mstate_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mquantize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mTWOPLACES\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mROUND_DOWN\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mstate_dict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mstate_dict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnon_numeric\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mstate_dict\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'non_numeric' is not defined" - ], - "output_type": "error" + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mstate_dict\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;34m's1'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'3323'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m's2'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'2572'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m's3'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'2.657'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m's4'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'7.914'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'timestamp'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;34m'2018-10-01 15:16:26'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'mech_step'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'time_step'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mstate_dict\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mquantize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTWOPLACES\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mROUND_DOWN\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mv\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mstate_dict\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mv\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m==\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0mstate_dict\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnon_numeric\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[0mstate_dict\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'non_numeric' is not defined" + ] } ], "source": [ diff --git a/notebooks/TestNotebook.ipynb b/notebooks/TestNotebook.ipynb index a02a274..51d7dc7 100644 --- a/notebooks/TestNotebook.ipynb +++ b/notebooks/TestNotebook.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -13,9 +13,9 @@ ], "metadata": { "kernelspec": { - "display_name": "DiffyQ-SimCAD Env", + "display_name": "Python 3", "language": "python", - "name": "diffyq-simcad" + "name": "python3" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/test.ipynb b/notebooks/test.ipynb new file mode 100644 index 0000000..48c1228 --- /dev/null +++ b/notebooks/test.ipynb @@ -0,0 +1,77 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "ename": "ImportError", + "evalue": "cannot import name 'run'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mengine\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mrun\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mrun\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmain\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mImportError\u001b[0m: cannot import name 'run'" + ] + } + ], + "source": [ + "from engine import run\n", + "run.main()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}