quarchpy 2.2.9.dev4__py2.py3-none-any.whl → 2.2.9.dev5__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.
Files changed (691) hide show
  1. quarchpy/__init__.py +1 -1
  2. quarchpy/__pycache__/__init__.cpython-310.pyc +0 -0
  3. quarchpy/__pycache__/_version.cpython-310.pyc +0 -0
  4. quarchpy/__pycache__/connection.cpython-310.pyc +0 -0
  5. quarchpy/_version.py +1 -1
  6. quarchpy/config_files/Cable_Modules/QTL1253-01 - Mini SAS Module Config v3.5 c1.3.qfg +196 -196
  7. quarchpy/config_files/Cable_Modules/QTL1253-01 - Mini SAS Module Config v4.000 c1.3.qfg +198 -198
  8. quarchpy/config_files/Cable_Modules/QTL1253-02 - Mini SAS Module Config v3.5 c1.3.qfg +196 -196
  9. quarchpy/config_files/Cable_Modules/QTL1253-02 - Mini SAS Module Config v4.000 c1.3.qfg +198 -198
  10. quarchpy/config_files/Cable_Modules/QTL1253-xx - Mini SAS Module Config v4.003 c1.6.qfg +197 -197
  11. quarchpy/config_files/Cable_Modules/QTL1271-xx - Ethernet Module Config v3.5 c1.2.qfg +188 -188
  12. quarchpy/config_files/Cable_Modules/QTL1271-xx - Ethernet Module Config v4.000 c1.2.qfg +190 -190
  13. quarchpy/config_files/Cable_Modules/QTL1271-xx - Ethernet Module Config v4.100 c1.3.qfg +189 -189
  14. quarchpy/config_files/Cable_Modules/QTL1292-xx - SFP+ Cable Pull Module Config v4.000 c1.1.qfg +154 -154
  15. quarchpy/config_files/Cable_Modules/QTL1309-04 - USB 3.0 Module Config v4.003 c1.2.qfg +187 -187
  16. quarchpy/config_files/Cable_Modules/QTL1309-xx - USB 3.0 Module Config v3.5 c1.1.qfg +187 -187
  17. quarchpy/config_files/Cable_Modules/QTL1309-xx - USB 3.0 Module Config v4.000 c1.1.qfg +188 -188
  18. quarchpy/config_files/Cable_Modules/QTL1366-xx - QSFP Cable Pull Module Config v4.000 c1.1.qfg +209 -209
  19. quarchpy/config_files/Cable_Modules/QTL1383-xx - eSATAp Module Config v4.000 c1.3.qfg +190 -190
  20. quarchpy/config_files/Cable_Modules/QTL1521-02 - Mini SAS HD Module Config v4.000 c1.1.qfg +210 -210
  21. quarchpy/config_files/Cable_Modules/QTL1521-03 - Mini SAS HD Module Config v4.000 c1.1.qfg +210 -210
  22. quarchpy/config_files/Cable_Modules/QTL1521-05 - Mini SAS HD Module Config v4.005 c1.1.qfg +209 -209
  23. quarchpy/config_files/Cable_Modules/QTL1521-05 - Mini SAS HD Module Config v4.007 c1.2.qfg +209 -209
  24. quarchpy/config_files/Cable_Modules/QTL1521-xx - Mini SAS HD Module Config v4.003 c1.5.qfg +209 -209
  25. quarchpy/config_files/Cable_Modules/QTL1663-xx - Quad QSFP Cable Pull Module Config v4.000 c1.1.qfg +308 -308
  26. quarchpy/config_files/Cable_Modules/QTL1675-05 - Mini SAS HD Module w Triggering Config v4.007 c1.3.qfg +211 -211
  27. quarchpy/config_files/Cable_Modules/QTL1675-xx - Mini SAS HD Module w Triggering Config v4.000 c1.1.qfg +210 -210
  28. quarchpy/config_files/Cable_Modules/QTL1917-xx - Dual SFP+ Cable Pull Module Config v4.000 c1.1.qfg +174 -174
  29. quarchpy/config_files/Cable_Modules/QTL1971-01 - USB TypeC Module Config v4.000 c1.1.qfg +203 -203
  30. quarchpy/config_files/Cable_Modules/QTL1971-02 - USB TypeC Module Config v4.000 c1.1.qfg +203 -203
  31. quarchpy/config_files/Cable_Modules/QTL2022-xx - RJ-45 Cable Module Config v4.104 c1.3.QFG +189 -189
  32. quarchpy/config_files/Cable_Modules/QTL2058-xx - External PCIe Module Config v4.001 c1.1.qfg +209 -209
  33. quarchpy/config_files/Cable_Modules/QTL2138-01 - SFP28 Cable Pull Module Config v4.000 c1.1.qfg +154 -154
  34. quarchpy/config_files/Cable_Modules/QTL2146-01 - Gen4 OCuLink Cable Module Config v4.001 c1.1.qfg +212 -212
  35. quarchpy/config_files/Cable_Modules/QTL2162-01 - 24G mini SAS HD Cable Break Module Config v4.000 c1.qfg +209 -209
  36. quarchpy/config_files/Cable_Modules/QTL2171-01 - QSFP28 Cable Module Config v4.000 c1.qfg +198 -198
  37. quarchpy/config_files/Cable_Modules/QTL2171-02 - QSFP28 Cable Module Config v4.000 c1.qfg +198 -198
  38. quarchpy/config_files/Cable_Modules/QTL2341-01 - Gen4 External PCIe Cable Module v4.000.qfg +209 -209
  39. quarchpy/config_files/Cable_Modules/QTL2602-xx - Multiprotocol Link Breaker.qfg +178 -178
  40. quarchpy/config_files/Cable_Modules/QTL2834-xx - -48V DC Breaker Module v5.000 c1.0.qfg +177 -177
  41. quarchpy/config_files/Card_Modules/QTL1069-xx - SBB 2.0 Module Config v3.5 c1.1.qfg +366 -366
  42. quarchpy/config_files/Card_Modules/QTL1630-01 - PCIe Card Module v4.000 c1.0.qfg +280 -280
  43. quarchpy/config_files/Card_Modules/QTL1630-02 - PCIe Card Module Config v4.004 c1.2.qfg +283 -283
  44. quarchpy/config_files/Card_Modules/QTL1630-02 - PCIe Card Module Config v4.005 c1.2.qfg +283 -283
  45. quarchpy/config_files/Card_Modules/QTL1630-02 - PCIe Card Module Config v4.100 c1.4.qfg +284 -284
  46. quarchpy/config_files/Card_Modules/QTL1630-04 - PCIe Card Module Config v4.001 c1.1.qfg +287 -287
  47. quarchpy/config_files/Card_Modules/QTL1630-04 - PCIe Card Module Config v4.004 c1.2.qfg +287 -287
  48. quarchpy/config_files/Card_Modules/QTL1688-01 - PCIe Card Module w Triggering Config v4.004 c1.2.qfg +284 -284
  49. quarchpy/config_files/Card_Modules/QTL1688-01 - PCIe Card Module w Triggering Config v4.006 c1.3.qfg +285 -285
  50. quarchpy/config_files/Card_Modules/QTL1688-03 - PCIe Card Module w Triggering Config v4.001 c1.1.qfg +286 -286
  51. quarchpy/config_files/Card_Modules/QTL1688-03 - PCIe Card Module w Triggering Config v4.004 c1.2.qfg +288 -288
  52. quarchpy/config_files/Card_Modules/QTL1688-04 - PCIe Card Module w Triggering Config v4.005 c1.5.qfg +288 -288
  53. quarchpy/config_files/Card_Modules/QTL1688-05 - PCIe Card Module w Triggering Config v4.005 c1.qfg +288 -288
  54. quarchpy/config_files/Card_Modules/QTL1848-01 - PCIe Lite Card Module Config v4.000.qfg +122 -122
  55. quarchpy/config_files/Card_Modules/QTL1848-02 - PCIe Lite Card Module Config v4.000.qfg +134 -134
  56. quarchpy/config_files/Card_Modules/QTL1919-01 - PCIe x8 Card Module Config v4.001 c1.4.qfg +247 -247
  57. quarchpy/config_files/Card_Modules/QTL1920-01 - PCIe x8 Card Module w Triggering Config v4.000 c1.3.qfg +247 -247
  58. quarchpy/config_files/Card_Modules/QTL2019-xx - M.2 Horizontal Card Module Config v4.002 c1.1.qfg +219 -219
  59. quarchpy/config_files/Card_Modules/QTL2034-xx - M.2 M-Key Vertical Module Config v4.001 c1.1.qfg +221 -221
  60. quarchpy/config_files/Card_Modules/QTL2067-xx - PCIe SFF Module Config v4.000 c1.1.qfg +248 -248
  61. quarchpy/config_files/Card_Modules/QTL2067-xx - Sanblaze 2 Drive Riser Card Config v4.006 c1.4.qfg +256 -256
  62. quarchpy/config_files/Card_Modules/QTL2067-xx - Sanblaze 2 Drive Riser Card Config v4.007 c1.4.qfg +256 -256
  63. quarchpy/config_files/Card_Modules/QTL2073-01 - GEN3 PCIe Lite Card Module Config v4.001.qfg +134 -134
  64. quarchpy/config_files/Card_Modules/QTL2073-01 - PCIe Lite Card Module Config v4.000.qfg +134 -134
  65. quarchpy/config_files/Card_Modules/QTL2074-01 - GEN3 PCIe HS Card Module v4.005 c1.4.qfg +287 -287
  66. quarchpy/config_files/Card_Modules/QTL2074-01 - PCIe Card Module Config CurrentLimit v4.004 c1.2.qfg +287 -287
  67. quarchpy/config_files/Card_Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.1.qfg +287 -287
  68. quarchpy/config_files/Card_Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.3.qfg +277 -277
  69. quarchpy/config_files/Card_Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v5.000 c1.4.qfg +277 -277
  70. quarchpy/config_files/Card_Modules/QTL2094-01 - Sanblaze Dualport Riser Card Config v4.001 c1.1.qfg +223 -223
  71. quarchpy/config_files/Card_Modules/QTL2128-xx - PCIe GEN4 Card Module w Triggering Config v4.000 c1.1.qfg +287 -287
  72. quarchpy/config_files/Card_Modules/QTL2128-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.4.qfg +277 -277
  73. quarchpy/config_files/Card_Modules/QTL2135-xx - PCIe GEN4 Card Module w Triggering Config - Inrush Limit v4.001 c1.4.qfg +277 -277
  74. quarchpy/config_files/Card_Modules/QTL2161-01 - EDSFF x8 Module Config v4.000 c1.1.qfg +210 -210
  75. quarchpy/config_files/Card_Modules/QTL2171-xx - EDSFF x8 Module w Triggering Config 4.001 c1.1.qfg +213 -213
  76. quarchpy/config_files/Card_Modules/QTL2203-01 - Sanblaze Dualport Rack Riser Card Config v4.000 c1.1.qfg +218 -218
  77. quarchpy/config_files/Card_Modules/QTL2203-01 - Sanblaze Dualport Rack Riser Card Config v4.005 c1.5.qfg +218 -218
  78. quarchpy/config_files/Card_Modules/QTL2272-01 - GEN4 EDSFF x8 Module Config v4.000 c1.1.qfg +211 -211
  79. quarchpy/config_files/Card_Modules/QTL2282-01 - Sanblaze Singleport Rack Riser Card Config v4.000 c1.1.qfg +212 -212
  80. quarchpy/config_files/Card_Modules/QTL2282-01 - Sanblaze Singleport Rack Riser Card Config v4.002 c1.2.qfg +212 -212
  81. quarchpy/config_files/Card_Modules/QTL2318-01 - SANBlaze U.2 Rack Riser Card Config v4.000 c1.1.qfg +218 -218
  82. quarchpy/config_files/Card_Modules/QTL2322-03 - GEN4 M.2 M-Key Vertical Breaker Module Config v5.001 c1.3.qfg +220 -220
  83. quarchpy/config_files/Card_Modules/QTL2322-xx - GEN4 M.2 M-Key Vertical Breaker Module Config v5.000 c1.1.qfg +208 -208
  84. quarchpy/config_files/Card_Modules/QTL2334-xx - Gen4 EDSFF x4 Card Module Config v4.000 c1.1.qfg +187 -187
  85. quarchpy/config_files/Card_Modules/QTL2351-xx - GEN4 EDSFF x4 Card Module +Triggering Config v4.000 c1.1.qfg +189 -189
  86. quarchpy/config_files/Card_Modules/QTL2351-xx - GEN4 EDSFF x4 Card Module +Triggering Config v4.001 c1.2.qfg +190 -190
  87. quarchpy/config_files/Card_Modules/QTL2357-xx - PCIe GEN5 Card Module Config v5.000 c1.1.qfg +282 -282
  88. quarchpy/config_files/Card_Modules/QTL2358-xx - PCIe GEN5 Card Module w Triggering Config v5.000 c1.1.qfg +283 -283
  89. quarchpy/config_files/Card_Modules/QTL2378-xx - SANBlaze U.3 Rack Riser Card Config v4.000 c1.1.qfg +215 -215
  90. quarchpy/config_files/Card_Modules/QTL2378-xx - SANBlaze U.3 Rack Riser Card Config v4.001 c1.2.qfg +217 -217
  91. quarchpy/config_files/Card_Modules/QTL2395-01 - GEN4 M.2 M-Key Vertical Breaker Module w Triggering Config v5.000 c1.1.qfg +208 -208
  92. quarchpy/config_files/Card_Modules/QTL2395-02 - GEN4 M.2 M-Key Vertical Breaker Module w Triggering Config v5.001 c1.3.qfg +220 -220
  93. quarchpy/config_files/Card_Modules/QTL2395-03 - GEN4 M.2 M-Key Vertical Breaker Module w Triggering Config v5.001 c1.3.qfg +220 -220
  94. quarchpy/config_files/Card_Modules/QTL2396-xx - PCIe GEN5 Card Module w inrush Config v5.000 c1.1.qfg +282 -282
  95. quarchpy/config_files/Card_Modules/QTL2403-xx - Gen4 PCIe Lite Module Config v4.000.qfg +135 -135
  96. quarchpy/config_files/Card_Modules/QTL2515-xx - PCIe GEN4 Card Module w Triggering - Inrush Limit Config v4.001 c1.3.qfg +277 -277
  97. quarchpy/config_files/Card_Modules/QTL2652-xx - Gen5 PCIe Lite Module Config v4.000.qfg +130 -130
  98. quarchpy/config_files/Card_Modules/QTL2652-xx - Gen5 PCIe Lite Module Config v4.003.qfg +137 -137
  99. quarchpy/config_files/Card_Modules/QTL2658-xx - Gen5 PCIe Lite Module w Inrush Config v4.000.qfg +130 -130
  100. quarchpy/config_files/Card_Modules/QTL2661-xx - GEN5 PCIe U.3 Breaker Config w Triggering v5.000 c1.1.qfg +229 -229
  101. quarchpy/config_files/Card_Modules/QTL2662-xx - GEN5 PCIe U.3 Breaker Config v5.000 c1.1.qfg +228 -228
  102. quarchpy/config_files/Card_Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker Config v5.000.qfg +230 -230
  103. quarchpy/config_files/Card_Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker Config v5.001 c1.2.qfg +233 -233
  104. quarchpy/config_files/Card_Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker v5.000 c1.1.qfg +230 -230
  105. quarchpy/config_files/Card_Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker +Triggering Config v5.000.qfg +230 -230
  106. quarchpy/config_files/Card_Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker w Triggering Config v5.001 c1.2.qfg +233 -233
  107. quarchpy/config_files/Card_Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker w Triggering v5.000 c1.1.qfg +230 -230
  108. quarchpy/config_files/Card_Modules/QTL2766-xx - GEN4 EDSFF E1 x8 Breaker Config v5.000.qfg +253 -253
  109. quarchpy/config_files/Card_Modules/QTL2767-xx - GEN4 EDSFF E3 x8 Breaker Config v5.000.qfg +253 -253
  110. quarchpy/config_files/Card_Modules/QTL2768-xx - GEN4 EDSFF E3 2T x8 Breaker Config v5.000.qfg +253 -253
  111. quarchpy/config_files/Card_Modules/QTL2776-xx - GEN4 EDSFF E1 x8 Breaker +Triggering Config v5.000.qfg +253 -253
  112. quarchpy/config_files/Card_Modules/QTL2777-xx - GEN4 EDSFF E3 x8 Breaker +Triggering Config v5.000.qfg +253 -253
  113. quarchpy/config_files/Card_Modules/QTL2778-xx - GEN4 EDSFF E3 2T x8 Breaker +Triggering Config v5.000.qfg +253 -253
  114. quarchpy/config_files/Card_Modules/QTL2798-xx - PCIe GEN5 Card Module w Triggering w Inrush Limit Config v5.000 c1.1.qfg +283 -283
  115. quarchpy/config_files/Card_Modules/QTL2804-xx - GEN5 MCIO x4 to U.2 Breaker Config v5.000 c1.1.qfg +234 -234
  116. quarchpy/config_files/Card_Modules/QTL2805-xx - GEN5 MCIO x4 to U.2 Breaker + Triggering Config v5.000 c1.1.qfg +234 -234
  117. quarchpy/config_files/Card_Modules/QTL2814-xx - GEN5 AIC to U.2 Breaker + Triggering Config v5.000 c1.1 .qfg +233 -233
  118. quarchpy/config_files/Card_Modules/QTL2892-xx - GEN5 EDSFF E1 x4 Breaker.qfg +233 -233
  119. quarchpy/config_files/Card_Modules/QTL2925-xx - GEN5 EDSFF E1 x4 Breaker +Triggering.qfg +233 -233
  120. quarchpy/config_files/Drive_Modules/QTL1177-xx - HS Module Config v3.5 c1.5.qfg +198 -198
  121. quarchpy/config_files/Drive_Modules/QTL1177-xx - HS Module Config v4.000 c1.5.qfg +200 -200
  122. quarchpy/config_files/Drive_Modules/QTL1177-xx - HS Module Config v4.006 c1.8.qfg +199 -199
  123. quarchpy/config_files/Drive_Modules/QTL1215-xx - Lite Module Config v3.50.qfg +118 -118
  124. quarchpy/config_files/Drive_Modules/QTL1215-xx - Lite Module Config v4.000.qfg +118 -118
  125. quarchpy/config_files/Drive_Modules/QTL1301-xx - HS Lite Module Config v3.50.qfg +129 -129
  126. quarchpy/config_files/Drive_Modules/QTL1301-xx - HS Lite Module Config v4.000.qfg +129 -129
  127. quarchpy/config_files/Drive_Modules/QTL1429-01 - EMC HS Lite Module Config v4.000.qfg +129 -129
  128. quarchpy/config_files/Drive_Modules/QTL1429-02 - EMC HS Lite Module Config v4.002.qfg +120 -120
  129. quarchpy/config_files/Drive_Modules/QTL1623-03 - 12G HS Lite Module Config v4.001.qfg +128 -128
  130. quarchpy/config_files/Drive_Modules/QTL1623-04 - 12G HS Lite Module Config v4.001.qfg +128 -128
  131. quarchpy/config_files/Drive_Modules/QTL1680-xx - SCA2 Lite Module Config v4.001.qfg +135 -135
  132. quarchpy/config_files/Drive_Modules/QTL1689-01 - 12G HS Module Config v4.001 c1.1.qfg +199 -199
  133. quarchpy/config_files/Drive_Modules/QTL1689-04 - 12G HS Module Config v4.002 c1.1.qfg +196 -196
  134. quarchpy/config_files/Drive_Modules/QTL1689-05 - 12G HS Module Config v4.002 c1.1.qfg +196 -196
  135. quarchpy/config_files/Drive_Modules/QTL1743-02 - PCIe SFF Module Config v4.003 c1.3.qfg +222 -222
  136. quarchpy/config_files/Drive_Modules/QTL1743-02 - PCIe SFF Module Config v4.006 c1.4.qfg +213 -213
  137. quarchpy/config_files/Drive_Modules/QTL1743-xx - PCIe SFF Module Config v4.000 c1.1.qfg +221 -221
  138. quarchpy/config_files/Drive_Modules/QTL1753-xx - 12G Lite Module Config v4.000.qfg +116 -116
  139. quarchpy/config_files/Drive_Modules/QTL1921-01 - EMC 12G HS Lite Module Config v4.000.qfg +120 -120
  140. quarchpy/config_files/Drive_Modules/QTL2207-01 - GEN 4 PCIe U.2 Drive Module.qfg +217 -217
  141. quarchpy/config_files/Drive_Modules/QTL2207-02 - GEN 4 PCIe U.2 Drive Module v5.000.qfg +220 -220
  142. quarchpy/config_files/Drive_Modules/QTL2207-03 - GEN 4 PCIe SFF HS Drive Module Triggering v5.001.qfg +221 -221
  143. quarchpy/config_files/Drive_Modules/QTL2207-xx - GEN 4 PCIe U.2 Drive Module v4.001.qfg +219 -219
  144. quarchpy/config_files/Drive_Modules/QTL2207-xx - GEN 4 PCIe U.2 Drive Module.qfg +219 -219
  145. quarchpy/config_files/Drive_Modules/QTL2245-01 - GEN 4 PCIe U.3 HS Drive Module v4.000.qfg +223 -223
  146. quarchpy/config_files/Drive_Modules/QTL2245-xx - GEN 4 PCIe U.3 HS Drive Module.qfg +229 -229
  147. quarchpy/config_files/Drive_Modules/QTL2266-01 - GEN 4 PCIe SFF HS Drive Module Triggering.qfg +219 -219
  148. quarchpy/config_files/Drive_Modules/QTL2266-02 - GEN 4 PCIe SFF HS Drive Module Triggering v4.002.qfg +220 -220
  149. quarchpy/config_files/Drive_Modules/QTL2266-03 - GEN 4 PCIe SFF HS Drive Module Triggering v5.001.qfg +221 -221
  150. quarchpy/config_files/Drive_Modules/QTL2266-XX - GEN 4 PCIe SFF HS Drive Module Triggering.qfg +219 -219
  151. quarchpy/config_files/Drive_Modules/QTL2270-01 - GEN 4 PCIe U.3 HS Drive Module Triggering v4.000.qfg +225 -225
  152. quarchpy/config_files/Drive_Modules/QTL2270-xx - GEN 4 PCIe U.3 HS Drive Module Triggering.qfg +230 -230
  153. quarchpy/config_files/Drive_Modules/QTL2542-02 - 24G SAS Drive Breaker Module v5.001.qfg +194 -194
  154. quarchpy/config_files/Drive_Modules/QTL2542-xx - 24G SAS Drive Breaker v5.000 c1.1.qfg +194 -194
  155. quarchpy/config_files/Drive_Modules/QTL2543-xx - 24G SAS Drive Breaker +Triggering v5.000 c1.1.qfg +195 -195
  156. quarchpy/config_files/Drive_Modules/QTL2602-xx - Multiprotocol Link Breaker.qfg +178 -178
  157. quarchpy/config_files/Drive_Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.000.qfg +227 -227
  158. quarchpy/config_files/Drive_Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.001.qfg +227 -227
  159. quarchpy/config_files/Drive_Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.003.qfg +227 -227
  160. quarchpy/config_files/Drive_Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.007.qfg +229 -229
  161. quarchpy/config_files/Drive_Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.000.qfg +228 -228
  162. quarchpy/config_files/Drive_Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.001.qfg +228 -228
  163. quarchpy/config_files/Drive_Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.003.qfg +228 -228
  164. quarchpy/config_files/Drive_Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module v5.007.qfg +230 -230
  165. quarchpy/config_files/Drive_Modules/QTL2661-xx - Gen5 U.3 Drive Module + Triggering v5.000.qfg +229 -229
  166. quarchpy/config_files/Drive_Modules/QTL2662-xx - Gen5 PCIe U.3 Drive Module v5.000.qfg +228 -228
  167. quarchpy/config_files/Drive_Modules/QTL2757-xx - Gen5 SFF Lite Breaker Module Config v4.000.qfg +140 -140
  168. quarchpy/config_files/Drive_Modules/QTL2804-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.003.qfg +253 -253
  169. quarchpy/config_files/Drive_Modules/QTL2804-xx - Gen5 MCIO to U.2 Breaker v5.001.qfg +234 -234
  170. quarchpy/config_files/Drive_Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.001.qfg +234 -234
  171. quarchpy/config_files/Drive_Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.002.qfg +253 -253
  172. quarchpy/config_files/Drive_Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.003.qfg +253 -253
  173. quarchpy/config_files/Drive_Modules/QTL2813-xx - Gen5 AIC to U.2 Breaker v5.001 c1.2.qfg +230 -230
  174. quarchpy/config_files/Drive_Modules/QTL2813-xx - Gen5 AIC to U.2 Breaker with Triggering v5.002 c1.3.qfg +253 -253
  175. quarchpy/config_files/Drive_Modules/QTL2814-xx - Gen5 AIC to U.2 Breaker with Triggering v5.001 c1.2.qfg +230 -230
  176. quarchpy/config_files/Drive_Modules/QTL2814-xx - Gen5 AIC to U.2 Breaker with Triggering v5.002 c1.3.qfg +253 -253
  177. quarchpy/config_files/Drive_Modules/QTL2892-xx - Gen5 EDSFF E1 x4 Breaker v5.001.qfg +233 -233
  178. quarchpy/config_files/Drive_Modules/Standard Drive Module Config v3.5 c1.1.qfg +171 -171
  179. quarchpy/config_files/Power_Margining/HD/QTL1944-xx - HD Power Module v5.000.qfg +123 -123
  180. quarchpy/config_files/Power_Margining/HD/QTL1944-xx - HD Power Module v5.003.qfg +124 -124
  181. quarchpy/config_files/Power_Margining/HD/QTL1995-xx - x6 HD Power Module v5.002.qfg +122 -122
  182. quarchpy/config_files/Power_Margining/HD/QTL1995-xx - x6 HD Power Module v5.003.qfg +123 -123
  183. quarchpy/config_files/Power_Margining/HD/QTL1999-xx - Single HD Power Module v5.002.qfg +122 -122
  184. quarchpy/config_files/Power_Margining/HD/QTL1999-xx - Single HD Power Module v5.003.qfg +123 -123
  185. quarchpy/config_files/Power_Margining/HD/QTL1999-xx - Single HD Power Module v6.000.qfg +124 -124
  186. quarchpy/config_files/Power_Margining/PPM/QTL1455-02 - Power Margining Module v4.101.qfg +78 -78
  187. quarchpy/config_files/Power_Margining/PPM/QTL1455-02 - Power Margining Module v4.200.qfg +80 -80
  188. quarchpy/config_files/Power_Margining/PPM/QTL1455-02 - Power Margining Module v4.201.qfg +82 -82
  189. quarchpy/config_files/Power_Margining/PPM/QTL1455-02 - Test Power Margining Module v4.004.qfg +73 -73
  190. quarchpy/config_files/Power_Margining/PPM/QTL1658-01 - Power Margining Module w. Triggering v4.101.qfg +78 -78
  191. quarchpy/config_files/Power_Margining/PPM/QTL1658-01 - Power Margining Module w. Triggering v4.200.qfg +80 -80
  192. quarchpy/config_files/Power_Margining/PPM/QTL1658-01 - Power Margining Module w. Triggering v4.201.qfg +82 -82
  193. quarchpy/config_files/Power_Margining/PPM/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.105.qfg +78 -78
  194. quarchpy/config_files/Power_Margining/PPM/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.200.qfg +80 -80
  195. quarchpy/config_files/Power_Margining/PPM/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.201.qfg +82 -82
  196. quarchpy/config_files/Power_Margining/PPM/QTL1730-01 - 3v3 Power Margining Module v4.105.qfg +78 -78
  197. quarchpy/config_files/Power_Margining/PPM/QTL1730-01 - 3v3 Power Margining Module v4.200.qfg +80 -80
  198. quarchpy/config_files/Power_Margining/PPM/QTL1730-01 - 3v3 Power Margining Module v4.201.qfg +82 -82
  199. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.000.qfg +80 -80
  200. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.200.qfg +81 -81
  201. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.202.qfg +87 -87
  202. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.210.qfg +88 -88
  203. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.211.qfg +121 -121
  204. quarchpy/config_files/Power_Margining/XLC/QTL1824-03 - Power Margining Module V2 - Triggering v4.213.qfg +121 -121
  205. quarchpy/config_files/Power_Margining/XLC/QTL1847-01 - Power Margining Module V2 v4.213.qfg +121 -121
  206. quarchpy/config_files/Switch_Modules/QTL1390-xx - 4-8 SATA MUX Module Config v4.002.qfg +186 -186
  207. quarchpy/config_files/Switch_Modules/QTL1443-xx - 1-8 USB3 MUX Module Config v4.002.qfg +147 -147
  208. quarchpy/config_files/Switch_Modules/QTL1443-xx - 1-8 USB3 MUX Module Config v4.003.qfg +147 -147
  209. quarchpy/config_files/Switch_Modules/QTL1443-xx - 1-8 USB3 MUX Module Config v4.100.qfg +147 -147
  210. quarchpy/config_files/Switch_Modules/QTL1449-xx - 1-8 PCIe MUX Module Config v4.000.qfg +145 -145
  211. quarchpy/config_files/Switch_Modules/QTL1490-xx - SATA Keyed HS Module Config v4.003 c1.6.qfg +194 -194
  212. quarchpy/config_files/Switch_Modules/QTL1490-xx - SATA Keyed HS Module Config v4.006 c1.8.qfg +193 -193
  213. quarchpy/config_files/Switch_Modules/QTL1530-xx - 1-8 DP MUX Module Config v4.000.qfg +145 -145
  214. quarchpy/config_files/Switch_Modules/QTL1564-xx - 12 Port Mini SAS HD MUX Module Config v4.000.qfg +184 -184
  215. quarchpy/config_files/Switch_Modules/QTL1584-xx - 1-4 ExpressCard MUX Module Config v4.000.qfg +81 -81
  216. quarchpy/config_files/__pycache__/__init__.cpython-310.pyc +0 -0
  217. quarchpy/config_files/__pycache__/quarch_config_parser.cpython-310.pyc +0 -0
  218. quarchpy/connection_specific/QPS/win-amd64/app.jar +0 -0
  219. quarchpy/connection_specific/QPS/win-amd64/qis/help.txt +17 -50
  220. quarchpy/connection_specific/QPS/win-amd64/qis/qis.jar +0 -0
  221. quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/CInterface-2.3.jar +0 -0
  222. quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/QuarchCommon-2.0.jar +0 -0
  223. quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/usb4java-1.3.1.jar +0 -0
  224. quarchpy/connection_specific/QPS/win-amd64/qps-command-reference.html +104 -104
  225. quarchpy/connection_specific/QPS/win-amd64/qps.jar +0 -0
  226. quarchpy/connection_specific/QPS/win-amd64/qps_lib/JFXUtilities-1.0.jar +0 -0
  227. quarchpy/connection_specific/QPS/win-amd64/qps_lib/QuarchCommon-2.0.jar +0 -0
  228. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-base-21.0.6-linux.jar → javafx-base-21.0.5-linux.jar} +0 -0
  229. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-controls-21.0.6-linux.jar → javafx-controls-21.0.5-linux.jar} +0 -0
  230. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-fxml-21.0.6-linux.jar → javafx-fxml-21.0.5-linux.jar} +0 -0
  231. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-graphics-21.0.6-linux.jar → javafx-graphics-21.0.5-linux.jar} +0 -0
  232. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-swing-21.0.6-linux.jar → javafx-swing-21.0.5-linux.jar} +0 -0
  233. quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-x64/javafx-base-21.0.6-mac.jar → mac-arm64/javafx-base-21.0.5-mac-aarch64.jar} +0 -0
  234. quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-controls-21.0.6-mac-aarch64.jar → javafx-controls-21.0.5-mac-aarch64.jar} +0 -0
  235. quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-x64/javafx-fxml-21.0.6-mac.jar → mac-arm64/javafx-fxml-21.0.5-mac-aarch64.jar} +0 -0
  236. quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-graphics-21.0.6-mac-aarch64.jar → javafx-graphics-21.0.5-mac-aarch64.jar} +0 -0
  237. quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-x64/javafx-swing-21.0.6-mac.jar → mac-arm64/javafx-swing-21.0.5-mac-aarch64.jar} +0 -0
  238. quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-arm64/javafx-base-21.0.6-mac-aarch64.jar → mac-x64/javafx-base-21.0.5-mac.jar} +0 -0
  239. quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-controls-21.0.6-mac.jar → javafx-controls-21.0.5-mac.jar} +0 -0
  240. quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-arm64/javafx-fxml-21.0.6-mac-aarch64.jar → mac-x64/javafx-fxml-21.0.5-mac.jar} +0 -0
  241. quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-graphics-21.0.6-mac.jar → javafx-graphics-21.0.5-mac.jar} +0 -0
  242. quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-arm64/javafx-swing-21.0.6-mac-aarch64.jar → mac-x64/javafx-swing-21.0.5-mac.jar} +0 -0
  243. quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-base-21.0.6-win.jar → javafx-base-21.0.5-win.jar} +0 -0
  244. quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-controls-21.0.6-win.jar → javafx-controls-21.0.5-win.jar} +0 -0
  245. quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-fxml-21.0.6-win.jar → javafx-fxml-21.0.5-win.jar} +0 -0
  246. quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-graphics-21.0.6-win.jar → javafx-graphics-21.0.5-win.jar} +0 -0
  247. quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-swing-21.0.6-win.jar → javafx-swing-21.0.5-win.jar} +0 -0
  248. quarchpy/connection_specific/QPS/win-amd64/scriptCommands.txt +4 -4
  249. quarchpy/connection_specific/QPS/win-amd64/whats-new.txt +12 -20
  250. quarchpy/connection_specific/__pycache__/StreamChannels.cpython-310.pyc +0 -0
  251. quarchpy/connection_specific/__pycache__/__init__.cpython-310.pyc +0 -0
  252. quarchpy/connection_specific/__pycache__/connection_QIS.cpython-310.pyc +0 -0
  253. quarchpy/connection_specific/__pycache__/connection_QPS.cpython-310.pyc +0 -0
  254. quarchpy/connection_specific/__pycache__/connection_ReST.cpython-310.pyc +0 -0
  255. quarchpy/connection_specific/__pycache__/connection_Serial.cpython-310.pyc +0 -0
  256. quarchpy/connection_specific/__pycache__/connection_TCP.cpython-310.pyc +0 -0
  257. quarchpy/connection_specific/__pycache__/connection_USB.cpython-310.pyc +0 -0
  258. quarchpy/connection_specific/__pycache__/mDNS.cpython-310.pyc +0 -0
  259. quarchpy/connection_specific/connection_QIS.py +228 -176
  260. quarchpy/connection_specific/connection_QPS.py +0 -2
  261. quarchpy/connection_specific/jdk_j21_jres/__pycache__/__init__.cpython-310.pyc +0 -0
  262. quarchpy/connection_specific/jdk_j21_jres/__pycache__/fix_permissions.cpython-310.pyc +0 -0
  263. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/jaxp.properties +180 -180
  264. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/logging.properties +63 -63
  265. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/management/management.properties +327 -327
  266. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/net.properties +164 -164
  267. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/security/java.policy +46 -46
  268. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/security/java.security +1509 -1509
  269. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/asm.md +36 -36
  270. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/cldr.md +109 -109
  271. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/icu.md +518 -518
  272. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/public_suffix.md +399 -399
  273. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/unicode.md +103 -103
  274. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.desktop/freetype.md +649 -649
  275. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.desktop/giflib.md +50 -50
  276. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.smartcardio/pcsclite.md +57 -57
  277. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/xalan.md +255 -255
  278. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md +72 -72
  279. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO +37 -37
  280. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION +27 -27
  281. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/LICENSE +347 -347
  282. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO +37 -37
  283. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION +27 -27
  284. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/LICENSE +347 -347
  285. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.localedata/cldr.md +109 -109
  286. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/classlist +1502 -1502
  287. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/jfr/default.jfc +1126 -1126
  288. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/jfr/profile.jfc +1126 -1126
  289. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/psfontj2d.properties +323 -323
  290. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/security/default.policy +235 -235
  291. quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/release +2 -2
  292. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/jaxp.properties +180 -180
  293. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/logging.properties +63 -63
  294. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/management/management.properties +327 -327
  295. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/net.properties +164 -164
  296. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/security/java.policy +46 -46
  297. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/security/java.security +1510 -1510
  298. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/asm.md +36 -36
  299. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/cldr.md +109 -109
  300. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/icu.md +518 -518
  301. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/public_suffix.md +399 -399
  302. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/unicode.md +103 -103
  303. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.desktop/freetype.md +649 -649
  304. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.desktop/giflib.md +50 -50
  305. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.smartcardio/pcsclite.md +57 -57
  306. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/xalan.md +255 -255
  307. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md +72 -72
  308. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO +37 -37
  309. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION +27 -27
  310. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/LICENSE +347 -347
  311. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO +37 -37
  312. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION +27 -27
  313. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/LICENSE +347 -347
  314. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.localedata/cldr.md +109 -109
  315. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/classlist +1497 -1497
  316. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/jfr/default.jfc +1126 -1126
  317. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/jfr/profile.jfc +1126 -1126
  318. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/psfontj2d.properties +323 -323
  319. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/security/default.policy +235 -235
  320. quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/release +2 -2
  321. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/jaxp.properties +180 -180
  322. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/logging.properties +63 -63
  323. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/management/management.properties +327 -327
  324. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/net.properties +168 -168
  325. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/security/java.policy +46 -46
  326. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/asm.md +36 -36
  327. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/cldr.md +109 -109
  328. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/icu.md +518 -518
  329. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/public_suffix.md +399 -399
  330. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/unicode.md +103 -103
  331. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.desktop/freetype.md +649 -649
  332. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.desktop/giflib.md +50 -50
  333. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/xalan.md +255 -255
  334. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md +72 -72
  335. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/jfr/default.jfc +1126 -1126
  336. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/jfr/profile.jfc +1126 -1126
  337. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/psfontj2d.properties +323 -323
  338. quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/security/default.policy +251 -251
  339. quarchpy/connection_specific/mDNS.py +1 -3
  340. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-310.pyc +0 -0
  341. quarchpy/connection_specific/serial/__pycache__/serialposix.cpython-310.pyc +0 -0
  342. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-310.pyc +0 -0
  343. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-310.pyc +0 -0
  344. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-310.pyc +0 -0
  345. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-310.pyc +0 -0
  346. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_linux.cpython-310.pyc +0 -0
  347. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_posix.cpython-310.pyc +0 -0
  348. quarchpy/connection_specific/usb_libs/usb1.py +4 -4
  349. quarchpy/debug/SystemTest.py +64 -16
  350. quarchpy/debug/__pycache__/SystemTest.cpython-310.pyc +0 -0
  351. quarchpy/debug/__pycache__/__init__.cpython-310.pyc +0 -0
  352. quarchpy/debug/__pycache__/versionCompare.cpython-310.pyc +0 -0
  353. quarchpy/debug/module_debug.py +25 -26
  354. quarchpy/debug/simple_terminal.py +23 -18
  355. quarchpy/device/__init__.py +4 -4
  356. quarchpy/device/__pycache__/__init__.cpython-310.pyc +0 -0
  357. quarchpy/device/__pycache__/device.cpython-310.pyc +0 -0
  358. quarchpy/device/__pycache__/quarchArray.cpython-310.pyc +0 -0
  359. quarchpy/device/__pycache__/quarchPPM.cpython-310.pyc +0 -0
  360. quarchpy/device/__pycache__/quarchQPS.cpython-310.pyc +0 -0
  361. quarchpy/device/__pycache__/scanDevices.cpython-310.pyc +0 -0
  362. quarchpy/device/device.py +1237 -440
  363. quarchpy/device/quarchArray.py +2 -2
  364. quarchpy/device/quarchPPM.py +13 -14
  365. quarchpy/device/quarchQPS.py +95 -67
  366. quarchpy/device/scanDevices.py +4 -4
  367. quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-310.pyc +0 -0
  368. quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-310.pyc +0 -0
  369. quarchpy/disk_test/__pycache__/__init__.cpython-310.pyc +0 -0
  370. quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-310.pyc +0 -0
  371. quarchpy/docs/CHANGES.rst +443 -443
  372. quarchpy/docs/Makefile +20 -20
  373. quarchpy/docs/_build/html/.buildinfo +4 -4
  374. quarchpy/docs/_build/html/CHANGES.html +660 -660
  375. quarchpy/docs/_build/html/_sources/CHANGES.rst.txt +439 -439
  376. quarchpy/docs/_build/html/_sources/index.rst.txt +23 -23
  377. quarchpy/docs/_build/html/_sources/readme.rst.txt +41 -41
  378. quarchpy/docs/_build/html/_sources/source/modules.rst.txt +7 -7
  379. quarchpy/docs/_build/html/_sources/source/quarchpy.calibration.rst.txt +78 -78
  380. quarchpy/docs/_build/html/_sources/source/quarchpy.config_files.rst.txt +22 -22
  381. quarchpy/docs/_build/html/_sources/source/quarchpy.connection_specific.rst.txt +76 -76
  382. quarchpy/docs/_build/html/_sources/source/quarchpy.debug.rst.txt +38 -38
  383. quarchpy/docs/_build/html/_sources/source/quarchpy.device.rst.txt +54 -54
  384. quarchpy/docs/_build/html/_sources/source/quarchpy.disk_test.rst.txt +126 -126
  385. quarchpy/docs/_build/html/_sources/source/quarchpy.fio.rst.txt +30 -30
  386. quarchpy/docs/_build/html/_sources/source/quarchpy.iometer.rst.txt +22 -22
  387. quarchpy/docs/_build/html/_sources/source/quarchpy.qis.rst.txt +22 -22
  388. quarchpy/docs/_build/html/_sources/source/quarchpy.qps.rst.txt +22 -22
  389. quarchpy/docs/_build/html/_sources/source/quarchpy.rst.txt +50 -50
  390. quarchpy/docs/_build/html/_sources/source/quarchpy.user_interface.rst.txt +22 -22
  391. quarchpy/docs/_build/html/_sources/source/quarchpy.utilities.rst.txt +22 -22
  392. quarchpy/docs/_build/html/_static/alabaster.css +662 -662
  393. quarchpy/docs/_build/html/_static/basic.css +913 -913
  394. quarchpy/docs/_build/html/_static/custom.css +1 -1
  395. quarchpy/docs/_build/html/_static/doctools.js +149 -149
  396. quarchpy/docs/_build/html/_static/documentation_options.js +12 -12
  397. quarchpy/docs/_build/html/_static/jquery-3.4.1.js +10598 -10598
  398. quarchpy/docs/_build/html/_static/jquery.js +2 -2
  399. quarchpy/docs/_build/html/_static/language_data.js +192 -192
  400. quarchpy/docs/_build/html/_static/pygments.css +83 -83
  401. quarchpy/docs/_build/html/_static/searchtools.js +632 -632
  402. quarchpy/docs/_build/html/_static/sphinx_highlight.js +154 -154
  403. quarchpy/docs/_build/html/_static/underscore-1.3.1.js +999 -999
  404. quarchpy/docs/_build/html/_static/underscore.js +5 -5
  405. quarchpy/docs/_build/html/genindex.html +1626 -1626
  406. quarchpy/docs/_build/html/index.html +214 -214
  407. quarchpy/docs/_build/html/py-modindex.html +300 -300
  408. quarchpy/docs/_build/html/readme.html +137 -137
  409. quarchpy/docs/_build/html/search.html +123 -123
  410. quarchpy/docs/_build/html/source/changelog.html +739 -739
  411. quarchpy/docs/_build/html/source/licenses.html +181 -181
  412. quarchpy/docs/_build/html/source/modules.html +222 -222
  413. quarchpy/docs/_build/html/source/quarchpy.calibration.html +147 -147
  414. quarchpy/docs/_build/html/source/quarchpy.config_files.html +136 -136
  415. quarchpy/docs/_build/html/source/quarchpy.connection_specific.html +729 -729
  416. quarchpy/docs/_build/html/source/quarchpy.debug.html +251 -251
  417. quarchpy/docs/_build/html/source/quarchpy.device.html +1165 -1165
  418. quarchpy/docs/_build/html/source/quarchpy.disk_test.html +220 -220
  419. quarchpy/docs/_build/html/source/quarchpy.fio.html +218 -218
  420. quarchpy/docs/_build/html/source/quarchpy.html +715 -715
  421. quarchpy/docs/_build/html/source/quarchpy.iometer.html +271 -271
  422. quarchpy/docs/_build/html/source/quarchpy.qis.html +640 -640
  423. quarchpy/docs/_build/html/source/quarchpy.qps.html +186 -186
  424. quarchpy/docs/_build/html/source/quarchpy.user_interface.html +278 -278
  425. quarchpy/docs/_build/html/source/quarchpy.utilities.html +211 -211
  426. quarchpy/docs/_build/html/source/readme.html +147 -147
  427. quarchpy/docs/conf.py +56 -56
  428. quarchpy/docs/index.rst +23 -23
  429. quarchpy/docs/make.bat +35 -35
  430. quarchpy/docs/readme.rst +41 -41
  431. quarchpy/docs/source/modules.rst +7 -7
  432. quarchpy/docs/source/quarchpy.calibration.rst +78 -78
  433. quarchpy/docs/source/quarchpy.config_files.rst +22 -22
  434. quarchpy/docs/source/quarchpy.connection_specific.rst +76 -76
  435. quarchpy/docs/source/quarchpy.debug.rst +38 -38
  436. quarchpy/docs/source/quarchpy.device.rst +54 -54
  437. quarchpy/docs/source/quarchpy.disk_test.rst +126 -126
  438. quarchpy/docs/source/quarchpy.fio.rst +30 -30
  439. quarchpy/docs/source/quarchpy.iometer.rst +22 -22
  440. quarchpy/docs/source/quarchpy.qis.rst +22 -22
  441. quarchpy/docs/source/quarchpy.qps.rst +22 -22
  442. quarchpy/docs/source/quarchpy.rst +50 -50
  443. quarchpy/docs/source/quarchpy.user_interface.rst +22 -22
  444. quarchpy/docs/source/quarchpy.utilities.rst +22 -22
  445. quarchpy/fio/FIO_interface.py +0 -1
  446. quarchpy/fio/HIDEtest_performance_class.py +533 -533
  447. quarchpy/fio/__pycache__/FIO_interface.cpython-310.pyc +0 -0
  448. quarchpy/fio/__pycache__/__init__.cpython-310.pyc +0 -0
  449. quarchpy/iometer/__pycache__/__init__.cpython-310.pyc +0 -0
  450. quarchpy/iometer/__pycache__/{gen_iometer_template.cpython-312.pyc → gen_iometer_template.cpython-310.pyc} +0 -0
  451. quarchpy/iometer/__pycache__/iometerFuncs.cpython-310.pyc +0 -0
  452. quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-310.pyc +0 -0
  453. quarchpy/qis/__pycache__/__init__.cpython-310.pyc +0 -0
  454. quarchpy/qis/__pycache__/qisFuncs.cpython-310.pyc +0 -0
  455. quarchpy/qis/qisFuncs.py +46 -51
  456. quarchpy/qps/__pycache__/__init__.cpython-310.pyc +0 -0
  457. quarchpy/qps/__pycache__/qpsFuncs.cpython-310.pyc +0 -0
  458. quarchpy/qps/qpsFuncs.py +10 -17
  459. quarchpy/run.py +3 -3
  460. quarchpy/user_interface/__pycache__/__init__.cpython-310.pyc +0 -0
  461. quarchpy/user_interface/__pycache__/user_interface.cpython-310.pyc +0 -0
  462. quarchpy/utilities/TestCenter.py +2 -2
  463. quarchpy/utilities/__pycache__/TestCenter.cpython-310.pyc +0 -0
  464. quarchpy/utilities/__pycache__/TimeValue.cpython-310.pyc +0 -0
  465. quarchpy/utilities/__pycache__/Version.cpython-310.pyc +0 -0
  466. quarchpy/utilities/__pycache__/__init__.cpython-310.pyc +0 -0
  467. {quarchpy-2.2.9.dev4.dist-info → quarchpy-2.2.9.dev5.dist-info}/METADATA +466 -466
  468. {quarchpy-2.2.9.dev4.dist-info → quarchpy-2.2.9.dev5.dist-info}/RECORD +473 -639
  469. {quarchpy-2.2.9.dev4.dist-info → quarchpy-2.2.9.dev5.dist-info}/WHEEL +1 -1
  470. quarchpy/.idea/.name +0 -1
  471. quarchpy/.idea/inspectionProfiles/Project_Default.xml +0 -50
  472. quarchpy/.idea/inspectionProfiles/profiles_settings.xml +0 -6
  473. quarchpy/.idea/misc.xml +0 -7
  474. quarchpy/.idea/modules.xml +0 -8
  475. quarchpy/.idea/quarchpy.iml +0 -12
  476. quarchpy/.idea/vcs.xml +0 -7
  477. quarchpy/.idea/workspace.xml +0 -273
  478. quarchpy/__pycache__/__init__.cpython-311.pyc +0 -0
  479. quarchpy/__pycache__/__init__.cpython-312.pyc +0 -0
  480. quarchpy/__pycache__/__init__.cpython-313.pyc +0 -0
  481. quarchpy/__pycache__/_version.cpython-311.pyc +0 -0
  482. quarchpy/__pycache__/_version.cpython-312.pyc +0 -0
  483. quarchpy/__pycache__/_version.cpython-313.pyc +0 -0
  484. quarchpy/__pycache__/connection.cpython-311.pyc +0 -0
  485. quarchpy/__pycache__/connection.cpython-312.pyc +0 -0
  486. quarchpy/__pycache__/connection.cpython-313.pyc +0 -0
  487. quarchpy/__pycache__/run.cpython-311.pyc +0 -0
  488. quarchpy/__pycache__/run.cpython-312.pyc +0 -0
  489. quarchpy/config_files/__pycache__/__init__.cpython-311.pyc +0 -0
  490. quarchpy/config_files/__pycache__/__init__.cpython-312.pyc +0 -0
  491. quarchpy/config_files/__pycache__/__init__.cpython-313.pyc +0 -0
  492. quarchpy/config_files/__pycache__/quarch_config_parser.cpython-311.pyc +0 -0
  493. quarchpy/config_files/__pycache__/quarch_config_parser.cpython-312.pyc +0 -0
  494. quarchpy/config_files/__pycache__/quarch_config_parser.cpython-313.pyc +0 -0
  495. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/Material-Icons-license.txt +0 -51
  496. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/argparse4j-LICENSE.txt +0 -23
  497. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/com.sun.istack-license.html +0 -59
  498. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/commons-io-LICENSE-2.0.txt +0 -202
  499. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/controlsfx-license.txt +0 -29
  500. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/jakarta.activation-license.html +0 -59
  501. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/jakarta.xml.bind-api-license.html +0 -59
  502. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/netty-LICENSE.txt +0 -202
  503. quarchpy/connection_specific/QPS/win-amd64/3rdPartyLicenses/netty-NOTICE.txt +0 -239
  504. quarchpy/connection_specific/QPS/win-amd64/InstallType.dat +0 -1
  505. quarchpy/connection_specific/QPS/win-amd64/app.properties +0 -6
  506. quarchpy/connection_specific/QPS/win-amd64/license.txt +0 -1
  507. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/com.sun.istack-license.html +0 -59
  508. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/dorkbox-LICENSE.Apachev2 +0 -218
  509. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/jSerialComm-LICENSE-APACHE-2.0 +0 -202
  510. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/jSerialComm-LICENSE-LGPL-3.0 +0 -165
  511. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/jakarta.activation-license.html +0 -59
  512. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/jakarta.xml.bind-api-license.html +0 -59
  513. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/javassist-License.html +0 -381
  514. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/jmdns-LICENSE.txt +0 -202
  515. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/jna-AL2.0 +0 -177
  516. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/kotlin-stdlib-LICENSE-2.0.txt +0 -202
  517. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/netty-LICENSE.txt +0 -202
  518. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/netty-NOTICE.txt +0 -239
  519. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/slf4j-LICENSE.txt +0 -24
  520. quarchpy/connection_specific/QPS/win-amd64/qis/3rdPartyLicenses/usb4java-LICENSE.md +0 -20
  521. quarchpy/connection_specific/QPS/win-amd64/qis/license.txt +0 -1
  522. quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/TorridonCommon-1.1.jar +0 -0
  523. quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/jmdns-3.5.9.jar +0 -0
  524. quarchpy/connection_specific/QPS/win-amd64/qps_lib/commons-io-2.18.0.jar +0 -0
  525. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-base-21.0.6-linux-aarch64.jar +0 -0
  526. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-controls-21.0.6-linux-aarch64.jar +0 -0
  527. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-fxml-21.0.6-linux-aarch64.jar +0 -0
  528. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-graphics-21.0.6-linux-aarch64.jar +0 -0
  529. quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-swing-21.0.6-linux-aarch64.jar +0 -0
  530. quarchpy/connection_specific/QPS/win-amd64/qps_lib/qutils-1.0.jar +0 -0
  531. quarchpy/connection_specific/__pycache__/StreamChannels.cpython-311.pyc +0 -0
  532. quarchpy/connection_specific/__pycache__/StreamChannels.cpython-312.pyc +0 -0
  533. quarchpy/connection_specific/__pycache__/StreamChannels.cpython-313.pyc +0 -0
  534. quarchpy/connection_specific/__pycache__/__init__.cpython-311.pyc +0 -0
  535. quarchpy/connection_specific/__pycache__/__init__.cpython-312.pyc +0 -0
  536. quarchpy/connection_specific/__pycache__/__init__.cpython-313.pyc +0 -0
  537. quarchpy/connection_specific/__pycache__/connection_QIS.cpython-311.pyc +0 -0
  538. quarchpy/connection_specific/__pycache__/connection_QIS.cpython-312.pyc +0 -0
  539. quarchpy/connection_specific/__pycache__/connection_QIS.cpython-313.pyc +0 -0
  540. quarchpy/connection_specific/__pycache__/connection_QPS.cpython-311.pyc +0 -0
  541. quarchpy/connection_specific/__pycache__/connection_QPS.cpython-312.pyc +0 -0
  542. quarchpy/connection_specific/__pycache__/connection_QPS.cpython-313.pyc +0 -0
  543. quarchpy/connection_specific/__pycache__/connection_ReST.cpython-311.pyc +0 -0
  544. quarchpy/connection_specific/__pycache__/connection_ReST.cpython-312.pyc +0 -0
  545. quarchpy/connection_specific/__pycache__/connection_ReST.cpython-313.pyc +0 -0
  546. quarchpy/connection_specific/__pycache__/connection_Serial.cpython-311.pyc +0 -0
  547. quarchpy/connection_specific/__pycache__/connection_Serial.cpython-312.pyc +0 -0
  548. quarchpy/connection_specific/__pycache__/connection_Serial.cpython-313.pyc +0 -0
  549. quarchpy/connection_specific/__pycache__/connection_TCP.cpython-311.pyc +0 -0
  550. quarchpy/connection_specific/__pycache__/connection_TCP.cpython-312.pyc +0 -0
  551. quarchpy/connection_specific/__pycache__/connection_TCP.cpython-313.pyc +0 -0
  552. quarchpy/connection_specific/__pycache__/connection_USB.cpython-311.pyc +0 -0
  553. quarchpy/connection_specific/__pycache__/connection_USB.cpython-312.pyc +0 -0
  554. quarchpy/connection_specific/__pycache__/connection_USB.cpython-313.pyc +0 -0
  555. quarchpy/connection_specific/__pycache__/mDNS.cpython-311.pyc +0 -0
  556. quarchpy/connection_specific/__pycache__/mDNS.cpython-312.pyc +0 -0
  557. quarchpy/connection_specific/__pycache__/mDNS.cpython-313.pyc +0 -0
  558. quarchpy/connection_specific/jdk_j21_jres/__pycache__/__init__.cpython-311.pyc +0 -0
  559. quarchpy/connection_specific/jdk_j21_jres/__pycache__/__init__.cpython-312.pyc +0 -0
  560. quarchpy/connection_specific/jdk_j21_jres/__pycache__/__init__.cpython-313.pyc +0 -0
  561. quarchpy/connection_specific/jdk_j21_jres/__pycache__/fix_permissions.cpython-311.pyc +0 -0
  562. quarchpy/connection_specific/jdk_j21_jres/__pycache__/fix_permissions.cpython-312.pyc +0 -0
  563. quarchpy/connection_specific/jdk_j21_jres/__pycache__/fix_permissions.cpython-313.pyc +0 -0
  564. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-311.pyc +0 -0
  565. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-312.pyc +0 -0
  566. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-313.pyc +0 -0
  567. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-311.pyc +0 -0
  568. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-312.pyc +0 -0
  569. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-313.pyc +0 -0
  570. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-311.pyc +0 -0
  571. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-312.pyc +0 -0
  572. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-313.pyc +0 -0
  573. quarchpy/connection_specific/serial/__pycache__/win32.cpython-311.pyc +0 -0
  574. quarchpy/connection_specific/serial/__pycache__/win32.cpython-312.pyc +0 -0
  575. quarchpy/connection_specific/serial/__pycache__/win32.cpython-313.pyc +0 -0
  576. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-311.pyc +0 -0
  577. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-312.pyc +0 -0
  578. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-313.pyc +0 -0
  579. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-311.pyc +0 -0
  580. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-312.pyc +0 -0
  581. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-313.pyc +0 -0
  582. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-311.pyc +0 -0
  583. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-312.pyc +0 -0
  584. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-313.pyc +0 -0
  585. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-311.pyc +0 -0
  586. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-312.pyc +0 -0
  587. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-313.pyc +0 -0
  588. quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-311.pyc +0 -0
  589. quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-312.pyc +0 -0
  590. quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-311.pyc +0 -0
  591. quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-312.pyc +0 -0
  592. quarchpy/debug/__pycache__/SystemTest.cpython-311.pyc +0 -0
  593. quarchpy/debug/__pycache__/SystemTest.cpython-312.pyc +0 -0
  594. quarchpy/debug/__pycache__/SystemTest.cpython-313.pyc +0 -0
  595. quarchpy/debug/__pycache__/__init__.cpython-311.pyc +0 -0
  596. quarchpy/debug/__pycache__/__init__.cpython-312.pyc +0 -0
  597. quarchpy/debug/__pycache__/__init__.cpython-313.pyc +0 -0
  598. quarchpy/debug/__pycache__/module_debug.cpython-311.pyc +0 -0
  599. quarchpy/debug/__pycache__/module_debug.cpython-312.pyc +0 -0
  600. quarchpy/debug/__pycache__/module_debug.cpython-313.pyc +0 -0
  601. quarchpy/debug/__pycache__/simple_terminal.cpython-311.pyc +0 -0
  602. quarchpy/debug/__pycache__/simple_terminal.cpython-312.pyc +0 -0
  603. quarchpy/debug/__pycache__/simple_terminal.cpython-313.pyc +0 -0
  604. quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-311.pyc +0 -0
  605. quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-312.pyc +0 -0
  606. quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-313.pyc +0 -0
  607. quarchpy/debug/__pycache__/versionCompare.cpython-311.pyc +0 -0
  608. quarchpy/debug/__pycache__/versionCompare.cpython-312.pyc +0 -0
  609. quarchpy/debug/__pycache__/versionCompare.cpython-313.pyc +0 -0
  610. quarchpy/device/__pycache__/__init__.cpython-311.pyc +0 -0
  611. quarchpy/device/__pycache__/__init__.cpython-312.pyc +0 -0
  612. quarchpy/device/__pycache__/__init__.cpython-313.pyc +0 -0
  613. quarchpy/device/__pycache__/device.cpython-311.pyc +0 -0
  614. quarchpy/device/__pycache__/device.cpython-312.pyc +0 -0
  615. quarchpy/device/__pycache__/device.cpython-313.pyc +0 -0
  616. quarchpy/device/__pycache__/quarchArray.cpython-311.pyc +0 -0
  617. quarchpy/device/__pycache__/quarchArray.cpython-312.pyc +0 -0
  618. quarchpy/device/__pycache__/quarchArray.cpython-313.pyc +0 -0
  619. quarchpy/device/__pycache__/quarchPPM.cpython-311.pyc +0 -0
  620. quarchpy/device/__pycache__/quarchPPM.cpython-312.pyc +0 -0
  621. quarchpy/device/__pycache__/quarchPPM.cpython-313.pyc +0 -0
  622. quarchpy/device/__pycache__/quarchQPS.cpython-311.pyc +0 -0
  623. quarchpy/device/__pycache__/quarchQPS.cpython-312.pyc +0 -0
  624. quarchpy/device/__pycache__/quarchQPS.cpython-313.pyc +0 -0
  625. quarchpy/device/__pycache__/scanDevices.cpython-311.pyc +0 -0
  626. quarchpy/device/__pycache__/scanDevices.cpython-312.pyc +0 -0
  627. quarchpy/device/__pycache__/scanDevices.cpython-313.pyc +0 -0
  628. quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-311.pyc +0 -0
  629. quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-312.pyc +0 -0
  630. quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-313.pyc +0 -0
  631. quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-311.pyc +0 -0
  632. quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-312.pyc +0 -0
  633. quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-313.pyc +0 -0
  634. quarchpy/disk_test/__pycache__/__init__.cpython-311.pyc +0 -0
  635. quarchpy/disk_test/__pycache__/__init__.cpython-312.pyc +0 -0
  636. quarchpy/disk_test/__pycache__/__init__.cpython-313.pyc +0 -0
  637. quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-311.pyc +0 -0
  638. quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-312.pyc +0 -0
  639. quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-313.pyc +0 -0
  640. quarchpy/fio/__pycache__/FIO_interface.cpython-311.pyc +0 -0
  641. quarchpy/fio/__pycache__/FIO_interface.cpython-312.pyc +0 -0
  642. quarchpy/fio/__pycache__/FIO_interface.cpython-313.pyc +0 -0
  643. quarchpy/fio/__pycache__/__init__.cpython-311.pyc +0 -0
  644. quarchpy/fio/__pycache__/__init__.cpython-312.pyc +0 -0
  645. quarchpy/fio/__pycache__/__init__.cpython-313.pyc +0 -0
  646. quarchpy/fio/test_performance_class.py +0 -533
  647. quarchpy/iometer/__pycache__/__init__.cpython-311.pyc +0 -0
  648. quarchpy/iometer/__pycache__/__init__.cpython-312.pyc +0 -0
  649. quarchpy/iometer/__pycache__/__init__.cpython-313.pyc +0 -0
  650. quarchpy/iometer/__pycache__/gen_iometer_template.cpython-311.pyc +0 -0
  651. quarchpy/iometer/__pycache__/gen_iometer_template.cpython-313.pyc +0 -0
  652. quarchpy/iometer/__pycache__/iometerFuncs.cpython-311.pyc +0 -0
  653. quarchpy/iometer/__pycache__/iometerFuncs.cpython-312.pyc +0 -0
  654. quarchpy/iometer/__pycache__/iometerFuncs.cpython-313.pyc +0 -0
  655. quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-311.pyc +0 -0
  656. quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-312.pyc +0 -0
  657. quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-313.pyc +0 -0
  658. quarchpy/qis/__pycache__/__init__.cpython-311.pyc +0 -0
  659. quarchpy/qis/__pycache__/__init__.cpython-312.pyc +0 -0
  660. quarchpy/qis/__pycache__/__init__.cpython-313.pyc +0 -0
  661. quarchpy/qis/__pycache__/qisFuncs.cpython-311.pyc +0 -0
  662. quarchpy/qis/__pycache__/qisFuncs.cpython-312.pyc +0 -0
  663. quarchpy/qis/__pycache__/qisFuncs.cpython-313.pyc +0 -0
  664. quarchpy/qps/__pycache__/__init__.cpython-311.pyc +0 -0
  665. quarchpy/qps/__pycache__/__init__.cpython-312.pyc +0 -0
  666. quarchpy/qps/__pycache__/__init__.cpython-313.pyc +0 -0
  667. quarchpy/qps/__pycache__/qpsFuncs.cpython-311.pyc +0 -0
  668. quarchpy/qps/__pycache__/qpsFuncs.cpython-312.pyc +0 -0
  669. quarchpy/qps/__pycache__/qpsFuncs.cpython-313.pyc +0 -0
  670. quarchpy/user_interface/__pycache__/__init__.cpython-311.pyc +0 -0
  671. quarchpy/user_interface/__pycache__/__init__.cpython-312.pyc +0 -0
  672. quarchpy/user_interface/__pycache__/__init__.cpython-313.pyc +0 -0
  673. quarchpy/user_interface/__pycache__/user_interface.cpython-311.pyc +0 -0
  674. quarchpy/user_interface/__pycache__/user_interface.cpython-312.pyc +0 -0
  675. quarchpy/user_interface/__pycache__/user_interface.cpython-313.pyc +0 -0
  676. quarchpy/utilities/__pycache__/TestCenter.cpython-311.pyc +0 -0
  677. quarchpy/utilities/__pycache__/TestCenter.cpython-312.pyc +0 -0
  678. quarchpy/utilities/__pycache__/TestCenter.cpython-313.pyc +0 -0
  679. quarchpy/utilities/__pycache__/TimeValue.cpython-311.pyc +0 -0
  680. quarchpy/utilities/__pycache__/TimeValue.cpython-312.pyc +0 -0
  681. quarchpy/utilities/__pycache__/TimeValue.cpython-313.pyc +0 -0
  682. quarchpy/utilities/__pycache__/Version.cpython-311.pyc +0 -0
  683. quarchpy/utilities/__pycache__/Version.cpython-312.pyc +0 -0
  684. quarchpy/utilities/__pycache__/Version.cpython-313.pyc +0 -0
  685. quarchpy/utilities/__pycache__/__init__.cpython-311.pyc +0 -0
  686. quarchpy/utilities/__pycache__/__init__.cpython-312.pyc +0 -0
  687. quarchpy/utilities/__pycache__/__init__.cpython-313.pyc +0 -0
  688. /quarchpy/connection_specific/QPS/win-amd64/DeviceConfig/{QTL1995-02.xml → QTL1995-02.XML} +0 -0
  689. /quarchpy/connection_specific/QPS/win-amd64/DeviceConfig/{QTL1999-02.xml → QTL1999-02.XML} +0 -0
  690. /quarchpy/connection_specific/QPS/win-amd64/DeviceConfig/{QTL2312-01.xml → QTL2312-01.XML} +0 -0
  691. {quarchpy-2.2.9.dev4.dist-info → quarchpy-2.2.9.dev5.dist-info}/top_level.txt +0 -0
