{"data":{"markdownRemark":{"html":"<h2 id=\"introduction\"><a href=\"#introduction\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Introduction</h2>\n<p>This tutorial covers the basic steps to running the Simudyne SDK via a Python Subprocess and from a Jupyter Notebook. Models built in the Simudyne SDK are packaged as executable Java JAR files, meaning they can be run from the command line or from a subprocess in another application.</p>\n<div class=\"ui segment warning message\" ><h4>Variations in Local Environment</h4>\n<p>Note that Jupyter Notebook and the Python Subprocess libraries are not supported by Simudyne. This tutorial is just one example of how to run your models with an external tool. If the example does not function in your local environment, using the basic guidance provided on running any executable Java JAR file should be the foundation to arriving at your solution. \n</p></div>\n<h3 id=\"sections-covered\"><a href=\"#sections-covered\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Sections covered</h3>\n<p>This tutorial is structured in 3 sections:</p>\n<ol>\n<li>Creating &#x26; Running an executable JAR</li>\n<li>Python subprocess</li>\n<li>Jupyter Notebook</li>\n</ol>\n<h2 id=\"1-creating--running-an-executable-jar\"><a href=\"#1-creating--running-an-executable-jar\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Creating &#x26; Running an executable JAR</h2>\n<h3 id=\"creating-a-jar\"><a href=\"#creating-a-jar\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Creating a JAR</h3>\n<p>The first step is to package, you will need to build a fat jar which will carry your model, the Simudyne SDK and all the necessary dependencies.</p>\n<p>More information on how to package your JAR file please reference the <a href=\":version/reference/run_deploy/cli\">CLI Model Runner</a></p>\n<p>To package your Simudyne SDK model, run the below command from the project root. </p>\n<p class=\"code-header\">Maven</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">mvn -s settings.xml clean compile package</code></pre></div>\n<p>Maven will create the jar and place it in the target directory (unless you have specified otherwise in your pom settings). Unless you have given it a specific name, the generated jar will be named <code class=\"language-text\">&lt;some-artifact-id&gt;-&lt;some-version&gt;-jar</code>. </p>\n<h3 id=\"running-a-jar\"><a href=\"#running-a-jar\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Running a JAR</h3>\n<p>Running the JAR can be done from the command line by executing the below command (pointing to the location of the packaged JAR):</p>\n<p class=\"code-header\">Running a JAR</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">java -jar target/sample-artifact-1.1.0.jar</code></pre></div>\n<p>The example above is a general example, for more info please reference the <em>Running the model</em> section of the <a href=\":version/reference/run_deploy/cli\">CLI Model Runner</a> section.</p>\n<h2 id=\"2-python-subprocess\"><a href=\"#2-python-subprocess\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Python subprocess</h2>\n<p>Once the Simudyne SDK model has been packaged as an executable JAR file, it is possible to call this file via a Python Subprocess. It is recommended to read through the <a href=\"https://docs.python.org/3/library/subprocess.html\">Python Subprocess Documentation</a> before beginning this section.</p>\n<p>Before starting with the Python subprocess, a new <code class=\"language-text\">MainNoConsole.java</code> should be added to your project as it is recommended to have the SDK run headless for ease of returning results.</p>\n<p>The following Java code can be added to your project and customized to your model and inputs:</p>\n<p class=\"code-header\">MainNoConsole.java</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token keyword\">import</span> org<span class=\"token punctuation\">.</span>slf4j<span class=\"token punctuation\">.</span>Logger<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> org<span class=\"token punctuation\">.</span>slf4j<span class=\"token punctuation\">.</span>LoggerFactory<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> simudyne<span class=\"token punctuation\">.</span>core<span class=\"token punctuation\">.</span>exec<span class=\"token punctuation\">.</span>runner<span class=\"token punctuation\">.</span>ModelRunner<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> simudyne<span class=\"token punctuation\">.</span>core<span class=\"token punctuation\">.</span>exec<span class=\"token punctuation\">.</span>runner<span class=\"token punctuation\">.</span>RunnerBackend<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> simudyne<span class=\"token punctuation\">.</span>core<span class=\"token punctuation\">.</span>exec<span class=\"token punctuation\">.</span>runner<span class=\"token punctuation\">.</span>definition<span class=\"token punctuation\">.</span>BatchDefinitionsBuilder<span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">import</span> java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span>HashMap<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span>Map<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span>stream<span class=\"token punctuation\">.</span>Collectors<span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">MainNoConsole</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">private</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">final</span> Logger logger <span class=\"token operator\">=</span> LoggerFactory<span class=\"token punctuation\">.</span><span class=\"token function\">getLogger</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"main\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span>String<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n            RunnerBackend runnerBackend <span class=\"token operator\">=</span> RunnerBackend<span class=\"token punctuation\">.</span><span class=\"token function\">create</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            ModelRunner modelRunner <span class=\"token operator\">=</span> runnerBackend<span class=\"token punctuation\">.</span><span class=\"token function\">forModel</span><span class=\"token punctuation\">(</span>MyModel<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            Map<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>String<span class=\"token punctuation\">,</span> String<span class=\"token punctuation\">></span></span> _config<span class=\"token punctuation\">;</span>\n            Map<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>String<span class=\"token punctuation\">,</span> Object<span class=\"token punctuation\">></span></span> _input<span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>args<span class=\"token punctuation\">.</span>length <span class=\"token operator\">==</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n                _config <span class=\"token operator\">=</span> <span class=\"token function\">getConfigMap</span><span class=\"token punctuation\">(</span>args<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                _input <span class=\"token operator\">=</span> <span class=\"token function\">getMap</span><span class=\"token punctuation\">(</span>args<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n            <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n                <span class=\"token comment\">// Default config and input parameters</span>\n                _config <span class=\"token operator\">=</span> <span class=\"token function\">getConfigMap</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"simudyne.core.export-path=output\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                _input <span class=\"token operator\">=</span> <span class=\"token function\">getMap</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"MyInputs\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n\n            String _seed <span class=\"token operator\">=</span> System<span class=\"token punctuation\">.</span><span class=\"token function\">getProperty</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"seed\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"12345678910\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            String _runs <span class=\"token operator\">=</span> System<span class=\"token punctuation\">.</span><span class=\"token function\">getProperty</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"runs\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            String _ticks <span class=\"token operator\">=</span> System<span class=\"token punctuation\">.</span><span class=\"token function\">getProperty</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"ticks\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"100\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">long</span> seed <span class=\"token operator\">=</span> Long<span class=\"token punctuation\">.</span><span class=\"token function\">parseLong</span><span class=\"token punctuation\">(</span>_seed<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">int</span> n_runs <span class=\"token operator\">=</span> Integer<span class=\"token punctuation\">.</span><span class=\"token function\">parseInt</span><span class=\"token punctuation\">(</span>_runs<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            <span class=\"token keyword\">long</span> n_ticks <span class=\"token operator\">=</span> Long<span class=\"token punctuation\">.</span><span class=\"token function\">parseLong</span><span class=\"token punctuation\">(</span>_ticks<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            _input<span class=\"token punctuation\">.</span><span class=\"token function\">put</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"nSteps\"</span><span class=\"token punctuation\">,</span> n_ticks<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            <span class=\"token keyword\">long</span> startTime <span class=\"token operator\">=</span> System<span class=\"token punctuation\">.</span><span class=\"token function\">currentTimeMillis</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            BatchDefinitionsBuilder runDefinitionBuilder <span class=\"token operator\">=</span>\n                    BatchDefinitionsBuilder<span class=\"token punctuation\">.</span><span class=\"token function\">create</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n                            <span class=\"token punctuation\">.</span><span class=\"token function\">forRuns</span><span class=\"token punctuation\">(</span>n_runs<span class=\"token punctuation\">)</span>\n                            <span class=\"token punctuation\">.</span><span class=\"token function\">forTicks</span><span class=\"token punctuation\">(</span>n_ticks<span class=\"token punctuation\">)</span>\n                            <span class=\"token punctuation\">.</span><span class=\"token function\">forSeeds</span><span class=\"token punctuation\">(</span>seed<span class=\"token punctuation\">)</span>\n                            <span class=\"token punctuation\">.</span><span class=\"token function\">withInputs</span><span class=\"token punctuation\">(</span>_input<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            logger<span class=\"token punctuation\">.</span><span class=\"token function\">warn</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Simulation Starting...\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            modelRunner<span class=\"token punctuation\">.</span><span class=\"token function\">forRunDefinitionBuilder</span><span class=\"token punctuation\">(</span>runDefinitionBuilder<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">withConfigMap</span><span class=\"token punctuation\">(</span>_config<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            modelRunner<span class=\"token punctuation\">.</span><span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">awaitOutput</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            logger<span class=\"token punctuation\">.</span><span class=\"token function\">warn</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Simulation Complete.\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            <span class=\"token keyword\">long</span> endTime <span class=\"token operator\">=</span> System<span class=\"token punctuation\">.</span><span class=\"token function\">currentTimeMillis</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            logger<span class=\"token punctuation\">.</span><span class=\"token function\">warn</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"time for simulation = \"</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">double</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>endTime <span class=\"token operator\">-</span> startTime<span class=\"token punctuation\">)</span> <span class=\"token operator\">/</span> <span class=\"token number\">1000.0</span> <span class=\"token operator\">+</span> <span class=\"token string\">\" s.\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            System<span class=\"token punctuation\">.</span><span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">Exception</span> e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            e<span class=\"token punctuation\">.</span><span class=\"token function\">printStackTrace</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n\n    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> Map<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>String<span class=\"token punctuation\">,</span> String<span class=\"token punctuation\">></span></span> <span class=\"token function\">getConfigMap</span><span class=\"token punctuation\">(</span>String str<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        Map<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>String<span class=\"token punctuation\">,</span> Object<span class=\"token punctuation\">></span></span> _map <span class=\"token operator\">=</span> <span class=\"token function\">getMap</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">return</span> _map<span class=\"token punctuation\">.</span><span class=\"token function\">entrySet</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">stream</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">.</span><span class=\"token function\">collect</span><span class=\"token punctuation\">(</span>Collectors<span class=\"token punctuation\">.</span><span class=\"token function\">toMap</span><span class=\"token punctuation\">(</span>Map<span class=\"token punctuation\">.</span>Entry<span class=\"token operator\">:</span><span class=\"token operator\">:</span>getKey<span class=\"token punctuation\">,</span> e <span class=\"token operator\">-</span><span class=\"token operator\">></span> <span class=\"token punctuation\">(</span>String<span class=\"token punctuation\">)</span>e<span class=\"token punctuation\">.</span><span class=\"token function\">getValue</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n\n    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> Map<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>String<span class=\"token punctuation\">,</span> Object<span class=\"token punctuation\">></span></span> <span class=\"token function\">getMap</span><span class=\"token punctuation\">(</span>String str<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        Map<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>String<span class=\"token punctuation\">,</span> Object<span class=\"token punctuation\">></span></span> _map <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">HashMap</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">.</span><span class=\"token function\">isEmpty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n            <span class=\"token keyword\">return</span> _map<span class=\"token punctuation\">;</span>\n\n        <span class=\"token keyword\">for</span><span class=\"token punctuation\">(</span>String s0 <span class=\"token operator\">:</span> str<span class=\"token punctuation\">.</span><span class=\"token function\">split</span><span class=\"token punctuation\">(</span><span class=\"token string\">\",\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            String<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> s1 <span class=\"token operator\">=</span> s0<span class=\"token punctuation\">.</span><span class=\"token function\">split</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"=\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>s1<span class=\"token punctuation\">.</span>length <span class=\"token operator\">!=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n                <span class=\"token keyword\">throw</span>  <span class=\"token keyword\">new</span> <span class=\"token class-name\">IllegalArgumentException</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Unknown input format, \"</span> <span class=\"token operator\">+</span> s0<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            _map<span class=\"token punctuation\">.</span><span class=\"token function\">put</span><span class=\"token punctuation\">(</span>s1<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> s1<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n\n        <span class=\"token keyword\">return</span> _map<span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>Now that the SDK model has been configured for headless mode, the code for the Python subprocess can be defined.</p>\n<p>Below is a provided utils.py Python module that can be imported, and whose functions can be called to run the Simudyne SDK and return the results. As mentioned above, there have been attempts to account for changes in your local environment, but it's possible this code will not function 'out of the box' on your machine.</p>\n<p>The first step is to create a <code class=\"language-text\">notebook_settings.json</code> file:</p>\n<div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"sdk_path\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"%PathToYourProject%\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"maven_repo\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"%PathToYourM2%/.m2/repository\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"java_cmd\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"java\"</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>The following Python Module can be imported into your Jupyter Notebook and called to run your simulations and analyse your results.</p>\n<p class=\"code-header\">utils.py</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> glob\n<span class=\"token keyword\">import</span> pandas <span class=\"token keyword\">as</span> pd\n<span class=\"token keyword\">import</span> numpy <span class=\"token keyword\">as</span> np\n<span class=\"token keyword\">import</span> subprocess\n<span class=\"token keyword\">import</span> shutil\n<span class=\"token keyword\">import</span> os\n<span class=\"token keyword\">import</span> platform\n\n\n<span class=\"token comment\">#Run SDK using Popen - checks operating system and returns results</span>\n<span class=\"token keyword\">def</span> <span class=\"token function\">run_sdk</span><span class=\"token punctuation\">(</span>params<span class=\"token punctuation\">,</span> maven_repo<span class=\"token punctuation\">,</span> java_cmd<span class=\"token operator\">=</span><span class=\"token string\">'java'</span><span class=\"token punctuation\">,</span> debug<span class=\"token operator\">=</span><span class=\"token boolean\">True</span><span class=\"token punctuation\">,</span> delete_tempfile<span class=\"token operator\">=</span><span class=\"token boolean\">True</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n\n    _pwd <span class=\"token operator\">=</span> os<span class=\"token punctuation\">.</span>getcwd<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    os<span class=\"token punctuation\">.</span>chdir<span class=\"token punctuation\">(</span>params<span class=\"token punctuation\">[</span><span class=\"token string\">'notebook_settings'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token string\">'sdk_path'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n\n    _config_export_path_250 <span class=\"token operator\">=</span> <span class=\"token string\">'simudyne.core.parquet-export-path'</span>\n    _repos <span class=\"token operator\">=</span> get_repos_2_5_0<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    _parquet_path <span class=\"token operator\">=</span> params<span class=\"token punctuation\">[</span><span class=\"token string\">'config'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>_config_export_path_250<span class=\"token punctuation\">]</span> <span class=\"token keyword\">if</span> _config_export_path_250 <span class=\"token keyword\">in</span> params<span class=\"token punctuation\">[</span><span class=\"token string\">'config'</span><span class=\"token punctuation\">]</span> <span class=\"token keyword\">else</span> <span class=\"token string\">'output'</span>\n\n    <span class=\"token keyword\">if</span> os<span class=\"token punctuation\">.</span>path<span class=\"token punctuation\">.</span>isdir<span class=\"token punctuation\">(</span>_parquet_path<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        shutil<span class=\"token punctuation\">.</span>rmtree<span class=\"token punctuation\">(</span>_parquet_path<span class=\"token punctuation\">)</span>\n\n    _sep <span class=\"token operator\">=</span> <span class=\"token boolean\">None</span>\n    <span class=\"token keyword\">if</span> platform<span class=\"token punctuation\">.</span>system<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token string\">'Windows'</span><span class=\"token punctuation\">:</span>\n        _sep <span class=\"token operator\">=</span> <span class=\"token string\">';'</span>\n    <span class=\"token keyword\">elif</span> platform<span class=\"token punctuation\">.</span>system<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token string\">'Darwin'</span><span class=\"token punctuation\">:</span>\n        _sep <span class=\"token operator\">=</span> <span class=\"token string\">':'</span>\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">raise</span> ValueError<span class=\"token punctuation\">(</span><span class=\"token string\">'{0} not supported.'</span><span class=\"token punctuation\">,</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>platform<span class=\"token punctuation\">.</span>system<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n    _config <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>java_cmd<span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'-D{0}={1}'</span><span class=\"token punctuation\">.</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>k<span class=\"token punctuation\">,</span> params<span class=\"token punctuation\">[</span><span class=\"token string\">'vm'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> k <span class=\"token keyword\">in</span> params<span class=\"token punctuation\">[</span><span class=\"token string\">'vm'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'-classpath'</span><span class=\"token punctuation\">,</span>\n                                                                                             _sep<span class=\"token punctuation\">.</span>join<span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token string\">'target/classes'</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'{1}/{0}'</span><span class=\"token punctuation\">.</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">,</span> maven_repo<span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> _repos<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n                                                                                             <span class=\"token string\">'MainNoConsole'</span><span class=\"token punctuation\">,</span>\n                                                                                             get_input<span class=\"token punctuation\">(</span>params<span class=\"token punctuation\">[</span><span class=\"token string\">'config'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n                                                                                             get_input<span class=\"token punctuation\">(</span>params<span class=\"token punctuation\">[</span><span class=\"token string\">'input'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n\n    <span class=\"token keyword\">if</span> platform<span class=\"token punctuation\">.</span>system<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token string\">'Windows'</span><span class=\"token punctuation\">:</span>\n        o <span class=\"token operator\">=</span> subprocess<span class=\"token punctuation\">.</span>Popen<span class=\"token punctuation\">(</span>_config<span class=\"token punctuation\">,</span> stdout <span class=\"token operator\">=</span> subprocess<span class=\"token punctuation\">.</span>PIPE<span class=\"token punctuation\">,</span> stderr<span class=\"token operator\">=</span>subprocess<span class=\"token punctuation\">.</span>STDOUT<span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">if</span> o<span class=\"token punctuation\">.</span>stdout <span class=\"token operator\">!=</span> b<span class=\"token string\">''</span><span class=\"token punctuation\">:</span>\n            _o <span class=\"token operator\">=</span> o<span class=\"token punctuation\">.</span>stdout<span class=\"token punctuation\">.</span>read<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>decode<span class=\"token punctuation\">(</span><span class=\"token string\">'utf-8'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token string\">'\\n'</span><span class=\"token punctuation\">)</span>\n            <span class=\"token keyword\">if</span> debug<span class=\"token punctuation\">:</span>\n                <span class=\"token punctuation\">[</span><span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> s <span class=\"token keyword\">in</span> _o<span class=\"token punctuation\">]</span>\n\n        <span class=\"token keyword\">if</span> o<span class=\"token punctuation\">.</span>stderr <span class=\"token keyword\">is</span> <span class=\"token operator\">not</span> <span class=\"token boolean\">None</span><span class=\"token punctuation\">:</span>\n            _o <span class=\"token operator\">=</span> o<span class=\"token punctuation\">.</span>stderr<span class=\"token punctuation\">.</span>read<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>decode<span class=\"token punctuation\">(</span><span class=\"token string\">'utf-8'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token string\">'\\n'</span><span class=\"token punctuation\">)</span>\n            <span class=\"token keyword\">if</span> debug<span class=\"token punctuation\">:</span>\n                <span class=\"token punctuation\">[</span><span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> s <span class=\"token keyword\">in</span> _o<span class=\"token punctuation\">]</span>\n\n    <span class=\"token keyword\">elif</span> platform<span class=\"token punctuation\">.</span>system<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token string\">'Darwin'</span><span class=\"token punctuation\">:</span>\n        o <span class=\"token operator\">=</span> subprocess<span class=\"token punctuation\">.</span>run<span class=\"token punctuation\">(</span>_config<span class=\"token punctuation\">,</span> capture_output<span class=\"token operator\">=</span><span class=\"token boolean\">True</span><span class=\"token punctuation\">,</span> check<span class=\"token operator\">=</span><span class=\"token boolean\">False</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">if</span> o<span class=\"token punctuation\">.</span>stderr <span class=\"token operator\">!=</span> b<span class=\"token string\">''</span><span class=\"token punctuation\">:</span>\n            _o <span class=\"token operator\">=</span> o<span class=\"token punctuation\">.</span>stderr<span class=\"token punctuation\">.</span>decode<span class=\"token punctuation\">(</span><span class=\"token string\">'utf-8'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token string\">'\\n'</span><span class=\"token punctuation\">)</span>\n            <span class=\"token keyword\">if</span> debug<span class=\"token punctuation\">:</span>\n                <span class=\"token punctuation\">[</span><span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> s <span class=\"token keyword\">in</span> _o<span class=\"token punctuation\">]</span>\n\n        <span class=\"token keyword\">if</span> o<span class=\"token punctuation\">.</span>stdout <span class=\"token operator\">!=</span> b<span class=\"token string\">''</span><span class=\"token punctuation\">:</span>\n            _o <span class=\"token operator\">=</span> o<span class=\"token punctuation\">.</span>stdout<span class=\"token punctuation\">.</span>decode<span class=\"token punctuation\">(</span><span class=\"token string\">'utf-8'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token string\">'\\n'</span><span class=\"token punctuation\">)</span>\n            <span class=\"token keyword\">if</span> debug<span class=\"token punctuation\">:</span>\n                <span class=\"token punctuation\">[</span><span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> s <span class=\"token keyword\">in</span> _o<span class=\"token punctuation\">]</span>\n\n\n    _res <span class=\"token operator\">=</span> get_res<span class=\"token punctuation\">(</span>output_folder<span class=\"token operator\">=</span>_parquet_path<span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">if</span> delete_tempfile<span class=\"token punctuation\">:</span>\n        shutil<span class=\"token punctuation\">.</span>rmtree<span class=\"token punctuation\">(</span>_parquet_path<span class=\"token punctuation\">)</span>\n\n    os<span class=\"token punctuation\">.</span>chdir<span class=\"token punctuation\">(</span>_pwd<span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">return</span> _res\n\n<span class=\"token comment\">#Get map of inputs </span>\n<span class=\"token keyword\">def</span> <span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span>_map<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">return</span> <span class=\"token string\">','</span><span class=\"token punctuation\">.</span>join<span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token string\">'{0}={1}'</span><span class=\"token punctuation\">.</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>a<span class=\"token punctuation\">,</span> <span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>b<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>lower<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">if</span> <span class=\"token builtin\">type</span><span class=\"token punctuation\">(</span>b<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token builtin\">bool</span> <span class=\"token keyword\">else</span> b<span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> a<span class=\"token punctuation\">,</span>b <span class=\"token keyword\">in</span> _map<span class=\"token punctuation\">.</span>items<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n\n\n<span class=\"token comment\">#Return results from output path</span>\n<span class=\"token keyword\">def</span> <span class=\"token function\">get_res</span><span class=\"token punctuation\">(</span>output_folder<span class=\"token operator\">=</span><span class=\"token string\">'output'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    _sep <span class=\"token operator\">=</span> <span class=\"token boolean\">None</span>\n    <span class=\"token keyword\">if</span> platform<span class=\"token punctuation\">.</span>system<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token string\">'Windows'</span><span class=\"token punctuation\">:</span>\n        _sep <span class=\"token operator\">=</span> <span class=\"token string\">'\\\\'</span>\n    <span class=\"token keyword\">elif</span> platform<span class=\"token punctuation\">.</span>system<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token string\">'Darwin'</span><span class=\"token punctuation\">:</span>\n        _sep <span class=\"token operator\">=</span> <span class=\"token string\">'/'</span>\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">raise</span> ValueError<span class=\"token punctuation\">(</span><span class=\"token string\">'{0} not supported.'</span><span class=\"token punctuation\">,</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>platform<span class=\"token punctuation\">.</span>system<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n    res <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n    <span class=\"token keyword\">for</span> f <span class=\"token keyword\">in</span> glob<span class=\"token punctuation\">.</span>glob<span class=\"token punctuation\">(</span><span class=\"token string\">'{0}/**/*/*.csv'</span><span class=\"token punctuation\">.</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>output_folder<span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> recursive<span class=\"token operator\">=</span><span class=\"token boolean\">True</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        _f <span class=\"token operator\">=</span> f<span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span>_sep<span class=\"token punctuation\">)</span>\n        _name <span class=\"token operator\">=</span> _f<span class=\"token punctuation\">[</span><span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span>\n        _run <span class=\"token operator\">=</span> _f<span class=\"token punctuation\">[</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token string\">'.csv'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\n        <span class=\"token keyword\">if</span> _run <span class=\"token operator\">not</span> <span class=\"token keyword\">in</span> res<span class=\"token punctuation\">:</span>\n            res<span class=\"token punctuation\">[</span>_run<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n\n        df <span class=\"token operator\">=</span> pd<span class=\"token punctuation\">.</span>read_csv<span class=\"token punctuation\">(</span>f<span class=\"token punctuation\">)</span>\n        df <span class=\"token operator\">=</span> pd<span class=\"token punctuation\">.</span>concat<span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>i<span class=\"token punctuation\">:</span> pd<span class=\"token punctuation\">.</span>Series<span class=\"token punctuation\">(</span>df<span class=\"token punctuation\">.</span>loc<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> df<span class=\"token punctuation\">.</span>index<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> axis<span class=\"token operator\">=</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>T\n        df<span class=\"token punctuation\">[</span><span class=\"token string\">'time'</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> pd<span class=\"token punctuation\">.</span>to_datetime<span class=\"token punctuation\">(</span>df<span class=\"token punctuation\">[</span><span class=\"token string\">'time'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        res<span class=\"token punctuation\">[</span>_run<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>_name<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> df\n\n    run_ids <span class=\"token operator\">=</span> res<span class=\"token punctuation\">.</span>keys<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    dataset_ <span class=\"token operator\">=</span> np<span class=\"token punctuation\">.</span>unique<span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>res<span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>keys<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> k <span class=\"token keyword\">in</span> res<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">return</span> res<span class=\"token punctuation\">,</span> np<span class=\"token punctuation\">.</span>sort<span class=\"token punctuation\">(</span><span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>run_ids<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> dataset_\n\n\n\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">get_repos_2_5_0</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token string\">'simudyne/simudyne-nexus-server_2.12/2.5.0/simudyne-nexus-server_2.12-2.5.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/scala-lang/scala-library/2.12.8/scala-library-2.12.8.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'simudyne/simudyne-core-exec_2.12/2.5.0/simudyne-core-exec_2.12-2.5.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/jcabi/jcabi-aspects/0.22.5/jcabi-aspects-0.22.5.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/jcabi/jcabi-log/0.17/jcabi-log-0.17.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/aspectj/aspectjrt/1.8.7/aspectjrt-1.8.7.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'mysql/mysql-connector-java/8.0.26/mysql-connector-java-8.0.26.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'simudyne/simudyne-console_2.12/2.5.0/simudyne-console_2.12-2.5.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-actor_2.12/2.6.10/akka-actor_2.12-2.6.10.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/config/1.4.0/config-1.4.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-stream_2.12/2.6.10/akka-stream_2.12-2.6.10.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-protobuf-v3_2.12/2.6.10/akka-protobuf-v3_2.12-2.6.10.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/ssl-config-core_2.12/0.4.2/ssl-config-core_2.12-0.4.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/scala-lang/modules/scala-parser-combinators_2.12/1.1.2/scala-parser-combinators_2.12-1.1.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-remote_2.12/2.6.10/akka-remote_2.12-2.6.10.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-pki_2.12/2.6.10/akka-pki_2.12-2.6.10.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/hierynomus/asn-one/0.4.0/asn-one-0.4.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/agrona/agrona/1.7.2/agrona-1.7.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-slf4j_2.12/2.6.10/akka-slf4j_2.12-2.6.10.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-actor-typed_2.12/2.6.10/akka-actor-typed_2.12-2.6.10.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-http_2.12/10.1.3/akka-http_2.12-10.1.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-http-core_2.12/10.1.3/akka-http-core_2.12-10.1.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-parsing_2.12/10.1.3/akka-parsing_2.12-10.1.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/github/pathikrit/better-files_2.12/2.17.1/better-files_2.12-2.17.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/github/pathikrit/better-files-akka_2.12/2.17.1/better-files-akka_2.12-2.17.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/fasterxml/jackson/dataformat/jackson-dataformat-avro/2.9.9/jackson-dataformat-avro-2.9.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/fasterxml/jackson/core/jackson-annotations/2.9.9/jackson-annotations-2.9.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/fasterxml/jackson/module/jackson-module-scala_2.12/2.9.9/jackson-module-scala_2.12-2.9.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/fasterxml/jackson/module/jackson-module-paranamer/2.9.9/jackson-module-paranamer-2.9.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/json4s/json4s-native_2.12/3.6.9/json4s-native_2.12-3.6.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/json4s/json4s-core_2.12/3.6.9/json4s-core_2.12-3.6.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/json4s/json4s-ast_2.12/3.6.9/json4s-ast_2.12-3.6.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/json4s/json4s-scalap_2.12/3.6.9/json4s-scalap_2.12-3.6.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/json4s/json4s-jackson_2.12/3.6.9/json4s-jackson_2.12-3.6.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-io/commons-io/2.6/commons-io-2.6.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/beust/jcommander/1.72/jcommander-1.72.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'simudyne/simudyne-core_2.12/2.5.0/simudyne-core_2.12-2.5.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/commons/commons-lang3/3.7/commons-lang3-3.7.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-dbcp/commons-dbcp/1.4/commons-dbcp-1.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-pool/commons-pool/1.5.4/commons-pool-1.5.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/guava/guava/29.0-jre/guava-29.0-jre.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/scala-logging/scala-logging_2.12/3.9.0/scala-logging_2.12-3.9.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/scala-lang/scala-reflect/2.12.4/scala-reflect-2.12.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/scala-lang/modules/scala-java8-compat_2.12/0.9.0/scala-java8-compat_2.12-0.9.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/eclipse/collections/eclipse-collections-api/9.2.0/eclipse-collections-api-9.2.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/eclipse/collections/eclipse-collections/9.2.0/eclipse-collections-9.2.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'au/com/bytecode/opencsv/2.4/opencsv-2.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/arrow/arrow-vector/0.12.0/arrow-vector-0.12.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/arrow/arrow-format/0.12.0/arrow-format-0.12.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/arrow/arrow-memory/0.12.0/arrow-memory-0.12.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'joda-time/joda-time/2.9.9/joda-time-2.9.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/carrotsearch/hppc/0.7.2/hppc-0.7.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/netty/netty-buffer/4.1.22.Final/netty-buffer-4.1.22.Final.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/flatbuffers/flatbuffers-java/1.9.0/flatbuffers-java-1.9.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/protobuf/protobuf-java/3.6.0/protobuf-java-3.6.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/netty/netty-common/4.1.42.Final/netty-common-4.1.42.Final.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/typesafe/akka/akka-stream-typed_2.12/2.6.10/akka-stream-typed_2.12-2.6.10.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'simudyne/simudyne-core-abm_2.12/2.5.0/simudyne-core-abm_2.12-2.5.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/parquet/parquet-avro/1.11.1/parquet-avro-1.11.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/parquet/parquet-column/1.11.1/parquet-column-1.11.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/parquet/parquet-common/1.11.1/parquet-common-1.11.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/yetus/audience-annotations/0.11.0/audience-annotations-0.11.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/parquet/parquet-encoding/1.11.1/parquet-encoding-1.11.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/parquet/parquet-hadoop/1.11.1/parquet-hadoop-1.11.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/parquet/parquet-jackson/1.11.1/parquet-jackson-1.11.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/parquet/parquet-format-structures/1.11.1/parquet-format-structures-1.11.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/googlecode/concurrentlinkedhashmap/concurrentlinkedhashmap-lru/1.4.2/concurrentlinkedhashmap-lru-1.4.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'simudyne/simudyne-core-graph_2.12/2.5.0/simudyne-core-graph_2.12-2.5.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'it/unimi/dsi/fastutil/6.5.7/fastutil-6.5.7.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'simudyne/simudyne-core-abm-testkit_2.12/2.5.0/simudyne-core-abm-testkit_2.12-2.5.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/eels/eel-core_2.12/1.2.4/eel-core_2.12-1.2.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/sksamuel/exts/exts_2.12/1.49.0/exts_2.12-1.49.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/univocity/univocity-parsers/2.4.1/univocity-parsers-2.4.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/h2database/h2/1.4.196/h2-1.4.196.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/dropwizard/metrics/metrics-core/3.1.2/metrics-core-3.1.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/dropwizard/metrics/metrics-jvm/3.1.2/metrics-jvm-3.1.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/eels/eel-hive_2.12/1.2.4/eel-hive_2.12-1.2.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/eels/eel-orc_2.12/1.2.4/eel-orc_2.12-1.2.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/orc/orc-core/1.4.0/orc-core-1.4.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/airlift/aircompressor/0.3/aircompressor-0.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'log4j/log4j/1.2.17/log4j-1.2.17.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/hadoop/hadoop-common/2.7.5/hadoop-common-2.7.5.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/hadoop/hadoop-annotations/2.7.5/hadoop-annotations-2.7.5.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-cli/commons-cli/1.2/commons-cli-1.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'xmlenc/xmlenc/0.52/xmlenc-0.52.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-codec/commons-codec/1.4/commons-codec-1.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-net/commons-net/3.1/commons-net-3.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'javax/servlet/servlet-api/2.5/servlet-api-2.5.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/mortbay/jetty/jetty-sslengine/6.1.26/jetty-sslengine-6.1.26.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/sun/jersey/jersey-core/1.9/jersey-core-1.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/sun/jersey/jersey-json/1.9/jersey-json-1.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/codehaus/jettison/jettison/1.1/jettison-1.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'javax/activation/activation/1.1/activation-1.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/codehaus/jackson/jackson-jaxrs/1.8.3/jackson-jaxrs-1.8.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/codehaus/jackson/jackson-xc/1.8.3/jackson-xc-1.8.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/sun/jersey/jersey-server/1.9/jersey-server-1.9.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'asm/asm/3.1/asm-3.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'net/java/dev/jets3t/jets3t/0.9.0/jets3t-0.9.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/httpcomponents/httpclient/4.1.2/httpclient-4.1.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/httpcomponents/httpcore/4.1.2/httpcore-4.1.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/jamesmurty/utils/java-xmlbuilder/0.4/java-xmlbuilder-0.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-lang/commons-lang/2.6/commons-lang-2.6.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-configuration/commons-configuration/1.6/commons-configuration-1.6.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-digester/commons-digester/1.8/commons-digester-1.8.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'commons-beanutils/commons-beanutils-core/1.8.0/commons-beanutils-core-1.8.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/code/gson/gson/2.2.4/gson-2.2.4.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/hadoop/hadoop-auth/2.7.5/hadoop-auth-2.7.5.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/directory/server/apacheds-kerberos-codec/2.0.0-M15/apacheds-kerberos-codec-2.0.0-M15.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/directory/server/apacheds-i18n/2.0.0-M15/apacheds-i18n-2.0.0-M15.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/directory/api/api-asn1-api/1.0.0-M20/api-asn1-api-1.0.0-M20.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/directory/api/api-util/1.0.0-M20/api-util-1.0.0-M20.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/curator/curator-framework/2.7.1/curator-framework-2.7.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/jcraft/jsch/0.1.54/jsch-0.1.54.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/curator/curator-client/2.7.1/curator-client-2.7.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/curator/curator-recipes/2.7.1/curator-recipes-2.7.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/htrace/htrace-core/3.1.0-incubating/htrace-core-3.1.0-incubating.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/apache/avro/avro/1.8.2/avro-1.8.2.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'com/thoughtworks/paranamer/paranamer/2.7/paranamer-2.7.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/xerial/snappy/snappy-java/1.1.1.3/snappy-java-1.1.1.3.jar'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">'org/tukaani/xz/1.5/xz-1.5.jar'</span>\n    <span class=\"token punctuation\">]</span></code></pre></div>\n<p>Once these files have been added and adapted to your environment and model you can begin testing in a Jupyter Notebook.</p>\n<h2 id=\"jupyter-notebook\"><a href=\"#jupyter-notebook\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Jupyter Notebook</h2>\n<p>In this section we will build a simple example from scratch to demonstrate how to call your model.</p>\n<p>Pull up a blank Jupyter Notebook and import your <code class=\"language-text\">utils.py</code> module and define the params for your model as below:</p>\n<p class=\"code-header\">MyNotebook.ipynb</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> utils <span class=\"token keyword\">import</span> <span class=\"token operator\">*</span>\n\n<span class=\"token comment\">#Load notebook settings</span>\n<span class=\"token keyword\">with</span> <span class=\"token builtin\">open</span><span class=\"token punctuation\">(</span><span class=\"token string\">'notebook_settings.json'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'r'</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">as</span> f<span class=\"token punctuation\">:</span>\n    notebook_settings <span class=\"token operator\">=</span> json<span class=\"token punctuation\">.</span>load<span class=\"token punctuation\">(</span>f<span class=\"token punctuation\">)</span>\n    \nseed <span class=\"token operator\">=</span> <span class=\"token number\">12345678910</span>\nlevel <span class=\"token operator\">=</span> <span class=\"token string\">'WARN'</span> <span class=\"token comment\">#for the logger</span>\n\n<span class=\"token comment\">#create dict of VM and input parameters</span>\nparams <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token string\">'vm'</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token string\">'seed'</span><span class=\"token punctuation\">:</span> seed<span class=\"token punctuation\">,</span> <span class=\"token string\">'runs'</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'ticks'</span><span class=\"token punctuation\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'level'</span><span class=\"token punctuation\">:</span> level<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'config'</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token string\">'simudyne.core.export-path'</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'Output_{0}'</span><span class=\"token punctuation\">.</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>seed<span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'input'</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token string\">'input1'</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'input2'</span><span class=\"token punctuation\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'input3'</span> <span class=\"token punctuation\">:</span> <span class=\"token number\">1000</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'notebook_settings'</span> <span class=\"token punctuation\">:</span> notebook_settings\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>Now that you have set the <code class=\"language-text\">notebook_settings.json</code>, VM params, and model input params you can call your <code class=\"language-text\">run_sdk()</code> function and return your results dict with the data from your runs:</p>\n<p class=\"code-header\">MyNotebook.ipynb</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">res<span class=\"token punctuation\">,</span> run_ids<span class=\"token punctuation\">,</span> dataset_ <span class=\"token operator\">=</span> run_sdk<span class=\"token punctuation\">(</span>params<span class=\"token punctuation\">,</span> notebook_settings<span class=\"token punctuation\">[</span><span class=\"token string\">'maven_repo'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> java_cmd<span class=\"token operator\">=</span>notebook_settings<span class=\"token punctuation\">[</span><span class=\"token string\">'java_cmd'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>To better understand the structure/contents of the <code class=\"language-text\">res</code>, <code class=\"language-text\">run_ids</code>, and <code class=\"language-text\">dataset_</code> return variables, reference the <code class=\"language-text\">get_res()</code> function in your <code class=\"language-text\">utils.py</code> file.</p>\n<h2 id=\"conclusion\"><a href=\"#conclusion\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>Running the SDK from an external tool requires the ability to call a Java executable JAR file. We provided this example in Python using Jupyter notebook as this is a popular analysis tool with users of the Simudyne SDK. Other languages and applications have similar features in place for running subprocesses or making callouts to Java and should likely have no problem running your Simudyne SDK models as well. </p>","headings":[{"value":"Introduction","depth":2},{"value":"Sections covered","depth":3},{"value":"1. Creating & Running an executable JAR","depth":2},{"value":"Creating a JAR","depth":3},{"value":"Running a JAR","depth":3},{"value":"2. Python subprocess","depth":2},{"value":"Jupyter Notebook","depth":2},{"value":"Conclusion","depth":2}],"frontmatter":{"title":"SDK with Jupyter Notebook","toc":null,"experimental":true}},"site":{"siteMetadata":{"title":"Simudyne Docs","latestVersion":"2.6"}}},"pageContext":{"absolutePath":"/home/vsts/work/1/s/content/2.5/reference/experimental/jupyter_notebook.md","versioned":true,"version":"2.5","kind":"reference","pagePath":"/reference/experimental/jupyter_notebook","chronology":{"prev":{"name":"System Messaging","path":"/reference/experimental/system_messaging"},"next":{"name":"Configuration","path":"/reference/configuration"}},"lastUpdated":"2026-04-21T13:56:54.861Z"}}