Repository: seeq12/seeq-mps (language: python)

Issue:
Task/jh/spy compatibility
add in spy compatibility 


Discussion / hints:

Fix patch:
diff --git a/.gitignore b/.gitignore
index 6392cce..35109ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,6 @@
 /venv2
 /dist
 /build
-/seeq_mps.egg-info
\ No newline at end of file
+/seeq_mps.egg-info
+/.vscode
+*.pyc
\ No newline at end of file
diff --git a/additional_content/mpsworkflowexample.png b/additional_content/mpsworkflowexample.png
new file mode 100644
index 0000000..d240a47
Binary files /dev/null and b/additional_content/mpsworkflowexample.png differ
diff --git a/addon.json b/addon.json
new file mode 100644
index 0000000..4a2bffa
--- /dev/null
+++ b/addon.json
@@ -0,0 +1,66 @@
+{
+    "identifier": "com.seeq.addon.mps",
+    "name": "Multivariate Pattern Search",
+    "description": "Finds and measures similar events defined across multiple variables",
+    "version": "Input version here",
+    "license": "Apache-2.0 license",
+    "icon": "fa fa-leaf",
+    "tags": {"maintainer":"Seeq"},
+    "previews": [
+      "additional_content/mpsworkflowexample.png"
+    ],
+    "elements": [
+      {
+        "name": "Multivariate Pattern Search",
+        "description": "Finds and measures similar events defined across multiple variables",
+        "identifier": "com.seeq.addon.mps.mps",
+        "type": "AddOnTool",
+        "path": "data-lab-functions",
+        "notebook_file_path": "multivariate_pattern_search_ui.ipynb",
+        "extensions": ["ipyvuetify", "widgetsnbextension","ipyvue"],
+        "configuration_schema": {
+          "type": "object",
+          "properties": {
+            "display": {
+              "type": "object",
+              "properties": {
+                "icon": {
+                  "type": "string",
+                  "default": "fa fa-leaf"
+                },
+                "linkType": {
+                  "enum": ["window", "tab", "none"],
+                  "default": "window"
+                },
+                "sortKey": {
+                  "type": "string",
+                  "default": "m"
+                },
+                "windowDetails": {
+                  "type": "string",
+                  "default": "toolbar=0,location=0,scrollbars=1,statusbar=0,menubar=0,resizable=1,height=900,width=600"
+                },
+                "reuseWindow": {
+                  "type": "boolean",
+                  "default": true
+                },
+                "includeWorkbookParameters": {
+                  "type": "boolean",
+                  "default": true
+                }
+              },
+              "required": [
+                "icon",
+                "linkType",
+                "sortKey",
+                "windowDetails",
+                "reuseWindow",
+                "includeWorkbookParameters"
+              ]
+            }
+          },
+          "required": ["display"]
+        }
+      }
+    ]
+}
\ No newline at end of file
diff --git a/build.py b/build.py
new file mode 100644
index 0000000..9bcb318
--- /dev/null
+++ b/build.py
@@ -0,0 +1,150 @@
+import sys
+import os
+import json
+import zipfile
+import pathlib
+import shutil
+import argparse
+import subprocess
+from pathlib import Path
+from artifactory import ArtifactoryPath
+
+parser = argparse.ArgumentParser()
+parser.add_argument(
+    '-d', '--distribute',
+    help='Upload the built files to their distribution channels.',
+    action='store_true'
+)
+parser.add_argument(
+    '-c', '--compile',
+    help='Produce a compiled version of the code in addition to the source version',
+    action='store_true'
+)
+parser.add_argument(
+    '-a', '--addon',
+    help='Produce a zipped version for installation through the addon manager.',
+    action='store_true'
+)
+args = parser.parse_args()
+
+# build the distribution
+distribution_relative_dir = 'dist'
+distribution_abs_dir = os.path.join(os.getcwd(), distribution_relative_dir)
+if os.path.isdir(distribution_abs_dir):
+    shutil.rmtree(distribution_abs_dir)
+build_command = ['python3.8', 'setup.py', 'bdist_wheel',
+                 '-d', distribution_relative_dir,
+                 f'--python-tag=py{sys.version_info.major}{sys.version_info.minor}']
+subprocess.run(build_command, cwd=os.getcwd())
+source_wheel = max(
+    [os.path.join(distribution_abs_dir, f) for f in os.listdir(distribution_abs_dir)],
+    key=os.path.getctime
+)
+
+source_wheel_name = os.path.split(source_wheel)[-1]
+version = source_wheel_name.split('-')[1]
+
+compiled_wheel = None
+if args.compile:
+    print('Creating pyc file')
+    pyc_relative_dir = os.path.join(distribution_relative_dir, 'bin')
+    pyc_abs_dir = os.path.join(distribution_abs_dir, 'bin')
+    build_command = [sys.executable, 'setup.py', 'bdist_egg',
+                     '-d', pyc_relative_dir,
+                     '--exclude-source-files',
+                     '-m', '+c']
+    build_result = subprocess.run(build_command, cwd=os.getcwd(), capture_output=True, text=True)
+    wheel_command = ['wheel', 'convert', os.path.join(pyc_relative_dir, '*.egg'), '-d', pyc_relative_dir]
+    wheel_result = subprocess.run(wheel_command, cwd=os.getcwd(), capture_output=True, text=True)
+
+    # move the pyc wheel file to the dist dir
+    path = Path('.')
+    wheel_file = list(path.glob('**/bin/*.whl'))[0]
+    wheel_file.rename(Path(wheel_file.parent.parent, wheel_file.name))
+    compiled_wheel = os.path.join(wheel_file.parent.parent, wheel_file.name)
+
+    # remove the bin dir
+    shutil.rmtree(pyc_abs_dir)
+
+addon_manager_artifacts = []
+if args.addon:
+    name = 'mps'
+    print(f'Creating {name}.addon')
+    # Ensure output folder exists
+    bin = os.path.join(os.getcwd(), 'bin')
+    if not os.path.exists(bin):
+        os.makedirs(bin)
+
+    with open('addon.json') as json_file:
+        parsed_json = json.load(json_file)
+    parsed_json['version'] = version
+
+    addon = os.path.join(bin, f'{name}.addon')
+    addon_meta = os.path.join(bin, f'{name}.addonmeta')
+
+    # Build addon
+    with zipfile.ZipFile(addon, 'w') as z:
+        z.write(source_wheel, arcname=os.path.join('data-lab-functions', source_wheel_name))
+        z.writestr('data-lab-functions/requirements.txt', f"./{source_wheel_name}")
+        with z.open("addon.json", "w") as c:
+            c.write(json.dumps(parsed_json, indent=2).encode("utf-8"))
+        directory = pathlib.Path("./seeq/addons/mps/deployment_notebook/")
+        for file in directory.rglob('*ipynb'):
+            z.write(file, arcname=os.path.join('data-lab-functions', file.name))
+        directory = pathlib.Path("./additional_content/")
+        for file in directory.iterdir():
+            z.write(file)
+        addon_manager_artifacts.append(addon)
+    # Build addonmeta
+    print(f'Creating {name}.addonmeta')
+    with zipfile.ZipFile(addon_meta, 'w') as z:
+        with z.open("addon.json", "w") as c:
+            c.write(json.dumps(parsed_json, indent=2).encode("utf-8"))
+        directory = pathlib.Path("./additional_content/")
+        for file in directory.iterdir():
+            z.write(file)
+        addon_manager_artifacts.append(addon_meta)
+
+    print('Successfully created.')
+
+if args.distribute:
+
+    # THIS BLOCK OF CODE IS NO MORE IN USE BUT COULD LATER BE USED IN FUTURE PURPOSES
+    # if compiled_wheel is not None:
+    #     print(f'Distributing compiled wheel {compiled_wheel} to pipy.seeq.com')
+    #     command_distribute_compiled = \
+    #         ['twine', 'upload',
+    #          '--repository-url', 'https://pypi.seeq.com',
+    #          '-u', username,
+    #          '-p', password,
+    #          compiled_wheel]
+    #     result = subprocess.run(' '.join(command_distribute_compiled))
+    #     if result.stderr:
+    #         print(f'There was an error uploading the compiled version: {result.stderr}')
+    #
+    # print(f'Distributing source wheel {source_wheel} to pypi.seeq.com:8081')
+    # command_distribute_source = \
+    #     ['twine', 'upload',
+    #      '--repository-url', 'https://pypi.seeq.com:8081',
+    #      '-u', username,
+    #      '-p', password,
+    #      source_wheel]
+    # result = subprocess.run(' '.join(command_distribute_source))
+    # if result.stderr:
+    #     print(f'There was an error uploading the source version: {result.stderr}')
+
+    if addon_manager_artifacts:
+        print(f'Distributing addon manager artifacts to seeq.jfrog.io')
+        api_key = os.getenv('JFROG_API_KEY')
+        for artifact in addon_manager_artifacts:
+            _, file = os.path.split(artifact)
+            path = ArtifactoryPath(f"https://seeq.jfrog.io/artifactory/seeq-add-ons-prod-local/MPS/{file}",
+                                   apikey=api_key)
+            try:
+                path.deploy_file(artifact)
+                properties = path.properties
+                # Add identifier property
+                properties["identifier"] = "com.seeq.addon.mps"
+                path.properties = properties
+            except Exception as e:
+                print(e)
\ No newline at end of file
diff --git a/docs/.buildinfo b/docs/.buildinfo
index 9509794..e637b75 100644
--- a/docs/.buildinfo
+++ b/docs/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 453c5033e0073cec06bfc0c629464f62
+config: edda4a5e011af0560c8e3a788a3bb741
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/_modules/index.html b/docs/_modules/index.html
index 56280f9..563b4e7 100644
--- a/docs/_modules/index.html
+++ b/docs/_modules/index.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Overview: module code &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Overview: module code &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -26,7 +26,7 @@
             <a href="../index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
