quarchpy 2.2.5__py2.py3-none-any.whl → 2.2.6__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/_version.py +1 -1
- quarchpy/config_files/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/config_files/__pycache__/quarch_config_parser.cpython-313.pyc +0 -0
- quarchpy/connection_specific/QPS/win-amd64/app.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/README.txt +2 -2
- quarchpy/connection_specific/QPS/win-amd64/qis/help.txt +2 -2
- quarchpy/connection_specific/QPS/win-amd64/qis/qis.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/{CInterface-2.2.jar → CInterface-2.3.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/QuarchCommon-2.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/TorridonCommon-1.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/jmdns-3.6.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/usb4java-1.3.1.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps-command-reference.html +331 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/JFXUtilities-1.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/QuarchCommon-2.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-base-21.0.4-linux.jar → javafx-base-21.0.5-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-controls-21.0.4-linux.jar → javafx-controls-21.0.5-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-fxml-21.0.4-linux.jar → javafx-fxml-21.0.5-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-graphics-21.0.4-linux.jar → javafx-graphics-21.0.5-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-swing-21.0.4-linux.jar → javafx-swing-21.0.5-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-base-21.0.4-mac-aarch64.jar → javafx-base-21.0.5-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-controls-21.0.4-mac-aarch64.jar → javafx-controls-21.0.5-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-fxml-21.0.4-mac-aarch64.jar → javafx-fxml-21.0.5-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-graphics-21.0.4-mac-aarch64.jar → javafx-graphics-21.0.5-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-swing-21.0.4-mac-aarch64.jar → javafx-swing-21.0.5-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-base-21.0.4-mac.jar → javafx-base-21.0.5-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-controls-21.0.4-mac.jar → javafx-controls-21.0.5-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-fxml-21.0.4-mac.jar → javafx-fxml-21.0.5-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-graphics-21.0.4-mac.jar → javafx-graphics-21.0.5-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-swing-21.0.4-mac.jar → javafx-swing-21.0.5-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-base-21.0.4-win.jar → javafx-base-21.0.5-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-controls-21.0.4-win.jar → javafx-controls-21.0.5-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-fxml-21.0.4-win.jar → javafx-fxml-21.0.5-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-graphics-21.0.4-win.jar → javafx-graphics-21.0.5-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-swing-21.0.4-win.jar → javafx-swing-21.0.5-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/scriptCommands.txt +59 -3
- quarchpy/connection_specific/QPS/win-amd64/whats-new.txt +12 -20
- quarchpy/connection_specific/__pycache__/StreamChannels.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_QIS.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_QPS.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_ReST.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_Serial.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_TCP.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_Telnet.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_USB.cpython-313.pyc +0 -0
- quarchpy/connection_specific/__pycache__/mDNS.cpython-313.pyc +0 -0
- quarchpy/connection_specific/connection_QPS.py +7 -3
- quarchpy/connection_specific/connection_QPS.py.bak +242 -0
- quarchpy/connection_specific/jdk_j21_jres/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/connection_specific/jdk_j21_jres/__pycache__/fix_permissions.cpython-313.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-313.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-313.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/win32.cpython-313.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-313.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-313.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-313.pyc +0 -0
- quarchpy/debug/__pycache__/SystemTest.cpython-313.pyc +0 -0
- quarchpy/debug/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/debug/__pycache__/module_debug.cpython-313.pyc +0 -0
- quarchpy/debug/__pycache__/simple_terminal.cpython-313.pyc +0 -0
- quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-313.pyc +0 -0
- quarchpy/debug/__pycache__/versionCompare.cpython-313.pyc +0 -0
- quarchpy/device/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/device/__pycache__/device.cpython-313.pyc +0 -0
- quarchpy/device/__pycache__/quarchArray.cpython-313.pyc +0 -0
- quarchpy/device/__pycache__/quarchPPM.cpython-313.pyc +0 -0
- quarchpy/device/__pycache__/quarchQPS.cpython-313.pyc +0 -0
- quarchpy/device/__pycache__/scanDevices.cpython-313.pyc +0 -0
- quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-313.pyc +0 -0
- quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-313.pyc +0 -0
- quarchpy/disk_test/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-313.pyc +0 -0
- quarchpy/docs/CHANGES.rst +17 -0
- quarchpy/docs/_build/doctrees/CHANGES.doctree +0 -0
- quarchpy/docs/_build/doctrees/environment.pickle +0 -0
- quarchpy/docs/_build/doctrees/index.doctree +0 -0
- quarchpy/docs/_build/doctrees/readme.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/changelog.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/licenses.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/modules.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.calibration.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.config_files.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.connection_specific.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.debug.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.device.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.disk_test.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.fio.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.iometer.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/doctrees/source/quarchpy.user_interface.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/quarchpy.utilities.doctree +0 -0
- quarchpy/docs/_build/doctrees/source/readme.doctree +0 -0
- quarchpy/docs/_build/html/.buildinfo +2 -2
- quarchpy/docs/_build/html/.buildinfo.bak +4 -0
- quarchpy/docs/_build/html/CHANGES.html +176 -150
- quarchpy/docs/_build/html/_sources/CHANGES.rst.txt +14 -0
- quarchpy/docs/_build/html/_static/alabaster.css +47 -87
- quarchpy/docs/_build/html/_static/basic.css +3 -14
- quarchpy/docs/_build/html/_static/doctools.js +0 -7
- quarchpy/docs/_build/html/_static/github-banner.svg +5 -0
- quarchpy/docs/_build/html/_static/language_data.js +1 -8
- quarchpy/docs/_build/html/_static/pygments.css +2 -1
- quarchpy/docs/_build/html/_static/searchtools.js +129 -71
- quarchpy/docs/_build/html/genindex.html +22 -55
- quarchpy/docs/_build/html/index.html +90 -85
- quarchpy/docs/_build/html/objects.inv +0 -0
- quarchpy/docs/_build/html/py-modindex.html +20 -29
- quarchpy/docs/_build/html/readme.html +20 -19
- quarchpy/docs/_build/html/search.html +14 -14
- quarchpy/docs/_build/html/searchindex.js +1 -1
- quarchpy/docs/_build/html/source/changelog.html +246 -216
- quarchpy/docs/_build/html/source/licenses.html +20 -19
- quarchpy/docs/_build/html/source/modules.html +22 -21
- quarchpy/docs/_build/html/source/quarchpy.calibration.html +20 -19
- quarchpy/docs/_build/html/source/quarchpy.config_files.html +20 -19
- quarchpy/docs/_build/html/source/quarchpy.connection_specific.html +22 -37
- quarchpy/docs/_build/html/source/quarchpy.debug.html +20 -19
- quarchpy/docs/_build/html/source/quarchpy.device.html +21 -20
- quarchpy/docs/_build/html/source/quarchpy.disk_test.html +20 -19
- quarchpy/docs/_build/html/source/quarchpy.fio.html +22 -47
- quarchpy/docs/_build/html/source/quarchpy.html +22 -37
- quarchpy/docs/_build/html/source/quarchpy.iometer.html +26 -25
- quarchpy/docs/_build/html/source/quarchpy.qis.html +20 -19
- quarchpy/docs/_build/html/source/quarchpy.qps.html +20 -19
- quarchpy/docs/_build/html/source/quarchpy.user_interface.html +20 -19
- quarchpy/docs/_build/html/source/quarchpy.utilities.html +20 -19
- quarchpy/docs/_build/html/source/readme.html +20 -19
- quarchpy/fio/FIO_interface.py.bak +317 -0
- quarchpy/fio/__pycache__/FIO_interface.cpython-313.pyc +0 -0
- quarchpy/fio/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/fio/__pycache__/fioDiskFinder.cpython-313.pyc +0 -0
- quarchpy/iometer/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/iometer/__pycache__/gen_iometer_template.cpython-313.pyc +0 -0
- quarchpy/iometer/__pycache__/iometerFuncs.cpython-313.pyc +0 -0
- quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-313.pyc +0 -0
- quarchpy/qis/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/qis/__pycache__/qisFuncs.cpython-313.pyc +0 -0
- quarchpy/qps/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/qps/__pycache__/qpsFuncs.cpython-313.pyc +0 -0
- quarchpy/user_interface/__pycache__/__init__.cpython-313.pyc +0 -0
- quarchpy/user_interface/__pycache__/user_interface.cpython-313.pyc +0 -0
- quarchpy/utilities/__pycache__/TestCenter.cpython-313.pyc +0 -0
- quarchpy/utilities/__pycache__/TimeValue.cpython-313.pyc +0 -0
- quarchpy/utilities/__pycache__/Version.cpython-313.pyc +0 -0
- quarchpy/utilities/__pycache__/__init__.cpython-313.pyc +0 -0
- {quarchpy-2.2.5.dist-info → quarchpy-2.2.6.dist-info}/METADATA +29 -3
- {quarchpy-2.2.5.dist-info → quarchpy-2.2.6.dist-info}/RECORD +154 -104
- {quarchpy-2.2.5.dist-info → quarchpy-2.2.6.dist-info}/WHEEL +1 -1
- quarchpy/.idea/.gitignore +0 -3
- quarchpy/.idea/inspectionProfiles/Project_Default.xml +0 -12
- quarchpy/.idea/inspectionProfiles/profiles_settings.xml +0 -6
- quarchpy/.idea/misc.xml +0 -4
- quarchpy/.idea/modules.xml +0 -9
- quarchpy/.idea/quarchpy.iml +0 -13
- quarchpy/.idea/workspace.xml +0 -119
- quarchpy/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/__pycache__/_version.cpython-311.pyc +0 -0
- quarchpy/__pycache__/connection.cpython-311.pyc +0 -0
- quarchpy/__pycache__/run.cpython-311.pyc +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/jmdns-3.5.9.jar +0 -0
- {quarchpy-2.2.5.dist-info → quarchpy-2.2.6.dist-info}/top_level.txt +0 -0
@@ -6,10 +6,11 @@
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
7
7
|
|
8
8
|
<title>quarchpy.qps package — quarchpy documentation</title>
|
9
|
-
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=
|
10
|
-
<link rel="stylesheet" type="text/css" href="../_static/
|
9
|
+
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
|
10
|
+
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=686e5160" />
|
11
|
+
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
|
11
12
|
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
|
12
|
-
<script src="../_static/doctools.js?v=
|
13
|
+
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
13
14
|
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
14
15
|
<link rel="index" title="Index" href="../genindex.html" />
|
15
16
|
<link rel="search" title="Search" href="../search.html" />
|
@@ -18,8 +19,9 @@
|
|
18
19
|
|
19
20
|
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
20
21
|
|
22
|
+
|
23
|
+
|
21
24
|
|
22
|
-
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
23
25
|
|
24
26
|
</head><body>
|
25
27
|
|
@@ -109,7 +111,7 @@
|
|
109
111
|
|
110
112
|
</div>
|
111
113
|
</div>
|
112
|
-
<div class="sphinxsidebar" role="navigation" aria-label="
|
114
|
+
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
113
115
|
<div class="sphinxsidebarwrapper">
|
114
116
|
<h1 class="logo"><a href="../index.html">quarchpy</a></h1>
|
115
117
|
|
@@ -120,7 +122,16 @@
|
|
120
122
|
|
121
123
|
|
122
124
|
|
123
|
-
|
125
|
+
|
126
|
+
<search id="searchbox" style="display: none" role="search">
|
127
|
+
<div class="searchformwrapper">
|
128
|
+
<form class="search" action="../search.html" method="get">
|
129
|
+
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
|
130
|
+
<input type="submit" value="Go" />
|
131
|
+
</form>
|
132
|
+
</div>
|
133
|
+
</search>
|
134
|
+
<script>document.getElementById('searchbox').style.display = "block"</script><h3>Navigation</h3>
|
124
135
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
125
136
|
<ul class="current">
|
126
137
|
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog (Quarchpy)</a></li>
|
@@ -145,16 +156,6 @@
|
|
145
156
|
</ul></li>
|
146
157
|
</ul>
|
147
158
|
</div>
|
148
|
-
<div id="searchbox" style="display: none" role="search">
|
149
|
-
<h3 id="searchlabel">Quick search</h3>
|
150
|
-
<div class="searchformwrapper">
|
151
|
-
<form class="search" action="../search.html" method="get">
|
152
|
-
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
153
|
-
<input type="submit" value="Go" />
|
154
|
-
</form>
|
155
|
-
</div>
|
156
|
-
</div>
|
157
|
-
<script>document.getElementById('searchbox').style.display = "block"</script>
|
158
159
|
|
159
160
|
|
160
161
|
|
@@ -168,11 +169,11 @@
|
|
168
169
|
<div class="clearer"></div>
|
169
170
|
</div>
|
170
171
|
<div class="footer">
|
171
|
-
|
172
|
+
©2020, Quarch Technology Ltd.
|
172
173
|
|
173
174
|
|
|
174
|
-
Powered by <a href="
|
175
|
-
& <a href="https://
|
175
|
+
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
|
176
|
+
& <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
176
177
|
|
177
178
|
|
|
178
179
|
<a href="../_sources/source/quarchpy.qps.rst.txt"
|
@@ -6,10 +6,11 @@
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
7
7
|
|
8
8
|
<title>quarchpy.user_interface package — quarchpy documentation</title>
|
9
|
-
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=
|
10
|
-
<link rel="stylesheet" type="text/css" href="../_static/
|
9
|
+
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
|
10
|
+
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=686e5160" />
|
11
|
+
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
|
11
12
|
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
|
12
|
-
<script src="../_static/doctools.js?v=
|
13
|
+
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
13
14
|
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
14
15
|
<link rel="index" title="Index" href="../genindex.html" />
|
15
16
|
<link rel="search" title="Search" href="../search.html" />
|
@@ -18,8 +19,9 @@
|
|
18
19
|
|
19
20
|
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
20
21
|
|
22
|
+
|
23
|
+
|
21
24
|
|
22
|
-
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
23
25
|
|
24
26
|
</head><body>
|
25
27
|
|
@@ -201,7 +203,7 @@ interaction. The UI can be the terminal or TestCenter</p>
|
|
201
203
|
|
202
204
|
</div>
|
203
205
|
</div>
|
204
|
-
<div class="sphinxsidebar" role="navigation" aria-label="
|
206
|
+
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
205
207
|
<div class="sphinxsidebarwrapper">
|
206
208
|
<h1 class="logo"><a href="../index.html">quarchpy</a></h1>
|
207
209
|
|
@@ -212,7 +214,16 @@ interaction. The UI can be the terminal or TestCenter</p>
|
|
212
214
|
|
213
215
|
|
214
216
|
|
215
|
-
|
217
|
+
|
218
|
+
<search id="searchbox" style="display: none" role="search">
|
219
|
+
<div class="searchformwrapper">
|
220
|
+
<form class="search" action="../search.html" method="get">
|
221
|
+
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
|
222
|
+
<input type="submit" value="Go" />
|
223
|
+
</form>
|
224
|
+
</div>
|
225
|
+
</search>
|
226
|
+
<script>document.getElementById('searchbox').style.display = "block"</script><h3>Navigation</h3>
|
216
227
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
217
228
|
<ul class="current">
|
218
229
|
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog (Quarchpy)</a></li>
|
@@ -237,16 +248,6 @@ interaction. The UI can be the terminal or TestCenter</p>
|
|
237
248
|
</ul></li>
|
238
249
|
</ul>
|
239
250
|
</div>
|
240
|
-
<div id="searchbox" style="display: none" role="search">
|
241
|
-
<h3 id="searchlabel">Quick search</h3>
|
242
|
-
<div class="searchformwrapper">
|
243
|
-
<form class="search" action="../search.html" method="get">
|
244
|
-
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
245
|
-
<input type="submit" value="Go" />
|
246
|
-
</form>
|
247
|
-
</div>
|
248
|
-
</div>
|
249
|
-
<script>document.getElementById('searchbox').style.display = "block"</script>
|
250
251
|
|
251
252
|
|
252
253
|
|
@@ -260,11 +261,11 @@ interaction. The UI can be the terminal or TestCenter</p>
|
|
260
261
|
<div class="clearer"></div>
|
261
262
|
</div>
|
262
263
|
<div class="footer">
|
263
|
-
|
264
|
+
©2020, Quarch Technology Ltd.
|
264
265
|
|
265
266
|
|
|
266
|
-
Powered by <a href="
|
267
|
-
& <a href="https://
|
267
|
+
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
|
268
|
+
& <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
268
269
|
|
269
270
|
|
|
270
271
|
<a href="../_sources/source/quarchpy.user_interface.rst.txt"
|
@@ -6,10 +6,11 @@
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
7
7
|
|
8
8
|
<title>quarchpy.utilities package — quarchpy documentation</title>
|
9
|
-
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=
|
10
|
-
<link rel="stylesheet" type="text/css" href="../_static/
|
9
|
+
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
|
10
|
+
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=686e5160" />
|
11
|
+
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
|
11
12
|
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
|
12
|
-
<script src="../_static/doctools.js?v=
|
13
|
+
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
13
14
|
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
14
15
|
<link rel="index" title="Index" href="../genindex.html" />
|
15
16
|
<link rel="search" title="Search" href="../search.html" />
|
@@ -18,8 +19,9 @@
|
|
18
19
|
|
19
20
|
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
20
21
|
|
22
|
+
|
23
|
+
|
21
24
|
|
22
|
-
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
23
25
|
|
24
26
|
</head><body>
|
25
27
|
|
@@ -134,7 +136,7 @@ on the reporting of the results.</p>
|
|
134
136
|
|
135
137
|
</div>
|
136
138
|
</div>
|
137
|
-
<div class="sphinxsidebar" role="navigation" aria-label="
|
139
|
+
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
138
140
|
<div class="sphinxsidebarwrapper">
|
139
141
|
<h1 class="logo"><a href="../index.html">quarchpy</a></h1>
|
140
142
|
|
@@ -145,7 +147,16 @@ on the reporting of the results.</p>
|
|
145
147
|
|
146
148
|
|
147
149
|
|
148
|
-
|
150
|
+
|
151
|
+
<search id="searchbox" style="display: none" role="search">
|
152
|
+
<div class="searchformwrapper">
|
153
|
+
<form class="search" action="../search.html" method="get">
|
154
|
+
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
|
155
|
+
<input type="submit" value="Go" />
|
156
|
+
</form>
|
157
|
+
</div>
|
158
|
+
</search>
|
159
|
+
<script>document.getElementById('searchbox').style.display = "block"</script><h3>Navigation</h3>
|
149
160
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
150
161
|
<ul class="current">
|
151
162
|
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog (Quarchpy)</a></li>
|
@@ -170,16 +181,6 @@ on the reporting of the results.</p>
|
|
170
181
|
</ul></li>
|
171
182
|
</ul>
|
172
183
|
</div>
|
173
|
-
<div id="searchbox" style="display: none" role="search">
|
174
|
-
<h3 id="searchlabel">Quick search</h3>
|
175
|
-
<div class="searchformwrapper">
|
176
|
-
<form class="search" action="../search.html" method="get">
|
177
|
-
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
178
|
-
<input type="submit" value="Go" />
|
179
|
-
</form>
|
180
|
-
</div>
|
181
|
-
</div>
|
182
|
-
<script>document.getElementById('searchbox').style.display = "block"</script>
|
183
184
|
|
184
185
|
|
185
186
|
|
@@ -193,11 +194,11 @@ on the reporting of the results.</p>
|
|
193
194
|
<div class="clearer"></div>
|
194
195
|
</div>
|
195
196
|
<div class="footer">
|
196
|
-
|
197
|
+
©2020, Quarch Technology Ltd.
|
197
198
|
|
198
199
|
|
|
199
|
-
Powered by <a href="
|
200
|
-
& <a href="https://
|
200
|
+
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
|
201
|
+
& <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
201
202
|
|
202
203
|
|
|
203
204
|
<a href="../_sources/source/quarchpy.utilities.rst.txt"
|
@@ -6,10 +6,11 @@
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
7
7
|
|
8
8
|
<title>Quarchpy - Readme — quarchpy documentation</title>
|
9
|
-
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=
|
10
|
-
<link rel="stylesheet" type="text/css" href="../_static/
|
9
|
+
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
|
10
|
+
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=686e5160" />
|
11
|
+
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
|
11
12
|
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
|
12
|
-
<script src="../_static/doctools.js?v=
|
13
|
+
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
13
14
|
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
14
15
|
<link rel="index" title="Index" href="../genindex.html" />
|
15
16
|
<link rel="search" title="Search" href="../search.html" />
|
@@ -18,8 +19,9 @@
|
|
18
19
|
|
19
20
|
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
20
21
|
|
22
|
+
|
23
|
+
|
21
24
|
|
22
|
-
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
23
25
|
|
24
26
|
</head><body>
|
25
27
|
|
@@ -71,7 +73,7 @@
|
|
71
73
|
|
72
74
|
</div>
|
73
75
|
</div>
|
74
|
-
<div class="sphinxsidebar" role="navigation" aria-label="
|
76
|
+
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
75
77
|
<div class="sphinxsidebarwrapper">
|
76
78
|
<h1 class="logo"><a href="../index.html">quarchpy</a></h1>
|
77
79
|
|
@@ -82,7 +84,16 @@
|
|
82
84
|
|
83
85
|
|
84
86
|
|
85
|
-
|
87
|
+
|
88
|
+
<search id="searchbox" style="display: none" role="search">
|
89
|
+
<div class="searchformwrapper">
|
90
|
+
<form class="search" action="../search.html" method="get">
|
91
|
+
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
|
92
|
+
<input type="submit" value="Go" />
|
93
|
+
</form>
|
94
|
+
</div>
|
95
|
+
</search>
|
96
|
+
<script>document.getElementById('searchbox').style.display = "block"</script><h3>Navigation</h3>
|
86
97
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
87
98
|
<ul class="current">
|
88
99
|
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog (Quarchpy)</a></li>
|
@@ -106,16 +117,6 @@
|
|
106
117
|
</ul></li>
|
107
118
|
</ul>
|
108
119
|
</div>
|
109
|
-
<div id="searchbox" style="display: none" role="search">
|
110
|
-
<h3 id="searchlabel">Quick search</h3>
|
111
|
-
<div class="searchformwrapper">
|
112
|
-
<form class="search" action="../search.html" method="get">
|
113
|
-
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
114
|
-
<input type="submit" value="Go" />
|
115
|
-
</form>
|
116
|
-
</div>
|
117
|
-
</div>
|
118
|
-
<script>document.getElementById('searchbox').style.display = "block"</script>
|
119
120
|
|
120
121
|
|
121
122
|
|
@@ -129,11 +130,11 @@
|
|
129
130
|
<div class="clearer"></div>
|
130
131
|
</div>
|
131
132
|
<div class="footer">
|
132
|
-
|
133
|
+
©2020, Quarch Technology Ltd.
|
133
134
|
|
134
135
|
|
|
135
|
-
Powered by <a href="
|
136
|
-
& <a href="https://
|
136
|
+
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
|
137
|
+
& <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
137
138
|
|
138
139
|
|
|
139
140
|
<a href="../_sources/source/readme.rst.txt"
|
@@ -0,0 +1,317 @@
|
|
1
|
+
import os
|
2
|
+
import time
|
3
|
+
import json
|
4
|
+
from datetime import datetime
|
5
|
+
import subprocess
|
6
|
+
|
7
|
+
all_outputs={"terse_version_3":"0",
|
8
|
+
"fio_version":"1",
|
9
|
+
"jobname":"2",
|
10
|
+
"groupid":"3",
|
11
|
+
"error":"4",
|
12
|
+
"read_kb":"5",
|
13
|
+
"read_bandwidth":"6",
|
14
|
+
"read_iops":"7",
|
15
|
+
"read_runtime_ms":"8",
|
16
|
+
"read_slat_min":"9",
|
17
|
+
"read_slat_max":"10",
|
18
|
+
"read_slat_mean":"11",
|
19
|
+
"read_slat_dev":"12",
|
20
|
+
"read_clat_min":"13",
|
21
|
+
"read_clat_max":"14",
|
22
|
+
"read_clat_mean":"15",
|
23
|
+
"read_clat_dev":"16",
|
24
|
+
"read_clat_pct01":"17",
|
25
|
+
"read_clat_pct02":"18",
|
26
|
+
"read_clat_pct03":"19",
|
27
|
+
"read_clat_pct04":"20",
|
28
|
+
"read_clat_pct05":"21",
|
29
|
+
"read_clat_pct06":"22",
|
30
|
+
"read_clat_pct07":"23",
|
31
|
+
"read_clat_pct08":"24",
|
32
|
+
"read_clat_pct09":"25",
|
33
|
+
"read_clat_pct10":"26",
|
34
|
+
"read_clat_pct11":"27",
|
35
|
+
"read_clat_pct12":"28",
|
36
|
+
"read_clat_pct13":"29",
|
37
|
+
"read_clat_pct14":"30",
|
38
|
+
"read_clat_pct15":"31",
|
39
|
+
"read_clat_pct16":"32",
|
40
|
+
"read_clat_pct17":"33",
|
41
|
+
"read_clat_pct18":"34",
|
42
|
+
"read_clat_pct19":"35",
|
43
|
+
"read_clat_pct20":"36",
|
44
|
+
"read_tlat_min":"37",
|
45
|
+
"read_lat_max":"38",
|
46
|
+
"read_lat_mean":"39",
|
47
|
+
"read_lat_dev":"40",
|
48
|
+
"read_bw_min":"41",
|
49
|
+
"read_bw_max":"42",
|
50
|
+
"read_bw_agg_pct":"43",
|
51
|
+
"read_bw_mean":"44",
|
52
|
+
"read_bw_dev":"45",
|
53
|
+
"write_kb":"46",
|
54
|
+
"write_bandwidth":"47",
|
55
|
+
"write_iops":"48",
|
56
|
+
"write_runtime_ms":"49",
|
57
|
+
"write_slat_min":"50",
|
58
|
+
"write_slat_max":"51",
|
59
|
+
"write_slat_mean":"52",
|
60
|
+
"write_slat_dev":"53",
|
61
|
+
"write_clat_min":"54",
|
62
|
+
"write_clat_max":"55",
|
63
|
+
"write_clat_mean":"56",
|
64
|
+
"write_clat_dev":"57",
|
65
|
+
"write_clat_pct01":"58",
|
66
|
+
"write_clat_pct02":"59",
|
67
|
+
"write_clat_pct03":"60",
|
68
|
+
"write_clat_pct04":"61",
|
69
|
+
"write_clat_pct05":"62",
|
70
|
+
"write_clat_pct06":"63",
|
71
|
+
"write_clat_pct07":"64",
|
72
|
+
"write_clat_pct08":"65",
|
73
|
+
"write_clat_pct09":"66",
|
74
|
+
"write_clat_pct10":"67",
|
75
|
+
"write_clat_pct11":"68",
|
76
|
+
"write_clat_pct12":"69",
|
77
|
+
"write_clat_pct13":"70",
|
78
|
+
"write_clat_pct14":"71",
|
79
|
+
"write_clat_pct15":"72",
|
80
|
+
"write_clat_pct16":"73",
|
81
|
+
"write_clat_pct17":"74",
|
82
|
+
"write_clat_pct18":"75",
|
83
|
+
"write_clat_pct19":"76",
|
84
|
+
"write_clat_pct20":"77",
|
85
|
+
"write_tlat_min":"78",
|
86
|
+
"write_lat_max":"79",
|
87
|
+
"write_lat_mean":"80",
|
88
|
+
"write_lat_dev":"81",
|
89
|
+
"write_bw_min":"82",
|
90
|
+
"write_bw_max":"83",
|
91
|
+
"write_bw_agg_pct":"84",
|
92
|
+
"write_bw_mean":"85",
|
93
|
+
"write_bw_dev":"86",
|
94
|
+
"cpu_user":"87",
|
95
|
+
"cpu_sys":"88",
|
96
|
+
"cpu_csw":"89",
|
97
|
+
"cpu_mjf":"90",
|
98
|
+
"cpu_minf":"91",
|
99
|
+
"iodepth_1":"92",
|
100
|
+
"iodepth_2":"93",
|
101
|
+
"iodepth_4":"94",
|
102
|
+
"iodepth_8":"95",
|
103
|
+
"iodepth_16":"96",
|
104
|
+
"iodepth_32":"97",
|
105
|
+
"iodepth_64":"98",
|
106
|
+
"lat_2us":"99",
|
107
|
+
"lat_4us":"100",
|
108
|
+
"lat_10us":"101",
|
109
|
+
"lat_20us":"102",
|
110
|
+
"lat_50us":"103",
|
111
|
+
"lat_100us":"104",
|
112
|
+
"lat_250us":"105",
|
113
|
+
"lat_500us":"106",
|
114
|
+
"lat_750us":"107",
|
115
|
+
"lat_1000us":"108",
|
116
|
+
"lat_2ms":"109",
|
117
|
+
"lat_4ms":"110",
|
118
|
+
"lat_10ms":"111",
|
119
|
+
"lat_20ms":"112",
|
120
|
+
"lat_50ms":"113",
|
121
|
+
"lat_100ms":"114",
|
122
|
+
"lat_250ms":"115",
|
123
|
+
"lat_500ms":"116",
|
124
|
+
"lat_750ms":"117",
|
125
|
+
"lat_1000ms":"118",
|
126
|
+
"lat_2000ms":"119",
|
127
|
+
"lat_over_2000ms":"120",
|
128
|
+
"disk_name":"121",
|
129
|
+
"disk_read_iops":"122",
|
130
|
+
"disk_write_iops":"123",
|
131
|
+
"disk_read_merges":"124",
|
132
|
+
"disk_write_merges":"125",
|
133
|
+
"disk_read_ticks":"126",
|
134
|
+
"write_ticks":"127",
|
135
|
+
"disk_queue_time":"128",
|
136
|
+
"disk_util":"129"}
|
137
|
+
|
138
|
+
out_data = {}
|
139
|
+
|
140
|
+
def follow(thefile, p):
|
141
|
+
thefile.seek(0,2)
|
142
|
+
#flag for exiting the loop
|
143
|
+
processCompleted = False
|
144
|
+
|
145
|
+
while processCompleted == False:
|
146
|
+
line = thefile.readline()
|
147
|
+
|
148
|
+
#only exists if process is finished and no more data from file
|
149
|
+
if p.poll() is not None and not line:
|
150
|
+
#yield a specific string we can identify
|
151
|
+
yield ("quarch_end_Process")
|
152
|
+
processCompleted = True
|
153
|
+
|
154
|
+
if not line:
|
155
|
+
time.sleep(0.1)
|
156
|
+
continue
|
157
|
+
yield line
|
158
|
+
|
159
|
+
|
160
|
+
def return_data(output_file, p, fioCallbacks, myStream, user_data, arguments):
|
161
|
+
|
162
|
+
isThreaded = True
|
163
|
+
#checking to see if the first line of file needs to be skipped = Windows only
|
164
|
+
if os.name == "nt":
|
165
|
+
isThreaded = False
|
166
|
+
for i in arguments:
|
167
|
+
#only needs to be skipped if the "thread" argument has not been issued
|
168
|
+
if (str(i.lower()) == "thread"):
|
169
|
+
isThreaded = True
|
170
|
+
|
171
|
+
info_out = {}
|
172
|
+
logfile = open(output_file,"r")
|
173
|
+
loglines = follow(logfile, p)
|
174
|
+
|
175
|
+
#variables for parsing json
|
176
|
+
iterator = 0
|
177
|
+
jobCount = 0
|
178
|
+
jsonLines = ""
|
179
|
+
openBracketCount = 0
|
180
|
+
closeBracketCount = 0
|
181
|
+
# Init the job end time to the current start time
|
182
|
+
jobEndTime = int(round(time.time() * 1000))
|
183
|
+
|
184
|
+
for line in loglines:
|
185
|
+
|
186
|
+
|
187
|
+
if (isThreaded == False):
|
188
|
+
#skip the very first line -- (title line) --
|
189
|
+
if iterator == 0:
|
190
|
+
iterator = iterator + 1
|
191
|
+
#marking threaded as true for remainder of read > Efficiency
|
192
|
+
isThreaded = True
|
193
|
+
continue
|
194
|
+
|
195
|
+
#add to iterator - not needed, may be useful later
|
196
|
+
iterator = iterator + 1
|
197
|
+
|
198
|
+
#concat strings
|
199
|
+
jsonLines += line
|
200
|
+
|
201
|
+
#finding brackets withing json
|
202
|
+
if '{' in line:
|
203
|
+
openBracketCount = openBracketCount + 1
|
204
|
+
if '}' in line:
|
205
|
+
closeBracketCount = closeBracketCount + 1
|
206
|
+
|
207
|
+
#an equal amount of brackets denotes the end of a json object
|
208
|
+
if openBracketCount == closeBracketCount and openBracketCount != 0:
|
209
|
+
try:
|
210
|
+
#format into a json parsable string
|
211
|
+
TempJsonObject = jsonLines[ 0 : jsonLines.rindex('}') + 1 ]
|
212
|
+
|
213
|
+
#parse json
|
214
|
+
jsonobject = json.loads(TempJsonObject)
|
215
|
+
|
216
|
+
#checking for first job
|
217
|
+
if (jobCount == 0):
|
218
|
+
#getting start time of job
|
219
|
+
startTime = (jsonobject['timestamp_ms'] - jsonobject['jobs'][0]['read']['runtime'])
|
220
|
+
comment = str(arguments).replace(",","\n").replace("}","").replace("{","")
|
221
|
+
jobName = str(jsonobject['jobs'][0]['jobname'])
|
222
|
+
#adding start annotation
|
223
|
+
fioCallbacks["TEST_START"](myStream, str(startTime), jobName, comment)
|
224
|
+
|
225
|
+
#pass specific data
|
226
|
+
readDataValue = jsonobject['jobs'][0]['read']['iops']
|
227
|
+
writeDataValue = jsonobject['jobs'][0]['write']['iops']
|
228
|
+
blockSize=jsonobject['global options']['bs']
|
229
|
+
#converted to ditionary - easy script use
|
230
|
+
dataValues = {"read_iops" : readDataValue, "write_iops" : writeDataValue, "block_size":blockSize}
|
231
|
+
jobEndTime = str(jsonobject['timestamp_ms'])
|
232
|
+
fioCallbacks["TEST_RESULT"](myStream, jobEndTime, dataValues)
|
233
|
+
|
234
|
+
#jsonLines variable is now all characters after last job + any new that come in
|
235
|
+
jsonLines = jsonLines[jsonLines.rindex('}') + 1 : ]
|
236
|
+
|
237
|
+
#add 1 to the job count
|
238
|
+
jobCount += 1
|
239
|
+
|
240
|
+
except:
|
241
|
+
#exception caused by not being able to find substring -- Last json object --
|
242
|
+
pass
|
243
|
+
|
244
|
+
|
245
|
+
|
246
|
+
#looks for end of process and the specific string we return indicating end of file
|
247
|
+
if p.poll() is not None:
|
248
|
+
if line == "quarch_end_Process":
|
249
|
+
time.sleep(0.1)
|
250
|
+
#callback to end test -- adds 1 milli second so this time is always after the last data point --
|
251
|
+
fioCallbacks["TEST_END"](myStream, str(int(jobEndTime) + 1))
|
252
|
+
#CLOSE FILE ON FINISH
|
253
|
+
logfile.close()
|
254
|
+
return
|
255
|
+
|
256
|
+
def start_fio(output_file, mode, options, fileName=""):
|
257
|
+
|
258
|
+
if mode == "cli":
|
259
|
+
command = command + " > pipe"
|
260
|
+
|
261
|
+
#command line to be sent -- output is in json format --
|
262
|
+
if mode == "file":
|
263
|
+
command = "fio " + fileName + " --log_unix_epoch=1 --output-format=json --output="+ output_file + " --status-interval=1 --eta=never"
|
264
|
+
|
265
|
+
if mode == "arg":
|
266
|
+
command = "fio --log_unix_epoch=1 --output-format=json"
|
267
|
+
|
268
|
+
for i in options:
|
269
|
+
if (options[i] == ""):
|
270
|
+
command = command + " --" + i
|
271
|
+
else:
|
272
|
+
command = command + " --" + i + "=" + options[i]
|
273
|
+
command = command + " > pipe"
|
274
|
+
|
275
|
+
#removes the output file if it already exists.
|
276
|
+
if os.path.exists(output_file):
|
277
|
+
os.remove(output_file)
|
278
|
+
|
279
|
+
if os.path.exists("pipe"):
|
280
|
+
os.remove("pipe")
|
281
|
+
|
282
|
+
print(command)
|
283
|
+
p = subprocess.Popen(command, shell=True)
|
284
|
+
|
285
|
+
while not os.path.exists(output_file):
|
286
|
+
time.sleep(0.1)
|
287
|
+
|
288
|
+
return p
|
289
|
+
|
290
|
+
def runFIO(myStream, mode, fioCallbacks, user_data, arguments="", file_name=""):
|
291
|
+
|
292
|
+
try:
|
293
|
+
xrange
|
294
|
+
except NameError:
|
295
|
+
xrange = range
|
296
|
+
|
297
|
+
for i in xrange(0,len(arguments)):
|
298
|
+
|
299
|
+
try:
|
300
|
+
arguments_ori = arguments[i]
|
301
|
+
except:
|
302
|
+
arguments_ori = arguments
|
303
|
+
|
304
|
+
output_file = arguments_ori["output"]
|
305
|
+
if (file_name != ""):
|
306
|
+
#allows filename with spaces
|
307
|
+
file_name = "\"" + file_name + "\""
|
308
|
+
|
309
|
+
p = start_fio(output_file, mode, arguments_ori, file_name)
|
310
|
+
|
311
|
+
return_data(output_file, p, fioCallbacks, myStream, user_data, arguments_ori)
|
312
|
+
|
313
|
+
if os.path.exists("pipe"):
|
314
|
+
os.remove("pipe")
|
315
|
+
|
316
|
+
if isinstance(arguments, dict):
|
317
|
+
break
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|