@@ -1,533 +0,0 @@
1
- import unittest
2
- import subprocess
3
- from unittest.mock import Mock
4
- from performanceClass import FioPerformance
5
-
6
- class TestFioClass(unittest.TestCase):
7
-
8
- ####################################################################################################################
9
- # Necessary class variables for tests
10
- ####################################################################################################################
11
-
12
- testFile = "fio_tests_file.fio"
13
- test_dummy_output = "live_fio_output.txt"
14
-
15
- ####################################################################################################################
16
- # Testing no parameters
17
- ####################################################################################################################
18
-
19
- @unittest.mock.patch('subprocess.call')
20
- def test_no_parameters(self, os_system):
21
- # Testing only passing end callback
22
-
23
- x = FioPerformance()
24
- self.assertTrue(x.start_workload())
25
-
26
-
27
- ####################################################################################################################
28
- # Testing Callbacks
29
- ####################################################################################################################
30
-
31
- def test_callbacks_assigned(self):
32
- # Test to check program assigns callbacks
33
-
34
- newClass = Mock()
35
-
36
- callbacks = {"workload_start_callback": newClass.a(),
37
- "workload_end_callback": newClass.b(),
38
- "stream_data_callback": newClass.c()}
39
-
40
- x = FioPerformance()
41
-
42
- self.assertFalse(x.start_workload(output_data={"stream_workload_callbacks": callbacks}))
43
-
44
- def test_none_callback_function(self):
45
- # Test to check the program doesn't fail with bad parameters assigned for callbacks
46
-
47
- callbacks = {"workload_start_callback": "test",
48
- "workload_end_callback": "test",
49
- "stream_data_callback": "test"}
50
-
51
- x = FioPerformance()
52
-
53
- command = " ".join(x.command)
54
-
55
- self.assertEqual(command,"fio")
56
-
57
- self.assertFalse(x.start_workload(output_data={"stream_workload_callbacks": callbacks}))
58
-
59
- ####################################################################################################################
60
- # Testing File parsing
61
- ####################################################################################################################
62
-
63
- def test_workload_file_param_parsing(self):
64
- # Testing
65
- x = FioPerformance()
66
-
67
- f = open(self.testFile, "w")
68
- f.write("[global]\r"
69
- "write_iops_log=test\r"
70
- "write_lat_log=test\r"
71
- "[job1]")
72
- f.close()
73
-
74
- self.assertFalse(x.start_workload(workload_file_path=self.testFile))
75
-
76
- self.assertEqual(x.iops_log_output_file,"test_iops.1.log" )
77
- self.assertEqual(x.lat_log_output_file, "test_lat.1.log")
78
- self.assertEqual(x.clat_log_output_file, "test_clat.1.log")
79
- self.assertEqual(x.slat_log_output_file, "test_slat.1.log")
80
- # Check job1 is in one of the items of job name
81
- self.assertTrue("job1" in x.job_name)
82
-
83
- def test_workload_file_checking_multiple_jobs(self):
84
- # Testing
85
- x = FioPerformance()
86
-
87
- f = open(self.testFile, "w")
88
- f.write("[global]\r"
89
- "write_iops_log=test\r"
90
- "[job1]\r"
91
- "[job2]")
92
- f.close()
93
-
94
- self.assertFalse(x.start_workload(workload_file_path=self.testFile))
95
-
96
- # Check job1 is in one of the items of job name
97
- self.assertTrue("job1" in x.job_name)
98
- self.assertTrue("job2" in x.job_name)
99
-
100
- def test_workload_file_none_existant(self):
101
- # Testing
102
- x = FioPerformance()
103
-
104
- self.assertFalse(x.start_workload(workload_file_path="test_test.txt"))
105
-
106
- # Check job1 is in one of the items of job name
107
- self.assertFalse("test_test.txt" in x.command)
108
-
109
- ####################################################################################################################
110
- # Testing workload arguments
111
- ####################################################################################################################
112
-
113
- @unittest.mock.patch('subprocess.call')
114
- def test_workload_args_assignment(self, os_system):
115
- # Testing
116
- x = FioPerformance()
117
-
118
- workload_dict = { "read_percentage": 1,
119
- "sequential": True,
120
- "workload_file_size": "128kb",
121
- "blocksize": "8k",
122
- "runtime": 10,
123
- "rampup_time": 10,
124
- }
125
-
126
- self.assertTrue(x.start_workload(workload_args_dict=workload_dict))
127
-
128
- execution_string_contents = [ "--size=128kb", "--blocksize=8k", "--runtime=10", "--ramp_time=10",
129
- "--time_based", "--rw=rw", "--rwmixread=1" ]
130
-
131
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
132
-
133
- @unittest.mock.patch('subprocess.call')
134
- def test_workload_args_random_read(self, os_system):
135
- # Testing
136
- x = FioPerformance()
137
-
138
- workload_dict = {"read_percentage": 100,
139
- "sequential": False
140
- }
141
-
142
- self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
143
-
144
- execution_string_contents = ["--rw=randread"]
145
-
146
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
147
-
148
- @unittest.mock.patch('subprocess.call')
149
- def test_workload_args_sequential_read(self, os_system):
150
- # Testing
151
- x = FioPerformance()
152
-
153
- workload_dict = {"read_percentage": 100,
154
- "sequential": True
155
- }
156
-
157
- self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
158
-
159
- execution_string_contents = ["--rw=read"]
160
-
161
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
162
-
163
- @unittest.mock.patch('subprocess.call')
164
- def test_workload_args_random_write(self, os_system):
165
- # Testing
166
- x = FioPerformance()
167
-
168
- workload_dict = {"read_percentage": 0,
169
- "sequential": False
170
- }
171
-
172
- self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
173
-
174
- execution_string_contents = ["--rw=randwrite"]
175
-
176
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
177
-
178
- @unittest.mock.patch('subprocess.call')
179
- def test_workload_args_sequential_write(self, os_system):
180
- # Testing
181
- x = FioPerformance()
182
-
183
- workload_dict = {"read_percentage": 0,
184
- "sequential": True
185
- }
186
-
187
- self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
188
-
189
- execution_string_contents = ["--rw=write"]
190
-
191
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
192
-
193
- @unittest.mock.patch('subprocess.call')
194
- def test_workload_args_sequential_rw(self, os_system):
195
- # Testing
196
- x = FioPerformance()
197
-
198
- workload_dict = {"read_percentage": 1,
199
- "sequential": True
200
- }
201
-
202
- self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
203
-
204
- execution_string_contents = ["--rw=rw"]
205
-
206
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
207
-
208
- @unittest.mock.patch('subprocess.call')
209
- def test_workload_args_random_rw(self, os_system):
210
- # Testing
211
- x = FioPerformance()
212
-
213
- workload_dict = {"read_percentage": 1,
214
- "sequential": False
215
- }
216
-
217
- self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
218
-
219
- execution_string_contents = ["--rw=randrw"]
220
-
221
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
222
-
223
- ####################################################################################################################
224
- # Testing output arguments
225
- ####################################################################################################################
226
-
227
- @unittest.mock.patch('subprocess.call')
228
- def test_output_args_parse_high_res_data(self, os_system):
229
- # Testing
230
- x = FioPerformance()
231
-
232
- output_dict = {"high_res_data":
233
- ["high_res_lat", "high_res_iops"]
234
- }
235
-
236
- self.assertFalse(x.start_workload(output_data=output_dict))
237
-
238
- execution_string_contents = ["--write_iops_log="+x.iops_file_prefix, "--write_lat_log="+x.latency_file_prefix]
239
-
240
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
241
-
242
- @unittest.mock.patch('subprocess.call')
243
- def test_output_args_parse_stream_resolutions(self, os_system):
244
- # Testing
245
- x = FioPerformance()
246
-
247
- output_dict = {"stream_resolution": {"high_res_data_res": 1, "stream_data_res": 1}}
248
-
249
- self.assertFalse(x.start_workload(output_data=output_dict))
250
-
251
- execution_string_contents = ["--log_avg_msec=1",
252
- "--status-interval=1"]
253
-
254
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
255
-
256
- @unittest.mock.patch('subprocess.call')
257
- def test_output_args_parse_stream_resolutions_default_status_interval(self, os_system):
258
- # Testing
259
- x = FioPerformance()
260
-
261
- output_dict = {"stream_resolution": {"stream_data_res": 0}}
262
-
263
- self.assertFalse(x.start_workload(output_data=output_dict))
264
-
265
- execution_string_contents = ["--status-interval=1"]
266
-
267
- self.assertTrue(all(arg in x.command for arg in execution_string_contents))
268
-
269
- ####################################################################################################################
270
- # Testing executing FIO
271
- ####################################################################################################################
272
-
273
- # couldn't get the file to work as required
274
- # f = open(self.testFile, "w")
275
- # f.write("[global]\r"
276
- # "size=64mb\r"
277
- # "rw=read\r"
278
- # "runtime=10\r"
279
- # "directory=D\\:\\\r"
280
- # "[job1]\r")
281
- # f.close()
282
-
283
- @unittest.mock.patch('subprocess.call')
284
- def test_execution_without_FIO_installed(self, sub_process):
285
- # Testing execution - No Output - simple args
286
- x = FioPerformance()
287
-
288
- # Missing FIO from system raises a file not found error
289
- sub_process.side_effect = FileNotFoundError
290
-
291
- workload_args = {"read_percentage": 100,
292
- "sequential": True,
293
- "runtime": 10,
294
- "workload_file_size": "64k"}
295
-
296
- # Assert that the program raised the error and exited with it
297
- with self.assertRaises(Exception):
298
- x.start_workload(workload_args_dict=workload_args)
299
-
300
- @unittest.mock.patch('subprocess.call')
301
- def test_execution(self, os_system):
302
- # Testing execution - No Output - simple args
303
- x = FioPerformance()
304
-
305
- workload_args = {"read_percentage": 100,
306
- "sequential": True,
307
- "runtime": 10,
308
- "workload_file_size": "64k"}
309
-
310
- x.start_workload(workload_args_dict=workload_args)
311
- # os.system was called once - Sufficient arguments passed
312
- self.assertTrue(os_system.called_once)
313
-
314
- @unittest.mock.patch('subprocess.call')
315
- def test_execution_returns_true(self, os_system):
316
- # Testing execution - No Output - simple args
317
- x = FioPerformance()
318
-
319
- workload_args = {"read_percentage": 100,
320
- "sequential": True,
321
- "runtime": 10,
322
- "workload_file_size": "64k"}
323
-
324
- # function returned true
325
- self.assertTrue(x.start_workload(workload_args_dict=workload_args))
326
-
327
-
328
- def test_execution_async_returns_fio_process(self):
329
- # Testing that asynv returns a subprocess
330
- # TEST WILL MAKE A 64KB FILE IN CURRENT WORKING DIRECTORY
331
-
332
- # Testing execution - No Output - simple args
333
- x = FioPerformance()
334
-
335
- workload_args = {"read_percentage": 100,
336
- "sequential": True,
337
- "runtime": 10,
338
- "workload_file_size": "64k"}
339
-
340
- ret_val = x.start_workload(workload_args_dict=workload_args, run_async=True)
341
-
342
- # checking is of type subprocess.Popen
343
- self.assertTrue(isinstance(ret_val, subprocess.Popen))
344
-
345
- ret_val.kill()
346
- ret_val.wait(3)
347
-
348
- @unittest.mock.patch('subprocess.Popen')
349
- def test_execution_async_process_called_once(self, sub_process):
350
- # Testing execution - No Output - simple args
351
- x = FioPerformance()
352
-
353
- workload_args = {"read_percentage": 100,
354
- "sequential": True,
355
- "runtime": 10,
356
- "workload_file_size": "64k"}
357
-
358
- ret_val = x.start_workload(workload_args_dict=workload_args, run_async=True)
359
-
360
- self.assertTrue(sub_process.called_once)
361
-
362
- ret_val.kill()
363
- ret_val.wait(3)
364
-
365
- @unittest.mock.patch('subprocess.Popen')
366
- def test_execution_async_process_called_once(self, sub_process):
367
- # Testing execution - No Output - simple args
368
- x = FioPerformance()
369
-
370
- workload_args = {"read_percentage": 100,
371
- "sequential": True,
372
- "runtime": 10,
373
- "workload_file_size": "64k"}
374
-
375
- ret_val = x.start_workload(workload_args_dict=workload_args, run_async=True)
376
-
377
- self.assertTrue(sub_process.called_once)
378
-
379
- ret_val.kill()
380
- ret_val.wait(3)
381
-
382
- @unittest.mock.patch('subprocess.Popen')
383
- def test_execution_non_sync_process_called_once(self, sub_process):
384
- # Testing execution - No Output - simple args
385
- x = FioPerformance()
386
- new_var = Mock()
387
-
388
- workload_args = {"read_percentage": 100,
389
- "sequential": True,
390
- "runtime": 10,
391
- "workload_file_size": "64k"}
392
-
393
- callbacks = {"workload_start_callback": new_var.b()}
394
- x = FioPerformance()
395
-
396
- # Starting the function with a callback to go into the second tree
397
- ret_val = x.start_workload(workload_args_dict=workload_args,
398
- output_data={"stream_workload_callbacks": callbacks} )
399
-
400
- self.assertTrue(sub_process.called_once)
401
-
402
- ####################################################################################################################
403
- # Testing outputs
404
- ####################################################################################################################
405
-
406
- @unittest.mock.patch('subprocess.call')
407
- def test_results_simple_outputs(self, os_system):
408
- # Testing execution - No Output - simple args
409
- x = FioPerformance()
410
-
411
- workload_args = {"read_percentage": 100,
412
- "sequential": True,
413
- "runtime": 10,
414
- "workload_file_size": "64k"}
415
-
416
- output = {"summary_data": ["read_iops", "write_iops"]}
417
-
418
- ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
419
- # os.system was called once - Sufficient arguments passed
420
- self.assertTrue(os_system.called)
421
- # check the output included a dictionary format
422
- self.assertTrue(isinstance(ret_val, dict))
423
- # check the output contains 2 keys - 'read_iops' and 'write_iops'
424
- self.assertTrue(all(key in output["summary_data"] for key in ret_val.keys()))
425
-
426
- @unittest.mock.patch('subprocess.call')
427
- def test_results_custom_outputs(self, os_system):
428
- # Testing execution - No Output - simple args
429
- x = FioPerformance()
430
-
431
- workload_args = {"read_percentage": 100,
432
- "sequential": True,
433
- "runtime": 10,
434
- "workload_file_size": "64k"}
435
-
436
- output = {"summary_data": ["find:jobs:jobname"]}
437
-
438
- ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
439
- # os.system was called once - Sufficient arguments passed
440
- self.assertTrue(os_system.called)
441
- # check the output included a dictionary format
442
- self.assertTrue(isinstance(ret_val, dict))
443
- # check the output contains correct key output
444
- self.assertTrue("jobs:jobname" in ret_val.keys())
445
-
446
- @unittest.mock.patch('subprocess.call')
447
- def test_results_bad_custom_output(self, os_system):
448
- # Testing execution - No Output - simple args
449
- x = FioPerformance()
450
-
451
- workload_args = {"read_percentage": 100,
452
- "sequential": True,
453
- "runtime": 10,
454
- "workload_file_size": "64k"}
455
-
456
- output = {"summary_data": ["find:jobs:jobname1"]}
457
-
458
- ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
459
- # os.system was called once - Sufficient arguments passed
460
- self.assertTrue(os_system.called)
461
- # check the output included a dictionary format
462
- self.assertTrue(isinstance(ret_val, dict))
463
- # check the output contains correct key output
464
- self.assertEqual(ret_val["jobs:jobname1"], "Not Found")
465
-
466
- @unittest.mock.patch('subprocess.call')
467
- def test_results_bad_custom_search(self, os_system):
468
- # Testing execution - No Output - simple args
469
- x = FioPerformance()
470
-
471
- workload_args = {"read_percentage": 100,
472
- "sequential": True,
473
- "runtime": 10,
474
- "workload_file_size": "64k"}
475
-
476
- output = {"summary_data": ["afind:jobs:jobname"]}
477
-
478
- ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
479
- # os.system was called once - Sufficient arguments passed
480
- self.assertTrue(os_system.called)
481
- # check the output included a dictionary format
482
- self.assertTrue(isinstance(ret_val, dict))
483
- # check the output contains correct key output
484
- self.assertEqual(ret_val["afind:jobs:jobname"], "Invalid Summary Data Value")
485
-
486
- def test_results_callbacks(self):
487
- # Testing execution - No Output - simple args
488
- x = FioPerformance()
489
-
490
- workload_args = {"read_percentage": 100,
491
- "sequential": True,
492
- "runtime": 1,
493
- "workload_file_size": "4k"}
494
-
495
- # Create a new mock
496
- mock_callback = Mock()
497
- # Assign some methods to the mocks
498
- callbacks = {"workload_start_callback": mock_callback.a(),
499
- "workload_end_callback": mock_callback.b(),
500
- "stream_data_callback": mock_callback.c()}
501
-
502
- x.start_workload(workload_args_dict=workload_args, output_file_path=self.test_dummy_output,
503
- output_data={"stream_workload_callbacks": callbacks})
504
-
505
- mock_callback.a.assert_called_once()
506
- mock_callback.b.assert_called_once()
507
- mock_callback.c.assert_called()
508
-
509
-
510
- def test_results_high_res_arrays(self):
511
- # Testing execution - No Output - simple args
512
- x = FioPerformance()
513
-
514
- workload_args = {"read_percentage": 100,
515
- "sequential": True,
516
- "runtime": 10,
517
- "workload_file_size": "64k"}
518
-
519
- output = {"high_res_data": ["high_res_lat"]}
520
-
521
- ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
522
- # check the output included a dictionary format
523
- self.assertTrue(isinstance(ret_val, dict))
524
- key_list = ["time_lat_mS", "lat_log", "time_clat_mS", "clat_log", "time_slat_mS", "slat_log",
525
- "time_iops_mS", "iops_log"]
526
-
527
- self.assertTrue(all(item in key_list for item in ret_val["high_res_data"]))
528
-
529
-
530
-
531
-
532
- if __name__ == "__main__":
533
- unittest.main()