diff --git a/docs/_modules/seeq/addons/mps/__main__.html b/docs/_modules/seeq/addons/mps/__main__.html
index 7a6de73..385ef91 100644
--- a/docs/_modules/seeq/addons/mps/__main__.html
+++ b/docs/_modules/seeq/addons/mps/__main__.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>seeq.addons.mps.__main__ &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>seeq.addons.mps.__main__ &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../../_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -26,7 +26,7 @@
             <a href="../../../../index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
diff --git a/docs/_modules/seeq/addons/mps/_mps.html b/docs/_modules/seeq/addons/mps/_mps.html
index f6a045b..5f98f44 100644
--- a/docs/_modules/seeq/addons/mps/_mps.html
+++ b/docs/_modules/seeq/addons/mps/_mps.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>seeq.addons.mps._mps &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>seeq.addons.mps._mps &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../../_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -26,7 +26,7 @@
             <a href="../../../../index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
@@ -677,7 +677,7 @@ <h1>Source code for seeq.addons.mps._mps</h1><div class="highlight"><pre>
         <span class="k">for</span> <span class="n">time_distort_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">time_distort</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span>
             <span class="n">search_size_stretch</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">known</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span><span class="n">time_distort_</span> <span class="o">/</span> <span class="mi">100</span><span class="p">))</span>
             <span class="c1"># size of steps taken during dtw distance measurement across the dataset</span>
-            <span class="n">window_step</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1">#round(len(known) * 0.05)</span>
+            <span class="n">window_step</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">round</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">known</span><span class="p">)</span> <span class="o">*</span> <span class="mf">0.05</span><span class="p">))</span>
             <span class="k">if</span> <span class="n">window_step</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
                 <span class="n">window_step</span> <span class="o">=</span> <span class="mi">1</span>
             <span class="k">for</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">data_pull</span><span class="o">.</span><span class="n">columns</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]:</span>
