quarchpy 2.1.17.dev2__py2.py3-none-any.whl → 2.1.18__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- quarchpy/.idea/.name +1 -1
- quarchpy/.idea/workspace.xml +40 -40
- quarchpy/__pycache__/_version.cpython-311.pyc +0 -0
- quarchpy/__pycache__/run.cpython-311.pyc +0 -0
- quarchpy/_version.py +1 -1
- quarchpy/connection_specific/QPS/qis/help.txt +1 -7
- quarchpy/connection_specific/QPS/qis/qis.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/CInterface-1.7.04.jar +0 -0
- quarchpy/connection_specific/QPS/qps.jar +0 -0
- quarchpy/connection_specific/QPS/scriptCommands.txt +2 -2
- quarchpy/connection_specific/__pycache__/connection_QPS.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_ReST.cpython-311.pyc +0 -0
- quarchpy/connection_specific/connection_mDNS.py +4 -7
- quarchpy/connection_specific/connection_mDNS.py.bak +48 -0
- quarchpy/debug/SystemTest.py +6 -1
- quarchpy/debug/SystemTest.py.bak +188 -0
- quarchpy/debug/__pycache__/SystemTest.cpython-311.pyc +0 -0
- quarchpy/debug/__pycache__/module_debug.cpython-311.pyc +0 -0
- quarchpy/device/__pycache__/scanDevices.cpython-311.pyc +0 -0
- quarchpy/device/scanDevices.py +7 -26
- quarchpy/device/scanDevices.py.bak +645 -0
- quarchpy/docs/CHANGES.rst +18 -0
- quarchpy/docs/_build/doctrees/CHANGES.doctree +0 -0
- quarchpy/docs/_build/doctrees/environment.pickle +0 -0
- quarchpy/docs/_build/doctrees/source/changelog.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.fio.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.qis.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.qps.doctree +0 -0
- quarchpy/docs/_build/html/CHANGES.html +121 -101
- quarchpy/docs/_build/html/_sources/CHANGES.rst.txt +14 -0
- quarchpy/docs/_build/html/genindex.html +27 -2
- quarchpy/docs/_build/html/index.html +54 -51
- quarchpy/docs/_build/html/objects.inv +0 -0
- quarchpy/docs/_build/html/py-modindex.html +5 -0
- quarchpy/docs/_build/html/searchindex.js +1 -1
- quarchpy/docs/_build/html/source/changelog.html +175 -152
- quarchpy/docs/_build/html/source/modules.html +1 -1
- quarchpy/docs/_build/html/source/quarchpy.fio.html +28 -2
- quarchpy/docs/_build/html/source/quarchpy.html +12 -1
- quarchpy/docs/_build/html/source/quarchpy.qis.html +12 -0
- quarchpy/docs/_build/html/source/quarchpy.qps.html +14 -2
- quarchpy/fio/__pycache__/FIO_interface.cpython-311.pyc +0 -0
- quarchpy/qis/__pycache__/qisFuncs.cpython-311.pyc +0 -0
- quarchpy/qis/qisFuncs.py +54 -12
- quarchpy/qps/__pycache__/qpsFuncs.cpython-311.pyc +0 -0
- quarchpy/qps/qpsFuncs.py +60 -20
- quarchpy/qps/qpsFuncs.py.bak +66 -18
- {quarchpy-2.1.17.dev2.dist-info → quarchpy-2.1.18.dist-info}/METADATA +22 -1
- {quarchpy-2.1.17.dev2.dist-info → quarchpy-2.1.18.dist-info}/RECORD +51 -80
- quarchpy/connection_specific/QPS/qis/qis_lib/CInterface-1.7.02.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/CInterface-1.7.8.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Collections-1.2.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Collections-2.4.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Desktop-1.0.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Desktop-1.1.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Executor-3.11.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Executor-3.13.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/JNA-1.0.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/JNA-1.2.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/OS-1.6.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/OS-1.8.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/QuarchCommon-0.2.9.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/SystemTray-4.2.1.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/SystemTray-4.4.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Updates-1.1.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Utilities-1.39.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/Utilities-1.46.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/commons-csv-1.8.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/javassist-3.29.2-GA.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/jna-jpms-5.12.1.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/jna-platform-jpms-5.12.1.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/kotlin-stdlib-1.7.22.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/kotlin-stdlib-1.9.21.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/slf4j-api-2.0.9.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/slf4j-simple-2.0.9.jar +0 -0
- quarchpy/connection_specific/QPS/qis/resources/filters/filters.csv +0 -1004
- quarchpy/connection_specific/QPS/qis/resources/filters/iec_filters.xml +0 -21
- quarchpy/connection_specific/QPS/qps_lib/QuarchCommon-0.2.11.jar +0 -0
- quarchpy/connection_specific/QPS/qps_lib/commons-lang3-3.12.0.jar +0 -0
- quarchpy/connection_specific/QPS/qps_lib/opencsv-5.9.jar +0 -0
- quarchpy/connection_specific/QPS/qps_lib/qis-1.40.jar +0 -0
- {quarchpy-2.1.17.dev2.dist-info → quarchpy-2.1.18.dist-info}/WHEEL +0 -0
- {quarchpy-2.1.17.dev2.dist-info → quarchpy-2.1.18.dist-info}/top_level.txt +0 -0
@@ -102,7 +102,7 @@
|
|
102
102
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.fio.html">quarchpy.fio package</a><ul>
|
103
103
|
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#submodules">Submodules</a></li>
|
104
104
|
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#module-quarchpy.fio.FIO_interface">quarchpy.fio.FIO_interface module</a></li>
|
105
|
-
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#quarchpy
|
105
|
+
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#module-quarchpy.fio.fioDiskFinder">quarchpy.fio.fioDiskFinder module</a></li>
|
106
106
|
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#module-quarchpy.fio">Module contents</a></li>
|
107
107
|
</ul>
|
108
108
|
</li>
|
@@ -69,8 +69,34 @@
|
|
69
69
|
<dd></dd></dl>
|
70
70
|
|
71
71
|
</section>
|
72
|
-
<section id="quarchpy
|
73
|
-
<h2>quarchpy.fio.fioDiskFinder module<a class="headerlink" href="#quarchpy
|
72
|
+
<section id="module-quarchpy.fio.fioDiskFinder">
|
73
|
+
<span id="quarchpy-fio-fiodiskfinder-module"></span><h2>quarchpy.fio.fioDiskFinder module<a class="headerlink" href="#module-quarchpy.fio.fioDiskFinder" title="Link to this heading">¶</a></h2>
|
74
|
+
<dl class="py class">
|
75
|
+
<dt class="sig sig-object py" id="quarchpy.fio.fioDiskFinder.fioDiskFinder">
|
76
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">quarchpy.fio.fioDiskFinder.</span></span><span class="sig-name descname"><span class="pre">fioDiskFinder</span></span><a class="headerlink" href="#quarchpy.fio.fioDiskFinder.fioDiskFinder" title="Link to this definition">¶</a></dt>
|
77
|
+
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">AbsDiskFinder</span></code></p>
|
78
|
+
<dl class="py method">
|
79
|
+
<dt class="sig sig-object py" id="quarchpy.fio.fioDiskFinder.fioDiskFinder.bytes2human">
|
80
|
+
<span class="sig-name descname"><span class="pre">bytes2human</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.fio.fioDiskFinder.fioDiskFinder.bytes2human" title="Link to this definition">¶</a></dt>
|
81
|
+
<dd></dd></dl>
|
82
|
+
|
83
|
+
<dl class="py method">
|
84
|
+
<dt class="sig sig-object py" id="quarchpy.fio.fioDiskFinder.fioDiskFinder.findDevices">
|
85
|
+
<span class="sig-name descname"><span class="pre">findDevices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.fio.fioDiskFinder.fioDiskFinder.findDevices" title="Link to this definition">¶</a></dt>
|
86
|
+
<dd></dd></dl>
|
87
|
+
|
88
|
+
<dl class="py method">
|
89
|
+
<dt class="sig sig-object py" id="quarchpy.fio.fioDiskFinder.fioDiskFinder.formatList">
|
90
|
+
<span class="sig-name descname"><span class="pre">formatList</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">deviceList</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.fio.fioDiskFinder.fioDiskFinder.formatList" title="Link to this definition">¶</a></dt>
|
91
|
+
<dd></dd></dl>
|
92
|
+
|
93
|
+
<dl class="py method">
|
94
|
+
<dt class="sig sig-object py" id="quarchpy.fio.fioDiskFinder.fioDiskFinder.returnDisk">
|
95
|
+
<span class="sig-name descname"><span class="pre">returnDisk</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.fio.fioDiskFinder.fioDiskFinder.returnDisk" title="Link to this definition">¶</a></dt>
|
96
|
+
<dd></dd></dl>
|
97
|
+
|
98
|
+
</dd></dl>
|
99
|
+
|
74
100
|
</section>
|
75
101
|
<section id="module-quarchpy.fio">
|
76
102
|
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-quarchpy.fio" title="Link to this heading">¶</a></h2>
|
@@ -205,6 +205,7 @@
|
|
205
205
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qis.html#quarchpy.qis.qisFuncs.check_remote_qis"><code class="docutils literal notranslate"><span class="pre">check_remote_qis()</span></code></a></li>
|
206
206
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qis.html#quarchpy.qis.qisFuncs.closeQis"><code class="docutils literal notranslate"><span class="pre">closeQis()</span></code></a></li>
|
207
207
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qis.html#quarchpy.qis.qisFuncs.isQisRunning"><code class="docutils literal notranslate"><span class="pre">isQisRunning()</span></code></a></li>
|
208
|
+
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qis.html#quarchpy.qis.qisFuncs.reader"><code class="docutils literal notranslate"><span class="pre">reader()</span></code></a></li>
|
208
209
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qis.html#quarchpy.qis.qisFuncs.startLocalQis"><code class="docutils literal notranslate"><span class="pre">startLocalQis()</span></code></a></li>
|
209
210
|
</ul>
|
210
211
|
</li>
|
@@ -286,6 +287,7 @@
|
|
286
287
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qps.html#quarchpy.qps.qpsFuncs.closeQps"><code class="docutils literal notranslate"><span class="pre">closeQps()</span></code></a></li>
|
287
288
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qps.html#quarchpy.qps.qpsFuncs.isQpsRunning"><code class="docutils literal notranslate"><span class="pre">isQpsRunning()</span></code></a></li>
|
288
289
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qps.html#quarchpy.qps.qpsFuncs.legacyAdjustTime"><code class="docutils literal notranslate"><span class="pre">legacyAdjustTime()</span></code></a></li>
|
290
|
+
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qps.html#quarchpy.qps.qpsFuncs.reader"><code class="docutils literal notranslate"><span class="pre">reader()</span></code></a></li>
|
289
291
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qps.html#quarchpy.qps.qpsFuncs.startLocalQps"><code class="docutils literal notranslate"><span class="pre">startLocalQps()</span></code></a></li>
|
290
292
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.qps.html#quarchpy.qps.qpsFuncs.toQpsTimeStamp"><code class="docutils literal notranslate"><span class="pre">toQpsTimeStamp()</span></code></a></li>
|
291
293
|
</ul>
|
@@ -506,7 +508,16 @@
|
|
506
508
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.fio.html#quarchpy.fio.FIO_interface.timeNow"><code class="docutils literal notranslate"><span class="pre">timeNow()</span></code></a></li>
|
507
509
|
</ul>
|
508
510
|
</li>
|
509
|
-
<li class="toctree-l2"><a class="reference internal" href="quarchpy.fio.html#quarchpy
|
511
|
+
<li class="toctree-l2"><a class="reference internal" href="quarchpy.fio.html#module-quarchpy.fio.fioDiskFinder">quarchpy.fio.fioDiskFinder module</a><ul>
|
512
|
+
<li class="toctree-l3"><a class="reference internal" href="quarchpy.fio.html#quarchpy.fio.fioDiskFinder.fioDiskFinder"><code class="docutils literal notranslate"><span class="pre">fioDiskFinder</span></code></a><ul>
|
513
|
+
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#quarchpy.fio.fioDiskFinder.fioDiskFinder.bytes2human"><code class="docutils literal notranslate"><span class="pre">fioDiskFinder.bytes2human()</span></code></a></li>
|
514
|
+
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#quarchpy.fio.fioDiskFinder.fioDiskFinder.findDevices"><code class="docutils literal notranslate"><span class="pre">fioDiskFinder.findDevices()</span></code></a></li>
|
515
|
+
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#quarchpy.fio.fioDiskFinder.fioDiskFinder.formatList"><code class="docutils literal notranslate"><span class="pre">fioDiskFinder.formatList()</span></code></a></li>
|
516
|
+
<li class="toctree-l4"><a class="reference internal" href="quarchpy.fio.html#quarchpy.fio.fioDiskFinder.fioDiskFinder.returnDisk"><code class="docutils literal notranslate"><span class="pre">fioDiskFinder.returnDisk()</span></code></a></li>
|
517
|
+
</ul>
|
518
|
+
</li>
|
519
|
+
</ul>
|
520
|
+
</li>
|
510
521
|
<li class="toctree-l2"><a class="reference internal" href="quarchpy.fio.html#module-quarchpy.fio">Module contents</a><ul>
|
511
522
|
<li class="toctree-l3"><a class="reference internal" href="quarchpy.fio.html#quarchpy.fio.runFIO"><code class="docutils literal notranslate"><span class="pre">runFIO()</span></code></a></li>
|
512
523
|
</ul>
|
@@ -97,6 +97,18 @@ an address can be specified for remote systems.</p>
|
|
97
97
|
</dl>
|
98
98
|
</dd></dl>
|
99
99
|
|
100
|
+
<dl class="py function">
|
101
|
+
<dt class="sig sig-object py" id="quarchpy.qis.qisFuncs.reader">
|
102
|
+
<span class="sig-prename descclassname"><span class="pre">quarchpy.qis.qisFuncs.</span></span><span class="sig-name descname"><span class="pre">reader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stream</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">q</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lock</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stop_flag</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.qis.qisFuncs.reader" title="Link to this definition">¶</a></dt>
|
103
|
+
<dd><p>Used to read output and place it in a queue for multithreaded reading
|
104
|
+
:param stream:
|
105
|
+
:param q:
|
106
|
+
:param source:
|
107
|
+
:param lock: The lock for the queue
|
108
|
+
:param stop_flag: Flag to exit the loop and close the thread
|
109
|
+
:return: None</p>
|
110
|
+
</dd></dl>
|
111
|
+
|
100
112
|
<dl class="py function">
|
101
113
|
<dt class="sig sig-object py" id="quarchpy.qis.qisFuncs.startLocalQis">
|
102
114
|
<span class="sig-prename descclassname"><span class="pre">quarchpy.qis.qisFuncs.</span></span><span class="sig-name descname"><span class="pre">startLocalQis</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">terminal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">headless</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.qis.qisFuncs.startLocalQis" title="Link to this definition">¶</a></dt>
|
@@ -59,9 +59,21 @@
|
|
59
59
|
<span class="sig-prename descclassname"><span class="pre">quarchpy.qps.qpsFuncs.</span></span><span class="sig-name descname"><span class="pre">legacyAdjustTime</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timestamp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.qps.qpsFuncs.legacyAdjustTime" title="Link to this definition">¶</a></dt>
|
60
60
|
<dd></dd></dl>
|
61
61
|
|
62
|
+
<dl class="py function">
|
63
|
+
<dt class="sig sig-object py" id="quarchpy.qps.qpsFuncs.reader">
|
64
|
+
<span class="sig-prename descclassname"><span class="pre">quarchpy.qps.qpsFuncs.</span></span><span class="sig-name descname"><span class="pre">reader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stream</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">q</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lock</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stop_flag</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.qps.qpsFuncs.reader" title="Link to this definition">¶</a></dt>
|
65
|
+
<dd><p>Used to read output and place it in a queue for multithreaded reading
|
66
|
+
:param stream:
|
67
|
+
:param q:
|
68
|
+
:param source:
|
69
|
+
:param lock: The lock for the queue
|
70
|
+
:param stop_flag: Flag to exit the loop and close the thread
|
71
|
+
:return: None</p>
|
72
|
+
</dd></dl>
|
73
|
+
|
62
74
|
<dl class="py function">
|
63
75
|
<dt class="sig sig-object py" id="quarchpy.qps.qpsFuncs.startLocalQps">
|
64
|
-
<span class="sig-prename descclassname"><span class="pre">quarchpy.qps.qpsFuncs.</span></span><span class="sig-name descname"><span class="pre">startLocalQps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">keepQisRunning</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.qps.qpsFuncs.startLocalQps" title="Link to this definition">¶</a></dt>
|
76
|
+
<span class="sig-prename descclassname"><span class="pre">quarchpy.qps.qpsFuncs.</span></span><span class="sig-name descname"><span class="pre">startLocalQps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">keepQisRunning</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">30</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.qps.qpsFuncs.startLocalQps" title="Link to this definition">¶</a></dt>
|
65
77
|
<dd></dd></dl>
|
66
78
|
|
67
79
|
<dl class="py function">
|
@@ -109,7 +121,7 @@ Assumes</p>
|
|
109
121
|
|
110
122
|
<dl class="py function">
|
111
123
|
<dt class="sig sig-object py" id="quarchpy.qps.startLocalQps">
|
112
|
-
<span class="sig-prename descclassname"><span class="pre">quarchpy.qps.</span></span><span class="sig-name descname"><span class="pre">startLocalQps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">keepQisRunning</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.qps.startLocalQps" title="Link to this definition">¶</a></dt>
|
124
|
+
<span class="sig-prename descclassname"><span class="pre">quarchpy.qps.</span></span><span class="sig-name descname"><span class="pre">startLocalQps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">keepQisRunning</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">30</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quarchpy.qps.startLocalQps" title="Link to this definition">¶</a></dt>
|
113
125
|
<dd></dd></dl>
|
114
126
|
|
115
127
|
<dl class="py function">
|
Binary file
|
Binary file
|
quarchpy/qis/qisFuncs.py
CHANGED
@@ -3,7 +3,9 @@ Contains general functions for starting and stopping QIS processes
|
|
3
3
|
"""
|
4
4
|
|
5
5
|
import os, sys
|
6
|
-
import time, platform
|
6
|
+
import time, platform
|
7
|
+
from threading import Thread, Lock, Event, active_count
|
8
|
+
from queue import Queue, Empty
|
7
9
|
from quarchpy.connection_specific.connection_QIS import QisInterface
|
8
10
|
from quarchpy.user_interface.user_interface import printText
|
9
11
|
import subprocess
|
@@ -97,15 +99,7 @@ def startLocalQis(terminal=False, headless=False, args=None):
|
|
97
99
|
last_error = ""
|
98
100
|
last_out = ""
|
99
101
|
while not isQisRunning():
|
100
|
-
|
101
|
-
stdout, stderr = process.communicate()
|
102
|
-
if stderr is not None and stderr != last_error:
|
103
|
-
logging.error(str(stderr))
|
104
|
-
last_error = stderr
|
105
|
-
|
106
|
-
if stdout is not None and stdout != last_out:
|
107
|
-
printText(str(stdout))
|
108
|
-
last_out = stdout
|
102
|
+
_get_std_msg_and_err_from_QIS_process(process)
|
109
103
|
|
110
104
|
if time.time() - startTime > timeout:
|
111
105
|
raise TimeoutError("QIS failed to launch within timelimit of " + str(timeout) + " sec.")
|
@@ -115,6 +109,55 @@ def startLocalQis(terminal=False, headless=False, args=None):
|
|
115
109
|
os.chdir(current_direc)
|
116
110
|
|
117
111
|
|
112
|
+
def reader(stream, q, source, lock,stop_flag):
|
113
|
+
'''
|
114
|
+
Used to read output and place it in a queue for multithreaded reading
|
115
|
+
:param stream:
|
116
|
+
:param q:
|
117
|
+
:param source:
|
118
|
+
:param lock: The lock for the queue
|
119
|
+
:param stop_flag: Flag to exit the loop and close the thread
|
120
|
+
:return: None
|
121
|
+
'''
|
122
|
+
while not stop_flag.is_set():
|
123
|
+
line = stream.readline()
|
124
|
+
if not line:
|
125
|
+
break
|
126
|
+
with lock:
|
127
|
+
q.put((source, line.strip()))
|
128
|
+
|
129
|
+
|
130
|
+
def _get_std_msg_and_err_from_QIS_process(process):
|
131
|
+
'''
|
132
|
+
Uses multithreading to check for stderr and stdmsg passed by the process that launches QPS
|
133
|
+
This allows the user to understand why QPS might not have appeared.
|
134
|
+
:param process: The Process Used to launch QPS
|
135
|
+
:return: None
|
136
|
+
'''
|
137
|
+
# Read back stdmsg and stderr in seperate threads so they are non blocking
|
138
|
+
q = Queue()
|
139
|
+
lock = Lock()
|
140
|
+
stop_flag = Event()
|
141
|
+
|
142
|
+
t1 = Thread(target=reader, args=[process.stdout, q, 'stdout', lock, stop_flag])
|
143
|
+
t2 = Thread(target=reader, args=[process.stderr, q, 'stderr', lock, stop_flag])
|
144
|
+
t1.start()
|
145
|
+
t2.start()
|
146
|
+
counter = 0
|
147
|
+
# check for stderr or stdmsg from the queue
|
148
|
+
while counter <= 3: # If 3 empty reads from the queue then move on to see if QPS is running.
|
149
|
+
try:
|
150
|
+
source, line = q.get(timeout=1) # Wait for 1 second for new lines
|
151
|
+
counter = 0
|
152
|
+
if source == "stderr":
|
153
|
+
logging.error(f"{source}: {line}")
|
154
|
+
else:
|
155
|
+
printText(f"{source}: {line}")
|
156
|
+
except Empty:
|
157
|
+
counter += 1
|
158
|
+
stop_flag.set() #Close the threads and return to the main loop where QPS is check to see if its started yet
|
159
|
+
|
160
|
+
|
118
161
|
def check_remote_qis(host='127.0.0.1', port=9722, timeout=0):
|
119
162
|
"""
|
120
163
|
Checks if a local or specified instance of QIS is running and responding
|
@@ -219,5 +262,4 @@ def GetQisModuleSelection (QisConnection):
|
|
219
262
|
myDeviceID = None
|
220
263
|
|
221
264
|
return myDeviceID
|
222
|
-
|
223
|
-
|
265
|
+
|
Binary file
|
quarchpy/qps/qpsFuncs.py
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
from threading import Thread, Lock, Event, active_count
|
2
|
+
from queue import Queue, Empty
|
3
|
+
import time
|
1
4
|
import os, sys
|
2
5
|
import datetime
|
3
|
-
import
|
6
|
+
import platform
|
4
7
|
from quarchpy.qis import isQisRunning, startLocalQis
|
5
8
|
from quarchpy.connection_specific.connection_QIS import QisInterface
|
6
9
|
from quarchpy.connection_specific.connection_QPS import QpsInterface
|
@@ -65,7 +68,8 @@ def isQpsRunning(host='127.0.0.1', port=9822, timeout=0):
|
|
65
68
|
logging.debug("$list: " + str(answer))
|
66
69
|
return False
|
67
70
|
|
68
|
-
|
71
|
+
|
72
|
+
def startLocalQps(keepQisRunning=False, args=[], timeout=30):
|
69
73
|
if keepQisRunning:
|
70
74
|
if not isQisRunning():
|
71
75
|
startLocalQis()
|
@@ -87,28 +91,64 @@ def startLocalQps(keepQisRunning=False, args=[]):
|
|
87
91
|
else:
|
88
92
|
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, shell=True)
|
89
93
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
while not isQpsRunning():
|
95
|
-
time.sleep(0.2)
|
96
|
-
stdout, stderr = process.communicate()
|
97
|
-
if stderr is not None and stderr != last_error:
|
98
|
-
logging.error(str(stderr))
|
99
|
-
last_error = stderr
|
100
|
-
|
101
|
-
if stdout is not None and stdout != last_out:
|
102
|
-
printText(str(stdout))
|
103
|
-
last_out = stdout
|
104
|
-
|
105
|
-
if time.time() - startTime > timeout:
|
106
|
-
raise TimeoutError("QPS failed to launch within timelimit of " + str(timeout) + " sec.")
|
107
|
-
pass
|
94
|
+
startTime = time.time()
|
95
|
+
while not isQpsRunning():
|
96
|
+
time.sleep(0.2)
|
97
|
+
_get_std_msg_and_err_from_QPS_process(process)
|
108
98
|
|
99
|
+
if time.time() - startTime > timeout:
|
100
|
+
os.chdir(current_dir)
|
101
|
+
raise TimeoutError("QPS failed to launch within timelimit of " + str(timeout) + " sec.")
|
109
102
|
# return current working directory
|
110
103
|
os.chdir(current_dir)
|
111
104
|
|
105
|
+
def reader(stream, q, source, lock,stop_flag):
|
106
|
+
'''
|
107
|
+
Used to read output and place it in a queue for multithreaded reading
|
108
|
+
:param stream:
|
109
|
+
:param q:
|
110
|
+
:param source:
|
111
|
+
:param lock: The lock for the queue
|
112
|
+
:param stop_flag: Flag to exit the loop and close the thread
|
113
|
+
:return: None
|
114
|
+
'''
|
115
|
+
while not stop_flag.is_set():
|
116
|
+
line = stream.readline()
|
117
|
+
if not line:
|
118
|
+
break
|
119
|
+
with lock:
|
120
|
+
q.put((source, line.strip()))
|
121
|
+
|
122
|
+
def _get_std_msg_and_err_from_QPS_process(process):
|
123
|
+
'''
|
124
|
+
Uses multithreading to check for stderr and stdmsg passed by the process that launches QPS
|
125
|
+
This allows the user to understand why QPS might not have appeared.
|
126
|
+
:param process: The Process Used to launch QPS
|
127
|
+
:return: None
|
128
|
+
'''
|
129
|
+
# Read back stdmsg and stderr in seperate threads so they are non blocking
|
130
|
+
q = Queue()
|
131
|
+
lock = Lock()
|
132
|
+
stop_flag = Event()
|
133
|
+
|
134
|
+
t1 = Thread(target=reader, args=[process.stdout, q, 'stdout', lock, stop_flag])
|
135
|
+
t2 = Thread(target=reader, args=[process.stderr, q, 'stderr', lock, stop_flag])
|
136
|
+
t1.start()
|
137
|
+
t2.start()
|
138
|
+
counter = 0
|
139
|
+
# check for stderr or stdmsg from the queue
|
140
|
+
while counter <= 3: # If 3 empty reads from the queue then move on to see if QPS is running.
|
141
|
+
try:
|
142
|
+
source, line = q.get(timeout=1) # Wait for 1 second for new lines
|
143
|
+
counter = 0
|
144
|
+
if source == "stderr":
|
145
|
+
logging.error(f"{source}: {line}")
|
146
|
+
else:
|
147
|
+
printText(f"{source}: {line}")
|
148
|
+
except Empty:
|
149
|
+
counter += 1
|
150
|
+
stop_flag.set() #Close the threads and return to the main loop where QPS is check to see if its started yet
|
151
|
+
|
112
152
|
|
113
153
|
def closeQps(host='127.0.0.1', port=9822):
|
114
154
|
myQps = QpsInterface(host, port)
|
quarchpy/qps/qpsFuncs.py.bak
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
from threading import Thread, Lock, Event, active_count
|
2
|
+
from queue import Queue, Empty
|
3
|
+
import time
|
1
4
|
import os, sys
|
2
5
|
import datetime
|
3
|
-
import
|
6
|
+
import platform
|
4
7
|
from quarchpy.qis import isQisRunning, startLocalQis
|
5
8
|
from quarchpy.connection_specific.connection_QIS import QisInterface
|
6
9
|
from quarchpy.connection_specific.connection_QPS import QpsInterface
|
@@ -66,7 +69,7 @@ def isQpsRunning(host='127.0.0.1', port=9822, timeout=0):
|
|
66
69
|
return False
|
67
70
|
|
68
71
|
|
69
|
-
def startLocalQps(keepQisRunning=False, args=[]):
|
72
|
+
def startLocalQps(keepQisRunning=False, args=[], timeout=30):
|
70
73
|
if keepQisRunning:
|
71
74
|
if not isQisRunning():
|
72
75
|
startLocalQis()
|
@@ -76,7 +79,7 @@ def startLocalQps(keepQisRunning=False, args=[]):
|
|
76
79
|
QpsPath = os.path.dirname(os.path.abspath(__file__))
|
77
80
|
QpsPath, junk = os.path.split(QpsPath)
|
78
81
|
QpsPath = os.path.join(QpsPath, "connection_specific", "QPS", "qps.jar")
|
79
|
-
|
82
|
+
current_dir = os.getcwd()
|
80
83
|
os.chdir(os.path.dirname(QpsPath))
|
81
84
|
|
82
85
|
command = "java -jar \"" + QpsPath + "\"" + " " + str(args)
|
@@ -84,23 +87,68 @@ def startLocalQps(keepQisRunning=False, args=[]):
|
|
84
87
|
os.system(command)
|
85
88
|
else:
|
86
89
|
if sys.version_info[0] < 3:
|
87
|
-
|
90
|
+
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
|
88
91
|
else:
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
pass
|
92
|
+
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, shell=True)
|
93
|
+
|
94
|
+
startTime = time.time()
|
95
|
+
while not isQpsRunning():
|
96
|
+
time.sleep(0.2)
|
97
|
+
_get_std_msg_and_err_from_QPS_process(process)
|
98
|
+
|
99
|
+
if time.time() - startTime > timeout:
|
100
|
+
os.chdir(current_dir)
|
101
|
+
raise TimeoutError("QPS failed to launch within timelimit of " + str(timeout) + " sec.")
|
102
|
+
# return current working directory
|
103
|
+
os.chdir(current_dir)
|
102
104
|
|
103
|
-
|
105
|
+
def reader(stream, q, source, lock,stop_flag):
|
106
|
+
'''
|
107
|
+
Used to read output and place it in a queue for multithreaded reading
|
108
|
+
:param stream:
|
109
|
+
:param q:
|
110
|
+
:param source:
|
111
|
+
:param lock: The lock for the queue
|
112
|
+
:param stop_flag: Flag to exit the loop and close the thread
|
113
|
+
:return: None
|
114
|
+
'''
|
115
|
+
while not stop_flag.is_set():
|
116
|
+
line = stream.readline()
|
117
|
+
if not line:
|
118
|
+
break
|
119
|
+
with lock:
|
120
|
+
q.put((source, line.strip()))
|
121
|
+
|
122
|
+
def _get_std_msg_and_err_from_QPS_process(process):
|
123
|
+
'''
|
124
|
+
Uses multithreading to check for stderr and stdmsg passed by the process that launches QPS
|
125
|
+
This allows the user to understand why QPS might not have appeared.
|
126
|
+
:param process: The Process Used to launch QPS
|
127
|
+
:return: None
|
128
|
+
'''
|
129
|
+
# Read back stdmsg and stderr in seperate threads so they are non blocking
|
130
|
+
q = Queue()
|
131
|
+
lock = Lock()
|
132
|
+
stop_flag = Event()
|
133
|
+
|
134
|
+
t1 = Thread(target=reader, args=[process.stdout, q, 'stdout', lock, stop_flag])
|
135
|
+
t2 = Thread(target=reader, args=[process.stderr, q, 'stderr', lock, stop_flag])
|
136
|
+
t1.start()
|
137
|
+
t2.start()
|
138
|
+
counter = 0
|
139
|
+
# check for stderr or stdmsg from the queue
|
140
|
+
while counter <= 3: # If 3 empty reads from the queue then move on to see if QPS is running.
|
141
|
+
try:
|
142
|
+
source, line = q.get(timeout=1) # Wait for 1 second for new lines
|
143
|
+
counter = 0
|
144
|
+
if source == "stderr":
|
145
|
+
logging.error(f"{source}: {line}")
|
146
|
+
else:
|
147
|
+
print(f"{source}: {line}")
|
148
|
+
except Empty:
|
149
|
+
counter += 1
|
150
|
+
time.sleep(3)
|
151
|
+
stop_flag.set() #Close the threads and return to the main loop where QPS is check to see if its started yet
|
104
152
|
|
105
153
|
|
106
154
|
def closeQps(host='127.0.0.1', port=9822):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: quarchpy
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.18
|
4
4
|
Summary: This packpage offers Python support for Quarch Technology modules.
|
5
5
|
Author: Quarch Technology ltd
|
6
6
|
Author-email: support@quarch.com
|
@@ -17,6 +17,9 @@ Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
17
17
|
Classifier: Topic :: System
|
18
18
|
Classifier: Topic :: System :: Power (UPS)
|
19
19
|
Description-Content-Type: text/x-rst
|
20
|
+
Requires-Dist: zeroconf (>=0.23.0)
|
21
|
+
Requires-Dist: numpy
|
22
|
+
Requires-Dist: pandas
|
20
23
|
|
21
24
|
====================
|
22
25
|
Changelog (Quarchpy)
|
@@ -33,6 +36,24 @@ Quarchpy
|
|
33
36
|
Change Log
|
34
37
|
----------
|
35
38
|
|
39
|
+
2.1.18
|
40
|
+
------
|
41
|
+
- Minor bug fix
|
42
|
+
|
43
|
+
2.1.17
|
44
|
+
------
|
45
|
+
- Improved QIS QPS launching on Linux sytems
|
46
|
+
- System debug for linux systems
|
47
|
+
|
48
|
+
2.1.16
|
49
|
+
------
|
50
|
+
- FIO mb/s parsing
|
51
|
+
- Improved QIS QPS launching
|
52
|
+
|
53
|
+
2.1.15
|
54
|
+
------
|
55
|
+
- minor bug fix
|
56
|
+
|
36
57
|
2.1.14
|
37
58
|
------
|
38
59
|
- minor bug fixes and logging improvements.
|