@@ -772,7 +772,7 @@ <h1>Source code for seeq.addons.mps._mps</h1><div class="highlight"><pre>
         <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">found_all_sorted</span><span class="o">.</span><span class="n">index</span><span class="p">:</span>
             <span class="n">loc_c</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">var</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">found_all_sorted</span><span class="p">[</span><span class="mi">3</span><span class="p">][</span><span class="n">i</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">found_all_sorted</span><span class="p">[</span><span class="mi">4</span><span class="p">][</span><span class="n">i</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
             <span class="n">loc_i</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">found_all_sorted</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="n">i</span><span class="p">])</span>
-            <span class="n">found_all_sorted</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">found_all_sorted</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">meta_data</span><span class="p">[</span><span class="n">loc_c</span><span class="p">][</span><span class="n">loc_i</span> <span class="o">/</span> <span class="n">window_step</span><span class="p">]</span>
+            <span class="n">found_all_sorted</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">found_all_sorted</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">meta_data</span><span class="p">[</span><span class="n">loc_c</span><span class="p">][</span><span class="nb">int</span><span class="p">(</span><span class="n">loc_i</span> <span class="o">/</span> <span class="n">window_step</span><span class="p">)]</span>
 
     <span class="n">found_all_sorted</span><span class="p">[</span><span class="s1">&#39;sum&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">found_all_sorted</span><span class="o">.</span><span class="n">loc</span><span class="p">[:,</span> <span class="mi">5</span><span class="p">:]</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
     <span class="k">if</span> <span class="n">found_all_sorted</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
diff --git a/docs/_modules/seeq/addons/mps/_mps_sdl_ui.html b/docs/_modules/seeq/addons/mps/_mps_sdl_ui.html
index 9141d9e..915c527 100644
--- a/docs/_modules/seeq/addons/mps/_mps_sdl_ui.html
+++ b/docs/_modules/seeq/addons/mps/_mps_sdl_ui.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>seeq.addons.mps._mps_sdl_ui &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>seeq.addons.mps._mps_sdl_ui &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../../_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -26,7 +26,7 @@
             <a href="../../../../index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
diff --git a/docs/_sources/changelog.md.txt b/docs/_sources/changelog.md.txt
index 7d31f94..ed6863f 100644
--- a/docs/_sources/changelog.md.txt
+++ b/docs/_sources/changelog.md.txt
@@ -1,5 +1,9 @@
 # Changelog
 
+v0.3.5
+---
+Dtw improvments, fucntions to package MPS for use in addon manager
+
 v0.3.4
 ---
 Dtw bugfix, install bugfix for future SDL upgrades and pytest update
diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js
index 8704950..ec9f2b1 100644
--- a/docs/_static/documentation_options.js
+++ b/docs/_static/documentation_options.js
@@ -1,6 +1,6 @@
 var DOCUMENTATION_OPTIONS = {
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
-    VERSION: '0.3.4',
+    VERSION: '0.3.5',
     LANGUAGE: 'en',
     COLLAPSE_INDEX: false,
     BUILDER: 'html',
diff --git a/docs/add_on_installation.html b/docs/add_on_installation.html
index 3285de4..abd09bb 100644
--- a/docs/add_on_installation.html
+++ b/docs/add_on_installation.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Add-on Installation &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Add-on Installation &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/backend_calculations.html b/docs/backend_calculations.html
index 5ef89c7..7f3083a 100644
--- a/docs/backend_calculations.html
+++ b/docs/backend_calculations.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Backend &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Backend &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/changelog.html b/docs/changelog.html
index ca7dca7..7356c48 100644
--- a/docs/changelog.html
+++ b/docs/changelog.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Changelog &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Changelog &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -47,6 +47,7 @@
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Use Cases</a></li>
 <li class="toctree-l1"><a class="reference internal" href="docstrings.html">Code Documentation</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Changelog</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#v0-3-5">v0.3.5</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#v0-3-4">v0.3.4</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#v0-3-3">v0.3.3</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#v0-3-2">v0.3.2</a></li>
@@ -82,6 +83,10 @@
              
   <section id="changelog">
 <h1>Changelog<a class="headerlink" href="#changelog" title="Permalink to this heading"></a></h1>
+<section id="v0-3-5">
+<h2>v0.3.5<a class="headerlink" href="#v0-3-5" title="Permalink to this heading"></a></h2>
+<p>Dtw improvments, fucntions to package MPS for use in addon manager</p>
+</section>
 <section id="v0-3-4">
 <h2>v0.3.4<a class="headerlink" href="#v0-3-4" title="Permalink to this heading"></a></h2>
 <p>Dtw bugfix, install bugfix for future SDL upgrades and pytest update</p>
diff --git a/docs/docstrings.html b/docs/docstrings.html
index dee0c13..6fcd391 100644
--- a/docs/docstrings.html
+++ b/docs/docstrings.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Code Documentation &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Code Documentation &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/examples.html b/docs/examples.html
index 3ea7969..d62fe74 100644
--- a/docs/examples.html
+++ b/docs/examples.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Example Use Cases &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Example Use Cases &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/genindex.html b/docs/genindex.html
index e9b02a3..465a5d0 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Index &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Index &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -26,7 +26,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/index.html b/docs/index.html
index 544f30a..3465b66 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Welcome to seeq-mps’s documentation! &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Welcome to seeq-mps’s documentation! &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -28,7 +28,7 @@
             <a href="#" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -105,6 +105,7 @@ <h1>Welcome to seeq-mps’s documentation!<a class="headerlink" href="#welcome-t
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="changelog.html#v0-3-5">v0.3.5</a></li>
 <li class="toctree-l2"><a class="reference internal" href="changelog.html#v0-3-4">v0.3.4</a></li>
 <li class="toctree-l2"><a class="reference internal" href="changelog.html#v0-3-3">v0.3.3</a></li>
 <li class="toctree-l2"><a class="reference internal" href="changelog.html#v0-3-2">v0.3.2</a></li>
diff --git a/docs/installation.html b/docs/installation.html
index 2196a33..1d9554c 100644
--- a/docs/installation.html
+++ b/docs/installation.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Installation &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Installation &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/introduction.html b/docs/introduction.html
index bc14698..ee6a20e 100644
--- a/docs/introduction.html
+++ b/docs/introduction.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Introduction &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Introduction &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/license.html b/docs/license.html
index d6cb14b..6a7a47c 100644
--- a/docs/license.html
+++ b/docs/license.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>License &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>License &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -28,7 +28,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/objects.inv b/docs/objects.inv
index 1a87a76..150110d 100644
Binary files a/docs/objects.inv and b/docs/objects.inv differ
diff --git a/docs/py-modindex.html b/docs/py-modindex.html
index 103414c..27be109 100644
--- a/docs/py-modindex.html
+++ b/docs/py-modindex.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Python Module Index &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Python Module Index &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/search.html b/docs/search.html
index de85798..14fb350 100644
--- a/docs/search.html
+++ b/docs/search.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Search &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>Search &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
     
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="#" method="get">
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 0509062..4f2c6e1 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1,1 +1,1 @@
-Search.setIndex({"docnames": ["add_on_installation", "backend_calculations", "changelog", "docstrings", "examples", "index", "installation", "introduction", "license", "user_guide", "user_interface"], "filenames": ["add_on_installation.rst", "backend_calculations.rst", "changelog.md", "docstrings.rst", "examples.md", "index.rst", "installation.md", "introduction.md", "license.md", "user_guide.md", "user_interface.rst"], "titles": ["Add-on Installation", "Backend", "Changelog", "Code Documentation", "Example Use Cases", "Welcome to seeq-mps\u2019s documentation!", "Installation", "Introduction", "License", "User Guide", "User Interface"], "terms": {"seeq": [0, 1, 2, 4, 7, 8, 9, 10], "addon": [0, 1, 6, 10], "mp": [0, 1, 2, 4, 6, 7, 10], "__main__": 0, "cli_interfac": 0, "sourc": [0, 1, 2, 5, 10], "tool": [0, 6, 9], "install_app": 0, "sdl_url_": 0, "sort_kei": 0, "none": 0, "permissions_group": 0, "list": [0, 1, 6, 10], "permissions_us": 0, "an": [0, 1, 8, 9, 10], "workbench": [0, 4, 9], "paramet": [0, 1, 10], "sdl_url": 0, "str": [0, 1, 10], "url": 0, "sdl": [0, 2], "contain": [0, 1, 4, 10], "e": [0, 9], "g": [0, 4], "http": [0, 1, 6, 8], "my": 0, "com": [0, 6], "data": [0, 1, 4, 5, 9], "lab": [0, 4, 5], "6ab49411": 0, "917e": 0, "44cc": 0, "ba19": 0, "5ee0f903100c": 0, "default": [0, 9], "A": [0, 1, 4], "string": [0, 1], "typic": [0, 4], "one": [0, 1, 6, 9], "charact": 0, "letter": 0, "The": [0, 1, 4, 6, 9, 10], "determin": [0, 7], "order": [0, 1], "which": [0, 1, 4, 7], "ar": [0, 1, 4, 6, 7, 9, 10], "displai": [0, 1, 4, 9], "panel": [0, 9], "name": [0, 1, 9, 10], "group": [0, 1, 6, 9], "have": [0, 4], "access": [0, 6], "each": [0, 1, 4, 7, 9], "user": [0, 3, 4, 5, 7], "return": [0, 1, 9, 10], "analysi": [0, 1, 5, 9, 10], "appear": 0, "": [0, 1, 4, 9], "type": [0, 1, 4], "_mp": 1, "gather_workbook_worksheet_meta_data": 1, "workbook_id": [1, 10], "worksheet_id": [1, 10], "thi": [1, 4, 7, 8, 9, 10], "function": [1, 9, 10], "gather": 1, "workbook": [1, 4, 9, 10], "object": 1, "worksheet": [1, 4, 9, 10], "index": [1, 5, 10], "id": [1, 10], "desired_workbook": 1, "spy": [1, 2], "_workbook": 1, "meta": 1, "sheet_index": [1, 10], "int": [1, 10], "integ": [1, 9, 10], "detail": [1, 4, 9, 10], "known_select": 1, "data_pull_c": 1, "data_pull_known": 1, "select_": 1, "us": [1, 5, 6, 8, 10], "known": [1, 4, 6, 9], "start": [1, 4, 6, 10], "end": [1, 4, 10], "time": [1, 4, 7, 9], "refer": [1, 4, 7, 9], "capsul": [1, 4, 9], "extract": 1, "seri": [1, 4], "from": [1, 4, 5, 9, 10], "entir": 1, "set": [1, 4, 7, 9], "within": [1, 9, 10], "investig": [1, 4, 9, 10], "rang": [1, 9, 10], "pd": 1, "datafram": 1, "minim": 1, "ha": [1, 4, 9], "column": 1, "x": 1, "y": 1, "signal": [1, 4, 7, 9, 10], "request": 1, "pull": 1, "items_s_ref": 1, "input": [1, 9], "variabl": [1, 4, 9], "date": 1, "timestamp": 1, "all": [1, 4, 9, 10], "profil": [1, 7], "search": [1, 5, 7, 9], "area": [1, 4], "select": [1, 7, 9], "strictli": 1, "onli": 1, "knownlength": 1, "length": 1, "load_ref": 1, "load_nam": 1, "mypath": 1, "load": [1, 9], "metadata": 1, "previous": 1, "save": [1, 9], "pickl": 1, "file": [1, 6], "path": 1, "folder": 1, "color": 1, "line": 1, "style": 1, "width": 1, "lane": 1, "sampl": 1, "axi": 1, "auto": 1, "scale": [1, 9], "align": 1, "show": [1, 4], "describ": [1, 9], "condit": [1, 4, 8, 9, 10], "i": [1, 4, 6, 7, 8, 9], "uncertain": 1, "pull_mps_data": 1, "signal_pull_list": 1, "time_fram": 1, "grid": 1, "requir": [1, 5, 8, 9, 10], "To": [1, 9], "datetim": [1, 10], "resolut": 1, "gride": 1, "data_pul": 1, "pull_ref_data": 1, "limit": [1, 8, 9], "timefram": [1, 9], "instruct": [1, 6], "rate": [1, 4], "push_mps_result": 1, "return_top_x": 1, "min_idx_multivar": 1, "condition_nam": 1, "push": [1, 2, 10], "similar": [1, 4, 7, 9], "score": [1, 7], "di": 1, "new": [1, 4, 6, 9], "desir": [1, 9], "case": [1, 5], "continu": [1, 5, 7, 10], "mode": [1, 5, 7, 9, 10], "In": [1, 7, 9], "addit": [1, 6], "contribut": [1, 4, 7, 9], "also": [1, 7, 9], "per": [1, 4, 7], "number": [1, 9], "top": [1, 9], "found": [1, 6, 9, 10], "numpi": 1, "ndarrai": 1, "arrai": 1, "three": 1, "1st": 1, "measur": [1, 4, 9], "float": 1, "0": [1, 5, 6, 8], "1": [1, 5], "2nd": 1, "rel": [1, 4, 9], "3rd": 1, "durat": [1, 7, 9], "defin": [1, 9], "leverag": 1, "item": 1, "indic": [1, 4], "ui": [1, 2, 7, 9], "success": 1, "bool": 1, "push_mps_results_batch": 1, "batch_sim_df": 1, "batch": [1, 5, 7, 10], "result": [1, 4, 9, 10], "center": 1, "save_ref": 1, "known_cap": 1, "save_nam": 1, "seeq_mps_dtw": 1, "threshold": [1, 9], "normalis": 1, "sim_": 1, "time_distort": 1, "distanc": 1, "between": [1, 9], "space": 1, "over": 1, "mani": [1, 4], "window": [1, 6, 9], "size": [1, 9], "achiev": [1, 9], "utilis": [1, 9], "dynam": [1, 9], "warp": [1, 9], "algorithm": [1, 7, 9], "smallest": 1, "point": [1, 4, 9], "correspond": [1, 4, 9], "assign": [1, 9], "step": [1, 9], "through": [1, 4], "calcul": [1, 3, 5], "period": [1, 9], "It": [1, 6, 9], "loop": 1, "dataset": [1, 4], "sum": 1, "accumul": 1, "can": [1, 4, 6, 9], "befor": 1, "Then": 1, "convert": [1, 4], "compar": [1, 4, 9], "minimum": 1, "possibl": 1, "zero": 1, "maximum": 1, "largest": 1, "invers": 1, "its": 1, "self": 1, "final": 1, "intend": 1, "appli": [1, 9], "process": [1, 4, 7], "technic": 1, "www": [1, 8], "c": [1, 6], "unm": 1, "edu": 1, "mueen": 1, "dtw": [1, 2], "pdf": 1, "cutoff": 1, "algo": 1, "sim": 1, "distort": 1, "found_all_sort": 1, "seeq_mps_dtw_batch": 1, "batch_cond": 1, "instead": 1, "two": 1, "analys": [1, 4], "least": 1, "seeq_mps_mass": 1, "euclidean": 1, "same": [1, 4, 9], "mass": 1, "fastestsimilaritysearch": 1, "html": [1, 6], "sort_and_prepare_result": 1, "total_dist": 1, "window_step": 1, "max_": 1, "take": [1, 6, 9], "them": 1, "numer": 1, "comput": [1, 7], "against": [1, 4, 9], "remov": [1, 4], "overlap": 1, "event": [1, 4, 9], "most": [1, 9], "curv": 1, "iz": 1, "max": 1, "other": [1, 4], "found_list": 1, "sort": 1, "highest": [1, 9], "match": [1, 6], "found_sim": 1, "100": 1, "being": 1, "perfect": 1, "bugfix": 2, "instal": [2, 3, 5], "futur": [2, 9], "upgrad": 2, "pytest": 2, "updat": 2, "improv": 2, "compat": 2, "r58": 2, "initi": [2, 4], "open": [2, 6, 9], "version": [2, 6, 8], "add": [3, 4, 5, 6, 7, 9, 10], "backend": [3, 5, 6], "interfac": [3, 5], "small": 4, "subset": 4, "conduct": 4, "abil": [4, 9], "perform": 4, "basic": 4, "oxygen": 4, "steelmak": 4, "bo": 4, "pig": 4, "iron": 4, "steel": 4, "blow": 4, "lanc": 4, "vessel": 4, "carbon": 4, "figur": 4, "diagram": 4, "unit": 4, "compris": 4, "follow": [4, 6], "shown": 4, "audiomet": 4, "read": 4, "sensit": 4, "level": [4, 9], "slag": 4, "w": 4, "flow": 4, "wast": 4, "ga": 4, "wgf": 4, "sep": 4, "separ": 4, "height": 4, "abov": [4, 9], "bath": 4, "dc": 4, "dt": 4, "leav": 4, "xrf": 4, "fe": 4, "cp": 4, "xrai": 4, "fluoresc": 4, "count": 4, "second": 4, "trend": [4, 9], "singl": 4, "oper": [4, 9], "engin": 4, "monitor": 4, "optim": 4, "metric": 4, "review": [4, 9], "everi": [4, 9], "subsequ": 4, "produc": 4, "3": [4, 5, 6], "assess": [4, 7], "comparison": 4, "purpl": 4, "provid": [4, 7, 9], "enabl": [4, 6], "without": [4, 8], "wait": [4, 9], "4": [4, 5], "below": 4, "output": [4, 9], "run": [4, 6, 9, 10], "blue": 4, "bar": 4, "dissimilar": [4, 7, 9], "insight": 4, "gain": 4, "give": [4, 6, 9], "quantit": 4, "soon": 4, "complet": [4, 10], "assist": 4, "correct": 4, "action": 4, "highlight": [4, 7], "problem": 4, "cool": 4, "tower": 4, "5": 4, "compressor": 4, "power": 4, "kw": 4, "humid": 4, "temperatur": 4, "def": 4, "f": 4, "when": [4, 6, 9], "product": 4, "issu": [4, 6], "occur": 4, "often": 4, "extrem": 4, "valuabl": 4, "personnel": 4, "find": [4, 7], "instanc": 4, "histori": 4, "help": 4, "acceler": [4, 7], "creat": [4, 6, 9, 10], "context": 4, "6": 4, "zoom": 4, "view": [4, 9], "7": [4, 6], "8": 4, "sent": 4, "back": [4, 9], "identifi": [4, 9], "valu": [4, 9], "allow": [4, 7, 9], "quick": 4, "identif": 4, "characterist": [4, 9], "latest": [4, 6], "undesir": 4, "influenc": 4, "overal": [4, 9], "potenti": 4, "mai": [4, 8, 9], "good": 4, "candid": 4, "focu": [4, 9], "troubleshoot": [4, 5, 7], "effort": 4, "chain": 4, "introduct": 5, "depend": 5, "guid": [5, 6], "overview": [5, 7], "how": [5, 7], "applic": [5, 8], "exampl": [5, 6, 9], "golden": [5, 7, 9], "2": [5, 6, 8], "bad": 5, "actor": 5, "code": [5, 7], "changelog": 5, "v0": 5, "licens": 5, "modul": [5, 6], "page": 5, "python": 6, "later": 6, "see": [6, 8], "txt": 6, "addition": [6, 7], "you": [6, 8], "need": [6, 9], "appropri": 6, "your": 6, "server": 6, "For": 6, "more": [6, 9], "inform": [6, 7, 9, 10], "pypi": 6, "If": [6, 9], "want": [6, 9], "53": 6, "r54": 6, "whose": 6, "administr": 6, "build": 6, "project": 6, "here": 6, "wheel": 6, "publish": 6, "courtesi": 6, "doe": [6, 9], "impli": [6, 8], "ani": [6, 8, 10], "guarante": 6, "oblig": 6, "support": [6, 7], "termin": 6, "pip": 6, "m": 6, "prompt": 6, "usernam": 6, "kei": 6, "what": 6, "log": 6, "password": 6, "There": 6, "option": [6, 9, 10], "These": 6, "includ": [6, 9, 10], "chang": 6, "permiss": [6, 8], "me": 6, "would": 6, "get": 6, "clone": 6, "repositori": 6, "command": 6, "git": 6, "github": 6, "seeq12": 6, "develop": 6, "work": [6, 8], "highli": 6, "recommend": 6, "virtual": 6, "environ": 6, "packag": 6, "familiar": 6, "look": 6, "onc": 6, "activ": 6, "r": 6, "setup": 6, "py": 6, "experi": 6, "error": 6, "except": [6, 8], "compil": 6, "dtaidist": 6, "librari": 6, "avail": [6, 9], "document": 6, "altern": 6, "could": 6, "pleas": 6, "readthedoc": 6, "io": 6, "en": 6, "usag": 6, "multivari": [7, 9], "pattern": [7, 9], "both": [7, 9], "visual": 7, "captur": 7, "prespecifi": 7, "observ": 7, "util": [7, 9], "diagnost": 7, "featur": 7, "flexibl": 7, "quantifi": [7, 9], "No": 7, "friendli": [7, 9], "handl": 7, "variat": 7, "quickli": 7, "caus": 7, "deviat": [7, 9], "scalabl": 7, "multipl": [7, 9], "asset": [7, 9], "copyright": 8, "2021": 8, "corpor": 8, "under": 8, "apach": 8, "complianc": 8, "obtain": [8, 10], "copi": 8, "org": 8, "unless": 8, "law": 8, "agre": 8, "write": 8, "softwar": 8, "distribut": 8, "AS": 8, "basi": 8, "warranti": 8, "OR": 8, "OF": 8, "kind": 8, "either": 8, "express": 8, "specif": 8, "languag": 8, "govern": 8, "click": 9, "locat": 9, "like": 9, "given": 9, "than": 9, "vari": 9, "across": 9, "frame": 9, "cut": 9, "off": 9, "10": 9, "80": 9, "combin": 9, "meet": 9, "configur": 9, "percentag": 9, "thei": 9, "much": 9, "simpli": 9, "ensembl": 9, "target": 9, "advanc": 9, "custom": 9, "constrain": 9, "absolut": 9, "base": [9, 10], "fix": 9, "tempor": 9, "posit": 9, "shape": 9, "so": 9, "magnitud": 9, "detect": 9, "import": 9, "delai": 9, "volum": 9, "differ": 9, "even": 9, "train": 9, "facil": 9, "anoth": 9, "capabl": 9, "effect": 9, "divers": 9, "aim": 9, "analog": 9, "automat": 9, "manual": 9, "launch": [9, 10], "tab": 9, "ons": 9, "sub": 9, "menu": 9, "relev": 9, "interest": 9, "90": 9, "upper": 9, "slider": 9, "degre": 9, "execut": 9, "button": 9, "turn": 9, "green": 9, "close": 9, "refresh": 9, "webpag": 9, "steadi": 9, "state": 9, "abnorm": 9, "vertic": 9, "catastroph": 9, "equip": 9, "failur": 9, "long": 9, "term": 9, "degrad": 9, "qualiti": 9, "standard": 9, "pharma": 9, "chemic": 9, "food": 9, "bev": 9, "cpg": 9, "procedur": 9, "class": 10, "_mps_sdl_ui": 10, "mpsui": 10, "kwarg": 10, "vbox": 10, "ipywidget": 10, "wa": 10, "specifi": 10, "local": 10, "get_worksheet_data": 10, "pre": 10, "popul": 10, "condition_list": 10, "signal_list": 10, "sheet_start": 10, "sheet_end": 10}, "objects": {"seeq.addons.mps": [[0, 0, 0, "-", "__main__"], [1, 0, 0, "-", "_mps"], [10, 0, 0, "-", "_mps_sdl_ui"]], "seeq.addons.mps.__main__": [[0, 1, 1, "", "cli_interface"], [0, 1, 1, "", "install_app"]], "seeq.addons.mps._mps": [[1, 1, 1, "", "gather_workbook_worksheet_meta_data"], [1, 1, 1, "", "known_select"], [1, 1, 1, "", "load_ref"], [1, 1, 1, "", "pull_mps_data"], [1, 1, 1, "", "pull_ref_data"], [1, 1, 1, "", "push_mps_results"], [1, 1, 1, "", "push_mps_results_batch"], [1, 1, 1, "", "save_ref"], [1, 1, 1, "", "seeq_mps_dtw"], [1, 1, 1, "", "seeq_mps_dtw_batch"], [1, 1, 1, "", "seeq_mps_mass"], [1, 1, 1, "", "sort_and_prepare_results"]], "seeq.addons.mps._mps_sdl_ui": [[10, 2, 1, "", "MpsUI"]], "seeq.addons.mps._mps_sdl_ui.MpsUI": [[10, 3, 1, "", "get_worksheet_data"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"]}, "titleterms": {"add": 0, "instal": [0, 6], "backend": 1, "changelog": 2, "v0": 2, "3": 2, "4": 2, "2": [2, 4], "0": 2, "code": 3, "document": [3, 5], "content": [3, 5], "exampl": 4, "us": [4, 9], "case": 4, "1": 4, "batch": [4, 9], "mode": 4, "golden": 4, "analysi": 4, "continu": [4, 9], "bad": 4, "actor": 4, "search": 4, "welcom": 5, "seeq": [5, 6], "mp": [5, 9], "": 5, "indic": 5, "tabl": 5, "depend": 6, "user": [6, 9, 10], "requir": 6, "data": 6, "lab": 6, "from": 6, "sourc": 6, "troubleshoot": 6, "introduct": 7, "licens": 8, "guid": 9, "overview": 9, "how": 9, "workflow": 9, "applic": 9, "process": 9, "interfac": 10}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Add-on Installation": [[0, "module-seeq.addons.mps.__main__"]], "Backend": [[1, "module-seeq.addons.mps._mps"]], "Changelog": [[2, "changelog"]], "v0.3.4": [[2, "v0-3-4"]], "v0.3.3": [[2, "v0-3-3"]], "v0.3.2": [[2, "v0-3-2"]], "v0.3.0": [[2, "v0-3-0"]], "Code Documentation": [[3, "code-documentation"]], "Contents:": [[3, null], [5, null]], "Example Use Cases": [[4, "example-use-cases"]], "Example Use Case 1. Batch Mode: Golden batch analysis": [[4, "example-use-case-1-batch-mode-golden-batch-analysis"]], "Example Use Case 2. Continuous Mode: Bad actor search": [[4, "example-use-case-2-continuous-mode-bad-actor-search"]], "Welcome to seeq-mps\u2019s documentation!": [[5, "welcome-to-seeq-mps-s-documentation"]], "Indices and tables": [[5, "indices-and-tables"]], "Installation": [[6, "installation"]], "Dependencies": [[6, "dependencies"]], "User Installation Requirements (Seeq Data Lab)": [[6, "user-installation-requirements-seeq-data-lab"]], "User Installation (Seeq Data Lab)": [[6, "user-installation-seeq-data-lab"]], "Installation from source": [[6, "installation-from-source"]], "Troubleshooting": [[6, "troubleshooting"]], "Introduction": [[7, "introduction"]], "License": [[8, "license"]], "User Guide": [[9, "user-guide"]], "Overview": [[9, "overview"]], "How to Use": [[9, "how-to-use"]], "Workflow": [[9, "workflow"]], "MPS Applications": [[9, "mps-applications"]], "Continuous Processing": [[9, "continuous-processing"]], "Batch Processing": [[9, "batch-processing"]], "User Interface": [[10, "module-seeq.addons.mps._mps_sdl_ui"]]}, "indexentries": {"cli_interface() (in module seeq.addons.mps.__main__)": [[0, "seeq.addons.mps.__main__.cli_interface"]], "install_app() (in module seeq.addons.mps.__main__)": [[0, "seeq.addons.mps.__main__.install_app"]], "module": [[0, "module-seeq.addons.mps.__main__"], [1, "module-seeq.addons.mps._mps"], [10, "module-seeq.addons.mps._mps_sdl_ui"]], "seeq.addons.mps.__main__": [[0, "module-seeq.addons.mps.__main__"]], "gather_workbook_worksheet_meta_data() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.gather_workbook_worksheet_meta_data"]], "known_select() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.known_select"]], "load_ref() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.load_ref"]], "pull_mps_data() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.pull_mps_data"]], "pull_ref_data() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.pull_ref_data"]], "push_mps_results() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.push_mps_results"]], "push_mps_results_batch() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.push_mps_results_batch"]], "save_ref() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.save_ref"]], "seeq.addons.mps._mps": [[1, "module-seeq.addons.mps._mps"]], "seeq_mps_dtw() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.seeq_mps_dtw"]], "seeq_mps_dtw_batch() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.seeq_mps_dtw_batch"]], "seeq_mps_mass() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.seeq_mps_mass"]], "sort_and_prepare_results() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.sort_and_prepare_results"]], "mpsui (class in seeq.addons.mps._mps_sdl_ui)": [[10, "seeq.addons.mps._mps_sdl_ui.MpsUI"]], "get_worksheet_data() (seeq.addons.mps._mps_sdl_ui.mpsui method)": [[10, "seeq.addons.mps._mps_sdl_ui.MpsUI.get_worksheet_data"]], "seeq.addons.mps._mps_sdl_ui": [[10, "module-seeq.addons.mps._mps_sdl_ui"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["add_on_installation", "backend_calculations", "changelog", "docstrings", "examples", "index", "installation", "introduction", "license", "user_guide", "user_interface"], "filenames": ["add_on_installation.rst", "backend_calculations.rst", "changelog.md", "docstrings.rst", "examples.md", "index.rst", "installation.md", "introduction.md", "license.md", "user_guide.md", "user_interface.rst"], "titles": ["Add-on Installation", "Backend", "Changelog", "Code Documentation", "Example Use Cases", "Welcome to seeq-mps\u2019s documentation!", "Installation", "Introduction", "License", "User Guide", "User Interface"], "terms": {"seeq": [0, 1, 2, 4, 7, 8, 9, 10], "addon": [0, 1, 2, 6, 10], "mp": [0, 1, 2, 4, 6, 7, 10], "__main__": 0, "cli_interfac": 0, "sourc": [0, 1, 2, 5, 10], "tool": [0, 6, 9], "install_app": 0, "sdl_url_": 0, "sort_kei": 0, "none": 0, "permissions_group": 0, "list": [0, 1, 6, 10], "permissions_us": 0, "an": [0, 1, 8, 9, 10], "workbench": [0, 4, 9], "paramet": [0, 1, 10], "sdl_url": 0, "str": [0, 1, 10], "url": 0, "sdl": [0, 2], "contain": [0, 1, 4, 10], "e": [0, 9], "g": [0, 4], "http": [0, 1, 6, 8], "my": 0, "com": [0, 6], "data": [0, 1, 4, 5, 9], "lab": [0, 4, 5], "6ab49411": 0, "917e": 0, "44cc": 0, "ba19": 0, "5ee0f903100c": 0, "default": [0, 9], "A": [0, 1, 4], "string": [0, 1], "typic": [0, 4], "one": [0, 1, 6, 9], "charact": 0, "letter": 0, "The": [0, 1, 4, 6, 9, 10], "determin": [0, 7], "order": [0, 1], "which": [0, 1, 4, 7], "ar": [0, 1, 4, 6, 7, 9, 10], "displai": [0, 1, 4, 9], "panel": [0, 9], "name": [0, 1, 9, 10], "group": [0, 1, 6, 9], "have": [0, 4], "access": [0, 6], "each": [0, 1, 4, 7, 9], "user": [0, 3, 4, 5, 7], "return": [0, 1, 9, 10], "analysi": [0, 1, 5, 9, 10], "appear": 0, "": [0, 1, 4, 9], "type": [0, 1, 4], "_mp": 1, "gather_workbook_worksheet_meta_data": 1, "workbook_id": [1, 10], "worksheet_id": [1, 10], "thi": [1, 4, 7, 8, 9, 10], "function": [1, 9, 10], "gather": 1, "workbook": [1, 4, 9, 10], "object": 1, "worksheet": [1, 4, 9, 10], "index": [1, 5, 10], "id": [1, 10], "desired_workbook": 1, "spy": [1, 2], "_workbook": 1, "meta": 1, "sheet_index": [1, 10], "int": [1, 10], "integ": [1, 9, 10], "detail": [1, 4, 9, 10], "known_select": 1, "data_pull_c": 1, "data_pull_known": 1, "select_": 1, "us": [1, 2, 5, 6, 8, 10], "known": [1, 4, 6, 9], "start": [1, 4, 6, 10], "end": [1, 4, 10], "time": [1, 4, 7, 9], "refer": [1, 4, 7, 9], "capsul": [1, 4, 9], "extract": 1, "seri": [1, 4], "from": [1, 4, 5, 9, 10], "entir": 1, "set": [1, 4, 7, 9], "within": [1, 9, 10], "investig": [1, 4, 9, 10], "rang": [1, 9, 10], "pd": 1, "datafram": 1, "minim": 1, "ha": [1, 4, 9], "column": 1, "x": 1, "y": 1, "signal": [1, 4, 7, 9, 10], "request": 1, "pull": 1, "items_s_ref": 1, "input": [1, 9], "variabl": [1, 4, 9], "date": 1, "timestamp": 1, "all": [1, 4, 9, 10], "profil": [1, 7], "search": [1, 5, 7, 9], "area": [1, 4], "select": [1, 7, 9], "strictli": 1, "onli": 1, "knownlength": 1, "length": 1, "load_ref": 1, "load_nam": 1, "mypath": 1, "load": [1, 9], "metadata": 1, "previous": 1, "save": [1, 9], "pickl": 1, "file": [1, 6], "path": 1, "folder": 1, "color": 1, "line": 1, "style": 1, "width": 1, "lane": 1, "sampl": 1, "axi": 1, "auto": 1, "scale": [1, 9], "align": 1, "show": [1, 4], "describ": [1, 9], "condit": [1, 4, 8, 9, 10], "i": [1, 4, 6, 7, 8, 9], "uncertain": 1, "pull_mps_data": 1, "signal_pull_list": 1, "time_fram": 1, "grid": 1, "requir": [1, 5, 8, 9, 10], "To": [1, 9], "datetim": [1, 10], "resolut": 1, "gride": 1, "data_pul": 1, "pull_ref_data": 1, "limit": [1, 8, 9], "timefram": [1, 9], "instruct": [1, 6], "rate": [1, 4], "push_mps_result": 1, "return_top_x": 1, "min_idx_multivar": 1, "condition_nam": 1, "push": [1, 2, 10], "similar": [1, 4, 7, 9], "score": [1, 7], "di": 1, "new": [1, 4, 6, 9], "desir": [1, 9], "case": [1, 5], "continu": [1, 5, 7, 10], "mode": [1, 5, 7, 9, 10], "In": [1, 7, 9], "addit": [1, 6], "contribut": [1, 4, 7, 9], "also": [1, 7, 9], "per": [1, 4, 7], "number": [1, 9], "top": [1, 9], "found": [1, 6, 9, 10], "numpi": 1, "ndarrai": 1, "arrai": 1, "three": 1, "1st": 1, "measur": [1, 4, 9], "float": 1, "0": [1, 5, 6, 8], "1": [1, 5], "2nd": 1, "rel": [1, 4, 9], "3rd": 1, "durat": [1, 7, 9], "defin": [1, 9], "leverag": 1, "item": 1, "indic": [1, 4], "ui": [1, 2, 7, 9], "success": 1, "bool": 1, "push_mps_results_batch": 1, "batch_sim_df": 1, "batch": [1, 5, 7, 10], "result": [1, 4, 9, 10], "center": 1, "save_ref": 1, "known_cap": 1, "save_nam": 1, "seeq_mps_dtw": 1, "threshold": [1, 9], "normalis": 1, "sim_": 1, "time_distort": 1, "distanc": 1, "between": [1, 9], "space": 1, "over": 1, "mani": [1, 4], "window": [1, 6, 9], "size": [1, 9], "achiev": [1, 9], "utilis": [1, 9], "dynam": [1, 9], "warp": [1, 9], "algorithm": [1, 7, 9], "smallest": 1, "point": [1, 4, 9], "correspond": [1, 4, 9], "assign": [1, 9], "step": [1, 9], "through": [1, 4], "calcul": [1, 3, 5], "period": [1, 9], "It": [1, 6, 9], "loop": 1, "dataset": [1, 4], "sum": 1, "accumul": 1, "can": [1, 4, 6, 9], "befor": 1, "Then": 1, "convert": [1, 4], "compar": [1, 4, 9], "minimum": 1, "possibl": 1, "zero": 1, "maximum": 1, "largest": 1, "invers": 1, "its": 1, "self": 1, "final": 1, "intend": 1, "appli": [1, 9], "process": [1, 4, 7], "technic": 1, "www": [1, 8], "c": [1, 6], "unm": 1, "edu": 1, "mueen": 1, "dtw": [1, 2], "pdf": 1, "cutoff": 1, "algo": 1, "sim": 1, "distort": 1, "found_all_sort": 1, "seeq_mps_dtw_batch": 1, "batch_cond": 1, "instead": 1, "two": 1, "analys": [1, 4], "least": 1, "seeq_mps_mass": 1, "euclidean": 1, "same": [1, 4, 9], "mass": 1, "fastestsimilaritysearch": 1, "html": [1, 6], "sort_and_prepare_result": 1, "total_dist": 1, "window_step": 1, "max_": 1, "take": [1, 6, 9], "them": 1, "numer": 1, "comput": [1, 7], "against": [1, 4, 9], "remov": [1, 4], "overlap": 1, "event": [1, 4, 9], "most": [1, 9], "curv": 1, "iz": 1, "max": 1, "other": [1, 4], "found_list": 1, "sort": 1, "highest": [1, 9], "match": [1, 6], "found_sim": 1, "100": 1, "being": 1, "perfect": 1, "improv": 2, "fucntion": 2, "packag": [2, 6], "manag": 2, "bugfix": 2, "instal": [2, 3, 5], "futur": [2, 9], "upgrad": 2, "pytest": 2, "updat": 2, "compat": 2, "r58": 2, "initi": [2, 4], "open": [2, 6, 9], "version": [2, 6, 8], "add": [3, 4, 5, 6, 7, 9, 10], "backend": [3, 5, 6], "interfac": [3, 5], "small": 4, "subset": 4, "conduct": 4, "abil": [4, 9], "perform": 4, "basic": 4, "oxygen": 4, "steelmak": 4, "bo": 4, "pig": 4, "iron": 4, "steel": 4, "blow": 4, "lanc": 4, "vessel": 4, "carbon": 4, "figur": 4, "diagram": 4, "unit": 4, "compris": 4, "follow": [4, 6], "shown": 4, "audiomet": 4, "read": 4, "sensit": 4, "level": [4, 9], "slag": 4, "w": 4, "flow": 4, "wast": 4, "ga": 4, "wgf": 4, "sep": 4, "separ": 4, "height": 4, "abov": [4, 9], "bath": 4, "dc": 4, "dt": 4, "leav": 4, "xrf": 4, "fe": 4, "cp": 4, "xrai": 4, "fluoresc": 4, "count": 4, "second": 4, "trend": [4, 9], "singl": 4, "oper": [4, 9], "engin": 4, "monitor": 4, "optim": 4, "metric": 4, "review": [4, 9], "everi": [4, 9], "subsequ": 4, "produc": 4, "3": [4, 5, 6], "assess": [4, 7], "comparison": 4, "purpl": 4, "provid": [4, 7, 9], "enabl": [4, 6], "without": [4, 8], "wait": [4, 9], "4": [4, 5], "below": 4, "output": [4, 9], "run": [4, 6, 9, 10], "blue": 4, "bar": 4, "dissimilar": [4, 7, 9], "insight": 4, "gain": 4, "give": [4, 6, 9], "quantit": 4, "soon": 4, "complet": [4, 10], "assist": 4, "correct": 4, "action": 4, "highlight": [4, 7], "problem": 4, "cool": 4, "tower": 4, "5": [4, 5], "compressor": 4, "power": 4, "kw": 4, "humid": 4, "temperatur": 4, "def": 4, "f": 4, "when": [4, 6, 9], "product": 4, "issu": [4, 6], "occur": 4, "often": 4, "extrem": 4, "valuabl": 4, "personnel": 4, "find": [4, 7], "instanc": 4, "histori": 4, "help": 4, "acceler": [4, 7], "creat": [4, 6, 9, 10], "context": 4, "6": 4, "zoom": 4, "view": [4, 9], "7": [4, 6], "8": 4, "sent": 4, "back": [4, 9], "identifi": [4, 9], "valu": [4, 9], "allow": [4, 7, 9], "quick": 4, "identif": 4, "characterist": [4, 9], "latest": [4, 6], "undesir": 4, "influenc": 4, "overal": [4, 9], "potenti": 4, "mai": [4, 8, 9], "good": 4, "candid": 4, "focu": [4, 9], "troubleshoot": [4, 5, 7], "effort": 4, "chain": 4, "introduct": 5, "depend": 5, "guid": [5, 6], "overview": [5, 7], "how": [5, 7], "applic": [5, 8], "exampl": [5, 6, 9], "golden": [5, 7, 9], "2": [5, 6, 8], "bad": 5, "actor": 5, "code": [5, 7], "changelog": 5, "v0": 5, "licens": 5, "modul": [5, 6], "page": 5, "python": 6, "later": 6, "see": [6, 8], "txt": 6, "addition": [6, 7], "you": [6, 8], "need": [6, 9], "appropri": 6, "your": 6, "server": 6, "For": 6, "more": [6, 9], "inform": [6, 7, 9, 10], "pypi": 6, "If": [6, 9], "want": [6, 9], "53": 6, "r54": 6, "whose": 6, "administr": 6, "build": 6, "project": 6, "here": 6, "wheel": 6, "publish": 6, "courtesi": 6, "doe": [6, 9], "impli": [6, 8], "ani": [6, 8, 10], "guarante": 6, "oblig": 6, "support": [6, 7], "termin": 6, "pip": 6, "m": 6, "prompt": 6, "usernam": 6, "kei": 6, "what": 6, "log": 6, "password": 6, "There": 6, "option": [6, 9, 10], "These": 6, "includ": [6, 9, 10], "chang": 6, "permiss": [6, 8], "me": 6, "would": 6, "get": 6, "clone": 6, "repositori": 6, "command": 6, "git": 6, "github": 6, "seeq12": 6, "develop": 6, "work": [6, 8], "highli": 6, "recommend": 6, "virtual": 6, "environ": 6, "familiar": 6, "look": 6, "onc": 6, "activ": 6, "r": 6, "setup": 6, "py": 6, "experi": 6, "error": 6, "except": [6, 8], "compil": 6, "dtaidist": 6, "librari": 6, "avail": [6, 9], "document": 6, "altern": 6, "could": 6, "pleas": 6, "readthedoc": 6, "io": 6, "en": 6, "usag": 6, "multivari": [7, 9], "pattern": [7, 9], "both": [7, 9], "visual": 7, "captur": 7, "prespecifi": 7, "observ": 7, "util": [7, 9], "diagnost": 7, "featur": 7, "flexibl": 7, "quantifi": [7, 9], "No": 7, "friendli": [7, 9], "handl": 7, "variat": 7, "quickli": 7, "caus": 7, "deviat": [7, 9], "scalabl": 7, "multipl": [7, 9], "asset": [7, 9], "copyright": 8, "2021": 8, "corpor": 8, "under": 8, "apach": 8, "complianc": 8, "obtain": [8, 10], "copi": 8, "org": 8, "unless": 8, "law": 8, "agre": 8, "write": 8, "softwar": 8, "distribut": 8, "AS": 8, "basi": 8, "warranti": 8, "OR": 8, "OF": 8, "kind": 8, "either": 8, "express": 8, "specif": 8, "languag": 8, "govern": 8, "click": 9, "locat": 9, "like": 9, "given": 9, "than": 9, "vari": 9, "across": 9, "frame": 9, "cut": 9, "off": 9, "10": 9, "80": 9, "combin": 9, "meet": 9, "configur": 9, "percentag": 9, "thei": 9, "much": 9, "simpli": 9, "ensembl": 9, "target": 9, "advanc": 9, "custom": 9, "constrain": 9, "absolut": 9, "base": [9, 10], "fix": 9, "tempor": 9, "posit": 9, "shape": 9, "so": 9, "magnitud": 9, "detect": 9, "import": 9, "delai": 9, "volum": 9, "differ": 9, "even": 9, "train": 9, "facil": 9, "anoth": 9, "capabl": 9, "effect": 9, "divers": 9, "aim": 9, "analog": 9, "automat": 9, "manual": 9, "launch": [9, 10], "tab": 9, "ons": 9, "sub": 9, "menu": 9, "relev": 9, "interest": 9, "90": 9, "upper": 9, "slider": 9, "degre": 9, "execut": 9, "button": 9, "turn": 9, "green": 9, "close": 9, "refresh": 9, "webpag": 9, "steadi": 9, "state": 9, "abnorm": 9, "vertic": 9, "catastroph": 9, "equip": 9, "failur": 9, "long": 9, "term": 9, "degrad": 9, "qualiti": 9, "standard": 9, "pharma": 9, "chemic": 9, "food": 9, "bev": 9, "cpg": 9, "procedur": 9, "class": 10, "_mps_sdl_ui": 10, "mpsui": 10, "kwarg": 10, "vbox": 10, "ipywidget": 10, "wa": 10, "specifi": 10, "local": 10, "get_worksheet_data": 10, "pre": 10, "popul": 10, "condition_list": 10, "signal_list": 10, "sheet_start": 10, "sheet_end": 10}, "objects": {"seeq.addons.mps": [[0, 0, 0, "-", "__main__"], [1, 0, 0, "-", "_mps"], [10, 0, 0, "-", "_mps_sdl_ui"]], "seeq.addons.mps.__main__": [[0, 1, 1, "", "cli_interface"], [0, 1, 1, "", "install_app"]], "seeq.addons.mps._mps": [[1, 1, 1, "", "gather_workbook_worksheet_meta_data"], [1, 1, 1, "", "known_select"], [1, 1, 1, "", "load_ref"], [1, 1, 1, "", "pull_mps_data"], [1, 1, 1, "", "pull_ref_data"], [1, 1, 1, "", "push_mps_results"], [1, 1, 1, "", "push_mps_results_batch"], [1, 1, 1, "", "save_ref"], [1, 1, 1, "", "seeq_mps_dtw"], [1, 1, 1, "", "seeq_mps_dtw_batch"], [1, 1, 1, "", "seeq_mps_mass"], [1, 1, 1, "", "sort_and_prepare_results"]], "seeq.addons.mps._mps_sdl_ui": [[10, 2, 1, "", "MpsUI"]], "seeq.addons.mps._mps_sdl_ui.MpsUI": [[10, 3, 1, "", "get_worksheet_data"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"]}, "titleterms": {"add": 0, "instal": [0, 6], "backend": 1, "changelog": 2, "v0": 2, "3": 2, "5": 2, "4": 2, "2": [2, 4], "0": 2, "code": 3, "document": [3, 5], "content": [3, 5], "exampl": 4, "us": [4, 9], "case": 4, "1": 4, "batch": [4, 9], "mode": 4, "golden": 4, "analysi": 4, "continu": [4, 9], "bad": 4, "actor": 4, "search": 4, "welcom": 5, "seeq": [5, 6], "mp": [5, 9], "": 5, "indic": 5, "tabl": 5, "depend": 6, "user": [6, 9, 10], "requir": 6, "data": 6, "lab": 6, "from": 6, "sourc": 6, "troubleshoot": 6, "introduct": 7, "licens": 8, "guid": 9, "overview": 9, "how": 9, "workflow": 9, "applic": 9, "process": 9, "interfac": 10}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Add-on Installation": [[0, "module-seeq.addons.mps.__main__"]], "Backend": [[1, "module-seeq.addons.mps._mps"]], "Changelog": [[2, "changelog"]], "v0.3.5": [[2, "v0-3-5"]], "v0.3.4": [[2, "v0-3-4"]], "v0.3.3": [[2, "v0-3-3"]], "v0.3.2": [[2, "v0-3-2"]], "v0.3.0": [[2, "v0-3-0"]], "Code Documentation": [[3, "code-documentation"]], "Contents:": [[3, null], [5, null]], "Example Use Cases": [[4, "example-use-cases"]], "Example Use Case 1. Batch Mode: Golden batch analysis": [[4, "example-use-case-1-batch-mode-golden-batch-analysis"]], "Example Use Case 2. Continuous Mode: Bad actor search": [[4, "example-use-case-2-continuous-mode-bad-actor-search"]], "Welcome to seeq-mps\u2019s documentation!": [[5, "welcome-to-seeq-mps-s-documentation"]], "Indices and tables": [[5, "indices-and-tables"]], "Installation": [[6, "installation"]], "Dependencies": [[6, "dependencies"]], "User Installation Requirements (Seeq Data Lab)": [[6, "user-installation-requirements-seeq-data-lab"]], "User Installation (Seeq Data Lab)": [[6, "user-installation-seeq-data-lab"]], "Installation from source": [[6, "installation-from-source"]], "Troubleshooting": [[6, "troubleshooting"]], "Introduction": [[7, "introduction"]], "License": [[8, "license"]], "User Guide": [[9, "user-guide"]], "Overview": [[9, "overview"]], "How to Use": [[9, "how-to-use"]], "Workflow": [[9, "workflow"]], "MPS Applications": [[9, "mps-applications"]], "Continuous Processing": [[9, "continuous-processing"]], "Batch Processing": [[9, "batch-processing"]], "User Interface": [[10, "module-seeq.addons.mps._mps_sdl_ui"]]}, "indexentries": {"cli_interface() (in module seeq.addons.mps.__main__)": [[0, "seeq.addons.mps.__main__.cli_interface"]], "install_app() (in module seeq.addons.mps.__main__)": [[0, "seeq.addons.mps.__main__.install_app"]], "module": [[0, "module-seeq.addons.mps.__main__"], [1, "module-seeq.addons.mps._mps"], [10, "module-seeq.addons.mps._mps_sdl_ui"]], "seeq.addons.mps.__main__": [[0, "module-seeq.addons.mps.__main__"]], "gather_workbook_worksheet_meta_data() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.gather_workbook_worksheet_meta_data"]], "known_select() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.known_select"]], "load_ref() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.load_ref"]], "pull_mps_data() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.pull_mps_data"]], "pull_ref_data() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.pull_ref_data"]], "push_mps_results() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.push_mps_results"]], "push_mps_results_batch() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.push_mps_results_batch"]], "save_ref() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.save_ref"]], "seeq.addons.mps._mps": [[1, "module-seeq.addons.mps._mps"]], "seeq_mps_dtw() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.seeq_mps_dtw"]], "seeq_mps_dtw_batch() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.seeq_mps_dtw_batch"]], "seeq_mps_mass() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.seeq_mps_mass"]], "sort_and_prepare_results() (in module seeq.addons.mps._mps)": [[1, "seeq.addons.mps._mps.sort_and_prepare_results"]], "mpsui (class in seeq.addons.mps._mps_sdl_ui)": [[10, "seeq.addons.mps._mps_sdl_ui.MpsUI"]], "get_worksheet_data() (seeq.addons.mps._mps_sdl_ui.mpsui method)": [[10, "seeq.addons.mps._mps_sdl_ui.MpsUI.get_worksheet_data"]], "seeq.addons.mps._mps_sdl_ui": [[10, "module-seeq.addons.mps._mps_sdl_ui"]]}})
\ No newline at end of file
diff --git a/docs/user_guide.html b/docs/user_guide.html
index 4f39fbf..0d62568 100644
--- a/docs/user_guide.html
+++ b/docs/user_guide.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>User Guide &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>User Guide &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs/user_interface.html b/docs/user_interface.html
index 2e6fc6d..c0868e4 100644
--- a/docs/user_interface.html
+++ b/docs/user_interface.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>User Interface &mdash; seeq-mps 0.3.4 documentation</title>
+  <title>User Interface &mdash; seeq-mps 0.3.5 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
   <!--[if lt IE 9]>
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> seeq-mps
           </a>
               <div class="version">
-                0.3.4
+                0.3.5
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
diff --git a/docs_src/changelog.md b/docs_src/changelog.md
index 7d31f94..ed6863f 100644
--- a/docs_src/changelog.md
+++ b/docs_src/changelog.md
@@ -1,5 +1,9 @@
 # Changelog
 
+v0.3.5
+---
+Dtw improvments, fucntions to package MPS for use in addon manager
+
 v0.3.4
 ---
 Dtw bugfix, install bugfix for future SDL upgrades and pytest update
diff --git a/requirements.txt b/requirements.txt
index 29e6aa2..796698b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -15,3 +15,4 @@ wheel~=0.38.1
 packaging~=21.0
 pytz~=2021.3
 setuptools>=65.5.1
+dohq-artifactory==0.8.1
\ No newline at end of file
diff --git a/seeq/addons/mps/_mps.py b/seeq/addons/mps/_mps.py
index 583686c..7bb910c 100644
--- a/seeq/addons/mps/_mps.py
+++ b/seeq/addons/mps/_mps.py
@@ -603,7 +603,7 @@ def seeq_mps_dtw(data_pull, data_pull_c, data_pull_known, threshold, normalise,
         for time_distort_ in range(0, 1 + time_distort, 1):
             search_size_stretch = int(known.shape[0] * (time_distort_ / 100))
             # size of steps taken during dtw distance measurement across the dataset
-            window_step = 1 #round(len(known) * 0.05)
+            window_step = int(round(len(known) * 0.05))
             if window_step <= 0:
                 window_step = 1
             for var in data_pull.columns[:-1]:
@@ -698,7 +698,7 @@ def seeq_mps_dtw(data_pull, data_pull_c, data_pull_known, threshold, normalise,
         for i in found_all_sorted.index:
             loc_c = str(var) + '_' + str(found_all_sorted[3][i])[0] + str(found_all_sorted[4][i])[0]
             loc_i = int(found_all_sorted[1][i])
-            found_all_sorted[len(found_all_sorted.columns) - 1][i] = meta_data[loc_c][loc_i / window_step]
+            found_all_sorted[len(found_all_sorted.columns) - 1][i] = meta_data[loc_c][int(loc_i / window_step)]
 
     found_all_sorted['sum'] = found_all_sorted.loc[:, 5:].sum(axis=1)
     if found_all_sorted.shape[0] == 0:
diff --git a/seeq/addons/mps/_mps_sdl_ui.py b/seeq/addons/mps/_mps_sdl_ui.py
index 3a592d5..babe559 100644
--- a/seeq/addons/mps/_mps_sdl_ui.py
+++ b/seeq/addons/mps/_mps_sdl_ui.py
@@ -30,6 +30,9 @@ def __init__(self, server, workbook_id, worksheet_id):
         self.workbook_id = workbook_id
         self.worksheet_id = worksheet_id
 
+        # Set the compatibility option so that you maximize the chance that SPy will remain compatible with your notebook/script
+        spy.options.compatibility = 187.5
+
         max_name = 0
 
         # get name to push
diff --git a/seeq/addons/mps/_version.py b/seeq/addons/mps/_version.py
index a8a1bf6..5547ce2 100644
--- a/seeq/addons/mps/_version.py
+++ b/seeq/addons/mps/_version.py
@@ -1,1 +1,1 @@
-__version__ = '0.3.4'
\ No newline at end of file
+__version__ = '0.3.6'
\ No newline at end of file


Test patch:
diff --git a/tests/__pycache__/__init__.cpython-37.pyc b/tests/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 190e2d7..0000000
Binary files a/tests/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/tests/__pycache__/__init__.cpython-38.pyc b/tests/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index 59febe6..0000000
Binary files a/tests/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/tests/__pycache__/test_seeqmps.cpython-37-PYTEST.pyc b/tests/__pycache__/test_seeqmps.cpython-37-PYTEST.pyc
deleted file mode 100644
index b31cfb5..0000000
Binary files a/tests/__pycache__/test_seeqmps.cpython-37-PYTEST.pyc and /dev/null differ
diff --git a/tests/__pycache__/test_seeqmps.cpython-38-PYTEST.pyc b/tests/__pycache__/test_seeqmps.cpython-38-PYTEST.pyc
deleted file mode 100644
index 5e266d7..0000000
Binary files a/tests/__pycache__/test_seeqmps.cpython-38-PYTEST.pyc and /dev/null differ
diff --git a/tests/test_objects/cts_dtw_results.pkl b/tests/test_objects/cts_dtw_results.pkl
index 3f3d829..11c1356 100644
Binary files a/tests/test_objects/cts_dtw_results.pkl and b/tests/test_objects/cts_dtw_results.pkl differ