quarchpy 2.1.11.dev8__py3-none-any.whl → 2.2.17.dev2__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 (733) hide show
  1. quarchpy/__init__.py +60 -8
  2. quarchpy/_version.py +1 -1
  3. quarchpy/config_files/Cable_Modules/QTL1253-01 - Mini SAS Module Config v3.5 c1.3.qfg +196 -196
  4. quarchpy/config_files/Cable_Modules/QTL1253-01 - Mini SAS Module Config v4.000 c1.3.qfg +198 -198
  5. quarchpy/config_files/Cable_Modules/QTL1253-02 - Mini SAS Module Config v3.5 c1.3.qfg +196 -196
  6. quarchpy/config_files/Cable_Modules/QTL1253-02 - Mini SAS Module Config v4.000 c1.3.qfg +198 -198
  7. quarchpy/config_files/Cable_Modules/QTL1253-xx - Mini SAS Module Config v4.003 c1.6.qfg +197 -197
  8. quarchpy/config_files/Cable_Modules/QTL1271-xx - Ethernet Module Config v3.5 c1.2.qfg +188 -188
  9. quarchpy/config_files/Cable_Modules/QTL1271-xx - Ethernet Module Config v4.000 c1.2.qfg +190 -190
  10. quarchpy/config_files/Cable_Modules/QTL1271-xx - Ethernet Module Config v4.100 c1.3.qfg +189 -189
  11. quarchpy/config_files/Cable_Modules/QTL1292-xx - SFP+ Cable Pull Module Config v4.000 c1.1.qfg +154 -154
  12. quarchpy/config_files/Cable_Modules/QTL1309-04 - USB 3.0 Module Config v4.003 c1.2.qfg +187 -187
  13. quarchpy/config_files/Cable_Modules/QTL1309-xx - USB 3.0 Module Config v3.5 c1.1.qfg +187 -187
  14. quarchpy/config_files/Cable_Modules/QTL1309-xx - USB 3.0 Module Config v4.000 c1.1.qfg +188 -188
  15. quarchpy/config_files/Cable_Modules/QTL1366-xx - QSFP Cable Pull Module Config v4.000 c1.1.qfg +209 -209
  16. quarchpy/config_files/Cable_Modules/QTL1383-xx - eSATAp Module Config v4.000 c1.3.qfg +190 -190
  17. quarchpy/config_files/Cable_Modules/QTL1521-02 - Mini SAS HD Module Config v4.000 c1.1.qfg +210 -210
  18. quarchpy/config_files/Cable_Modules/QTL1521-03 - Mini SAS HD Module Config v4.000 c1.1.qfg +210 -210
  19. quarchpy/config_files/Cable_Modules/QTL1521-05 - Mini SAS HD Module Config v4.005 c1.1.qfg +209 -209
  20. quarchpy/config_files/Cable_Modules/QTL1521-05 - Mini SAS HD Module Config v4.007 c1.2.qfg +209 -209
  21. quarchpy/config_files/Cable_Modules/QTL1521-xx - Mini SAS HD Module Config v4.003 c1.5.qfg +209 -209
  22. quarchpy/config_files/Cable_Modules/QTL1663-xx - Quad QSFP Cable Pull Module Config v4.000 c1.1.qfg +308 -308
  23. quarchpy/config_files/Cable_Modules/QTL1675-05 - Mini SAS HD Module w Triggering Config v4.007 c1.3.qfg +211 -211
  24. quarchpy/config_files/Cable_Modules/QTL1675-xx - Mini SAS HD Module w Triggering Config v4.000 c1.1.qfg +210 -210
  25. quarchpy/config_files/Cable_Modules/QTL1917-xx - Dual SFP+ Cable Pull Module Config v4.000 c1.1.qfg +174 -174
  26. quarchpy/config_files/Cable_Modules/QTL1971-01 - USB TypeC Module Config v4.000 c1.1.qfg +203 -203
  27. quarchpy/config_files/Cable_Modules/QTL1971-02 - USB TypeC Module Config v4.000 c1.1.qfg +203 -203
  28. quarchpy/config_files/Cable_Modules/QTL2022-xx - RJ-45 Cable Module Config v4.104 c1.3.QFG +189 -189
  29. quarchpy/config_files/Cable_Modules/QTL2058-xx - External PCIe Module Config v4.001 c1.1.qfg +209 -209
  30. quarchpy/config_files/Cable_Modules/QTL2138-01 - SFP28 Cable Pull Module Config v4.000 c1.1.qfg +154 -154
  31. quarchpy/config_files/Cable_Modules/QTL2146-01 - Gen4 OCuLink Cable Module Config v4.001 c1.1.qfg +212 -212
  32. quarchpy/config_files/Cable_Modules/QTL2162-01 - 24G mini SAS HD Cable Break Module Config v4.000 c1.qfg +209 -209
  33. quarchpy/config_files/Cable_Modules/QTL2171-01 - QSFP28 Cable Module Config v4.000 c1.qfg +198 -198
  34. quarchpy/config_files/Cable_Modules/QTL2171-02 - QSFP28 Cable Module Config v4.000 c1.qfg +198 -198
  35. quarchpy/config_files/Cable_Modules/QTL2341-01 - Gen4 External PCIe Cable Module v4.000.qfg +209 -209
  36. quarchpy/config_files/Cable_Modules/QTL2602-xx - Multiprotocol Link Breaker.qfg +178 -178
  37. quarchpy/config_files/Cable_Modules/QTL2834-xx - -48V DC Breaker Module v5.000 c1.0.qfg +177 -177
  38. quarchpy/config_files/Card_Modules/QTL1069-xx - SBB 2.0 Module Config v3.5 c1.1.qfg +366 -366
  39. quarchpy/config_files/Card_Modules/QTL1630-01 - PCIe Card Module v4.000 c1.0.qfg +280 -280
  40. quarchpy/config_files/Card_Modules/QTL1630-02 - PCIe Card Module Config v4.004 c1.2.qfg +283 -283
  41. quarchpy/config_files/Card_Modules/QTL1630-02 - PCIe Card Module Config v4.005 c1.2.qfg +283 -283
  42. quarchpy/config_files/Card_Modules/QTL1630-02 - PCIe Card Module Config v4.100 c1.4.qfg +284 -284
  43. quarchpy/config_files/Card_Modules/QTL1630-04 - PCIe Card Module Config v4.001 c1.1.qfg +287 -287
  44. quarchpy/config_files/Card_Modules/QTL1630-04 - PCIe Card Module Config v4.004 c1.2.qfg +287 -287
  45. quarchpy/config_files/Card_Modules/QTL1688-01 - PCIe Card Module w Triggering Config v4.004 c1.2.qfg +284 -284
  46. quarchpy/config_files/Card_Modules/QTL1688-01 - PCIe Card Module w Triggering Config v4.006 c1.3.qfg +285 -285
  47. quarchpy/config_files/Card_Modules/QTL1688-03 - PCIe Card Module w Triggering Config v4.001 c1.1.qfg +286 -286
  48. quarchpy/config_files/Card_Modules/QTL1688-03 - PCIe Card Module w Triggering Config v4.004 c1.2.qfg +288 -288
  49. quarchpy/config_files/Card_Modules/QTL1688-04 - PCIe Card Module w Triggering Config v4.005 c1.5.qfg +288 -288
  50. quarchpy/config_files/Card_Modules/QTL1688-05 - PCIe Card Module w Triggering Config v4.005 c1.qfg +288 -288
  51. quarchpy/config_files/Card_Modules/QTL1848-01 - PCIe Lite Card Module Config v4.000.qfg +122 -122
  52. quarchpy/config_files/Card_Modules/QTL1848-02 - PCIe Lite Card Module Config v4.000.qfg +134 -134
  53. quarchpy/config_files/Card_Modules/QTL1919-01 - PCIe x8 Card Module Config v4.001 c1.4.qfg +247 -247
  54. quarchpy/config_files/Card_Modules/QTL1920-01 - PCIe x8 Card Module w Triggering Config v4.000 c1.3.qfg +247 -247
  55. quarchpy/config_files/Card_Modules/QTL2019-xx - M.2 Horizontal Card Module Config v4.002 c1.1.qfg +219 -219
  56. quarchpy/config_files/Card_Modules/QTL2034-xx - M.2 M-Key Vertical Module Config v4.001 c1.1.qfg +221 -221
  57. quarchpy/config_files/Card_Modules/QTL2067-xx - PCIe SFF Module Config v4.000 c1.1.qfg +248 -248
  58. quarchpy/config_files/Card_Modules/QTL2067-xx - Sanblaze 2 Drive Riser Card Config v4.006 c1.4.qfg +256 -256
  59. quarchpy/config_files/Card_Modules/QTL2067-xx - Sanblaze 2 Drive Riser Card Config v4.007 c1.4.qfg +256 -256
  60. quarchpy/config_files/Card_Modules/QTL2073-01 - GEN3 PCIe Lite Card Module Config v4.001.qfg +134 -134
  61. quarchpy/config_files/Card_Modules/QTL2073-01 - PCIe Lite Card Module Config v4.000.qfg +134 -134
  62. quarchpy/config_files/Card_Modules/QTL2074-01 - GEN3 PCIe HS Card Module v4.005 c1.4.qfg +287 -287
  63. quarchpy/config_files/Card_Modules/QTL2074-01 - PCIe Card Module Config CurrentLimit v4.004 c1.2.qfg +287 -287
  64. quarchpy/config_files/Card_Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.1.qfg +287 -287
  65. quarchpy/config_files/Card_Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.3.qfg +277 -277
  66. quarchpy/config_files/Card_Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v5.000 c1.4.qfg +277 -277
  67. quarchpy/config_files/Card_Modules/QTL2094-01 - Sanblaze Dualport Riser Card Config v4.001 c1.1.qfg +223 -223
  68. quarchpy/config_files/Card_Modules/QTL2128-xx - PCIe GEN4 Card Module w Triggering Config v4.000 c1.1.qfg +287 -287
  69. quarchpy/config_files/Card_Modules/QTL2128-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.4.qfg +277 -277
  70. quarchpy/config_files/Card_Modules/QTL2135-xx - PCIe GEN4 Card Module w Triggering Config - Inrush Limit v4.001 c1.4.qfg +277 -277
  71. quarchpy/config_files/Card_Modules/QTL2161-01 - EDSFF x8 Module Config v4.000 c1.1.qfg +210 -210
  72. quarchpy/config_files/Card_Modules/QTL2171-xx - EDSFF x8 Module w Triggering Config 4.001 c1.1.qfg +213 -213
  73. quarchpy/config_files/Card_Modules/QTL2203-01 - Sanblaze Dualport Rack Riser Card Config v4.000 c1.1.qfg +218 -218
  74. quarchpy/config_files/Card_Modules/QTL2203-01 - Sanblaze Dualport Rack Riser Card Config v4.005 c1.5.qfg +218 -218
  75. quarchpy/config_files/Card_Modules/QTL2272-01 - GEN4 EDSFF x8 Module Config v4.000 c1.1.qfg +211 -211
  76. quarchpy/config_files/Card_Modules/QTL2282-01 - Sanblaze Singleport Rack Riser Card Config v4.000 c1.1.qfg +212 -212
  77. quarchpy/config_files/Card_Modules/QTL2282-01 - Sanblaze Singleport Rack Riser Card Config v4.002 c1.2.qfg +212 -212
  78. quarchpy/config_files/Card_Modules/QTL2318-01 - SANBlaze U.2 Rack Riser Card Config v4.000 c1.1.qfg +218 -218
  79. quarchpy/config_files/Card_Modules/QTL2322-03 - GEN4 M.2 M-Key Vertical Breaker Module Config v5.001 c1.3.qfg +220 -220
  80. quarchpy/config_files/Card_Modules/QTL2322-xx - GEN4 M.2 M-Key Vertical Breaker Module Config v5.000 c1.1.qfg +208 -208
  81. quarchpy/config_files/Card_Modules/QTL2334-xx - Gen4 EDSFF x4 Card Module Config v4.000 c1.1.qfg +187 -187
  82. quarchpy/config_files/Card_Modules/QTL2351-xx - GEN4 EDSFF x4 Card Module +Triggering Config v4.000 c1.1.qfg +189 -189
  83. quarchpy/config_files/Card_Modules/QTL2351-xx - GEN4 EDSFF x4 Card Module +Triggering Config v4.001 c1.2.qfg +190 -190
  84. quarchpy/config_files/Card_Modules/QTL2357-xx - PCIe GEN5 Card Module Config v5.000 c1.1.qfg +282 -282
  85. quarchpy/config_files/Card_Modules/QTL2358-xx - PCIe GEN5 Card Module w Triggering Config v5.000 c1.1.qfg +283 -283
  86. quarchpy/config_files/Card_Modules/QTL2378-xx - SANBlaze U.3 Rack Riser Card Config v4.000 c1.1.qfg +215 -215
  87. quarchpy/config_files/Card_Modules/QTL2378-xx - SANBlaze U.3 Rack Riser Card Config v4.001 c1.2.qfg +217 -217
  88. 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
  89. 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
  90. 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
  91. quarchpy/config_files/Card_Modules/QTL2396-xx - PCIe GEN5 Card Module w inrush Config v5.000 c1.1.qfg +282 -282
  92. quarchpy/config_files/Card_Modules/QTL2403-xx - Gen4 PCIe Lite Module Config v4.000.qfg +135 -135
  93. quarchpy/config_files/Card_Modules/QTL2515-xx - PCIe GEN4 Card Module w Triggering - Inrush Limit Config v4.001 c1.3.qfg +277 -277
  94. quarchpy/config_files/Card_Modules/QTL2652-xx - Gen5 PCIe Lite Module Config v4.000.qfg +130 -130
  95. quarchpy/config_files/Card_Modules/QTL2652-xx - Gen5 PCIe Lite Module Config v4.003.qfg +137 -137
  96. quarchpy/config_files/Card_Modules/QTL2658-xx - Gen5 PCIe Lite Module w Inrush Config v4.000.qfg +130 -130
  97. quarchpy/config_files/Card_Modules/QTL2661-xx - GEN5 PCIe U.3 Breaker Config w Triggering v5.000 c1.1.qfg +229 -229
  98. quarchpy/config_files/Card_Modules/QTL2662-xx - GEN5 PCIe U.3 Breaker Config v5.000 c1.1.qfg +228 -228
  99. quarchpy/config_files/Card_Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker Config v5.000.qfg +230 -230
  100. quarchpy/config_files/Card_Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker Config v5.001 c1.2.qfg +233 -233
  101. quarchpy/config_files/Card_Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker v5.000 c1.1.qfg +230 -230
  102. quarchpy/config_files/Card_Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker +Triggering Config v5.000.qfg +230 -230
  103. quarchpy/config_files/Card_Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker w Triggering Config v5.001 c1.2.qfg +233 -233
  104. quarchpy/config_files/Card_Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker w Triggering v5.000 c1.1.qfg +230 -230
  105. quarchpy/config_files/Card_Modules/QTL2766-xx - GEN4 EDSFF E1 x8 Breaker Config v5.000.qfg +253 -253
  106. quarchpy/config_files/Card_Modules/QTL2767-xx - GEN4 EDSFF E3 x8 Breaker Config v5.000.qfg +253 -253
  107. quarchpy/config_files/Card_Modules/QTL2768-xx - GEN4 EDSFF E3 2T x8 Breaker Config v5.000.qfg +253 -253
  108. quarchpy/config_files/Card_Modules/QTL2776-xx - GEN4 EDSFF E1 x8 Breaker +Triggering Config v5.000.qfg +253 -253
  109. quarchpy/config_files/Card_Modules/QTL2777-xx - GEN4 EDSFF E3 x8 Breaker +Triggering Config v5.000.qfg +253 -253
  110. quarchpy/config_files/Card_Modules/QTL2778-xx - GEN4 EDSFF E3 2T x8 Breaker +Triggering Config v5.000.qfg +253 -253
  111. quarchpy/config_files/Card_Modules/QTL2798-xx - PCIe GEN5 Card Module w Triggering w Inrush Limit Config v5.000 c1.1.qfg +283 -283
  112. quarchpy/config_files/Card_Modules/QTL2804-xx - GEN5 MCIO x4 to U.2 Breaker Config v5.000 c1.1.qfg +234 -234
  113. quarchpy/config_files/Card_Modules/QTL2805-xx - GEN5 MCIO x4 to U.2 Breaker + Triggering Config v5.000 c1.1.qfg +234 -234
  114. quarchpy/config_files/Card_Modules/QTL2814-xx - GEN5 AIC to U.2 Breaker + Triggering Config v5.000 c1.1 .qfg +233 -233
  115. quarchpy/config_files/Card_Modules/QTL2892-xx - GEN5 EDSFF E1 x4 Breaker.qfg +233 -233
  116. quarchpy/config_files/Card_Modules/QTL2925-xx - GEN5 EDSFF E1 x4 Breaker +Triggering.qfg +233 -233
  117. quarchpy/config_files/Drive_Modules/QTL1177-xx - HS Module Config v3.5 c1.5.qfg +198 -198
  118. quarchpy/config_files/Drive_Modules/QTL1177-xx - HS Module Config v4.000 c1.5.qfg +200 -200
  119. quarchpy/config_files/Drive_Modules/QTL1177-xx - HS Module Config v4.006 c1.8.qfg +199 -199
  120. quarchpy/config_files/Drive_Modules/QTL1215-xx - Lite Module Config v3.50.qfg +118 -118
  121. quarchpy/config_files/Drive_Modules/QTL1215-xx - Lite Module Config v4.000.qfg +118 -118
  122. quarchpy/config_files/Drive_Modules/QTL1301-xx - HS Lite Module Config v3.50.qfg +129 -129
  123. quarchpy/config_files/Drive_Modules/QTL1301-xx - HS Lite Module Config v4.000.qfg +129 -129
  124. quarchpy/config_files/Drive_Modules/QTL1429-01 - EMC HS Lite Module Config v4.000.qfg +129 -129
  125. quarchpy/config_files/Drive_Modules/QTL1429-02 - EMC HS Lite Module Config v4.002.qfg +120 -120
  126. quarchpy/config_files/Drive_Modules/QTL1623-03 - 12G HS Lite Module Config v4.001.qfg +128 -128
  127. quarchpy/config_files/Drive_Modules/QTL1623-04 - 12G HS Lite Module Config v4.001.qfg +128 -128
  128. quarchpy/config_files/Drive_Modules/QTL1680-xx - SCA2 Lite Module Config v4.001.qfg +135 -135
  129. quarchpy/config_files/Drive_Modules/QTL1689-01 - 12G HS Module Config v4.001 c1.1.qfg +199 -199
  130. quarchpy/config_files/Drive_Modules/QTL1689-04 - 12G HS Module Config v4.002 c1.1.qfg +196 -196
  131. quarchpy/config_files/Drive_Modules/QTL1689-05 - 12G HS Module Config v4.002 c1.1.qfg +196 -196
  132. quarchpy/config_files/Drive_Modules/QTL1743-02 - PCIe SFF Module Config v4.003 c1.3.qfg +222 -222
  133. quarchpy/config_files/Drive_Modules/QTL1743-02 - PCIe SFF Module Config v4.006 c1.4.qfg +213 -213
  134. quarchpy/config_files/Drive_Modules/QTL1743-xx - PCIe SFF Module Config v4.000 c1.1.qfg +221 -221
  135. quarchpy/config_files/Drive_Modules/QTL1753-xx - 12G Lite Module Config v4.000.qfg +116 -116
  136. quarchpy/config_files/Drive_Modules/QTL1921-01 - EMC 12G HS Lite Module Config v4.000.qfg +120 -120
  137. quarchpy/config_files/Drive_Modules/QTL2207-01 - GEN 4 PCIe U.2 Drive Module.qfg +217 -217
  138. quarchpy/config_files/Drive_Modules/QTL2207-02 - GEN 4 PCIe U.2 Drive Module v5.000.qfg +220 -220
  139. quarchpy/config_files/Drive_Modules/QTL2207-03 - GEN 4 PCIe SFF HS Drive Module Triggering v5.001.qfg +221 -221
  140. quarchpy/config_files/Drive_Modules/QTL2207-xx - GEN 4 PCIe U.2 Drive Module v4.001.qfg +219 -219
  141. quarchpy/config_files/Drive_Modules/QTL2207-xx - GEN 4 PCIe U.2 Drive Module.qfg +219 -219
  142. quarchpy/config_files/Drive_Modules/QTL2245-01 - GEN 4 PCIe U.3 HS Drive Module v4.000.qfg +223 -223
  143. quarchpy/config_files/Drive_Modules/QTL2245-xx - GEN 4 PCIe U.3 HS Drive Module.qfg +229 -229
  144. quarchpy/config_files/Drive_Modules/QTL2266-01 - GEN 4 PCIe SFF HS Drive Module Triggering.qfg +219 -219
  145. quarchpy/config_files/Drive_Modules/QTL2266-02 - GEN 4 PCIe SFF HS Drive Module Triggering v4.002.qfg +220 -220
  146. quarchpy/config_files/Drive_Modules/QTL2266-03 - GEN 4 PCIe SFF HS Drive Module Triggering v5.001.qfg +221 -221
  147. quarchpy/config_files/Drive_Modules/QTL2266-XX - GEN 4 PCIe SFF HS Drive Module Triggering.qfg +219 -219
  148. quarchpy/config_files/Drive_Modules/QTL2270-01 - GEN 4 PCIe U.3 HS Drive Module Triggering v4.000.qfg +225 -225
  149. quarchpy/config_files/Drive_Modules/QTL2270-xx - GEN 4 PCIe U.3 HS Drive Module Triggering.qfg +230 -230
  150. quarchpy/config_files/Drive_Modules/QTL2542-02 - 24G SAS Drive Breaker Module v5.001.qfg +194 -194
  151. quarchpy/config_files/Drive_Modules/QTL2542-xx - 24G SAS Drive Breaker v5.000 c1.1.qfg +194 -194
  152. quarchpy/config_files/Drive_Modules/QTL2543-xx - 24G SAS Drive Breaker +Triggering v5.000 c1.1.qfg +195 -195
  153. quarchpy/config_files/Drive_Modules/QTL2602-xx - Multiprotocol Link Breaker.qfg +178 -178
  154. quarchpy/config_files/Drive_Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.000.qfg +227 -227
  155. quarchpy/config_files/Drive_Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.001.qfg +227 -227
  156. quarchpy/config_files/Drive_Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.003.qfg +227 -227
  157. quarchpy/config_files/Drive_Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.007.qfg +229 -229
  158. quarchpy/config_files/Drive_Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.000.qfg +228 -228
  159. quarchpy/config_files/Drive_Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.001.qfg +228 -228
  160. quarchpy/config_files/Drive_Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.003.qfg +228 -228
  161. quarchpy/config_files/Drive_Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module v5.007.qfg +230 -230
  162. quarchpy/config_files/Drive_Modules/QTL2661-xx - Gen5 U.3 Drive Module + Triggering v5.000.qfg +229 -229
  163. quarchpy/config_files/Drive_Modules/QTL2662-xx - Gen5 PCIe U.3 Drive Module v5.000.qfg +228 -228
  164. quarchpy/config_files/Drive_Modules/QTL2757-xx - Gen5 SFF Lite Breaker Module Config v4.000.qfg +140 -140
  165. quarchpy/config_files/Drive_Modules/QTL2804-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.003.qfg +253 -253
  166. quarchpy/config_files/Drive_Modules/QTL2804-xx - Gen5 MCIO to U.2 Breaker v5.001.qfg +234 -234
  167. quarchpy/config_files/Drive_Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.001.qfg +234 -234
  168. quarchpy/config_files/Drive_Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.002.qfg +253 -253
  169. quarchpy/config_files/Drive_Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.003.qfg +253 -253
  170. quarchpy/config_files/Drive_Modules/QTL2813-xx - Gen5 AIC to U.2 Breaker v5.001 c1.2.qfg +231 -0
  171. quarchpy/config_files/{Card_Modules/QTL2813-xx - Gen5 AIC to U.2 Breaker v5.002 c1.3.qfg → Drive_Modules/QTL2813-xx - Gen5 AIC to U.2 Breaker with Triggering v5.002 c1.3.qfg } +253 -253
  172. quarchpy/config_files/Drive_Modules/QTL2814-xx - Gen5 AIC to U.2 Breaker with Triggering v5.001 c1.2.qfg +231 -0
  173. quarchpy/config_files/{Card_Modules/QTL2814-xx - Gen5 AIC to U.2 Breaker + Triggering Config v5.002 c1.3.qfg → Drive_Modules/QTL2814-xx - Gen5 AIC to U.2 Breaker with Triggering v5.002 c1.3.qfg } +253 -253
  174. quarchpy/config_files/Drive_Modules/QTL2892-xx - Gen5 EDSFF E1 x4 Breaker v5.001.qfg +233 -233
  175. quarchpy/config_files/Drive_Modules/Standard Drive Module Config v3.5 c1.1.qfg +171 -171
  176. quarchpy/config_files/Power_Margining/HD/QTL1944-xx - HD Power Module v5.000.qfg +123 -123
  177. quarchpy/config_files/Power_Margining/HD/QTL1944-xx - HD Power Module v5.003.qfg +124 -124
  178. quarchpy/config_files/Power_Margining/HD/QTL1995-xx - x6 HD Power Module v5.002.qfg +122 -122
  179. quarchpy/config_files/Power_Margining/HD/QTL1995-xx - x6 HD Power Module v5.003.qfg +123 -123
  180. quarchpy/config_files/Power_Margining/HD/QTL1999-xx - Single HD Power Module v5.002.qfg +122 -122
  181. quarchpy/config_files/Power_Margining/HD/QTL1999-xx - Single HD Power Module v5.003.qfg +123 -123
  182. quarchpy/config_files/Power_Margining/HD/QTL1999-xx - Single HD Power Module v6.000.qfg +124 -124
  183. quarchpy/config_files/Power_Margining/PPM/QTL1455-02 - Power Margining Module v4.101.qfg +78 -78
  184. quarchpy/config_files/Power_Margining/PPM/QTL1455-02 - Power Margining Module v4.200.qfg +80 -80
  185. quarchpy/config_files/Power_Margining/PPM/QTL1455-02 - Power Margining Module v4.201.qfg +82 -82
  186. quarchpy/config_files/Power_Margining/PPM/QTL1455-02 - Test Power Margining Module v4.004.qfg +73 -73
  187. quarchpy/config_files/Power_Margining/PPM/QTL1658-01 - Power Margining Module w. Triggering v4.101.qfg +78 -78
  188. quarchpy/config_files/Power_Margining/PPM/QTL1658-01 - Power Margining Module w. Triggering v4.200.qfg +80 -80
  189. quarchpy/config_files/Power_Margining/PPM/QTL1658-01 - Power Margining Module w. Triggering v4.201.qfg +82 -82
  190. quarchpy/config_files/Power_Margining/PPM/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.105.qfg +78 -78
  191. quarchpy/config_files/Power_Margining/PPM/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.200.qfg +80 -80
  192. quarchpy/config_files/Power_Margining/PPM/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.201.qfg +82 -82
  193. quarchpy/config_files/Power_Margining/PPM/QTL1730-01 - 3v3 Power Margining Module v4.105.qfg +78 -78
  194. quarchpy/config_files/Power_Margining/PPM/QTL1730-01 - 3v3 Power Margining Module v4.200.qfg +80 -80
  195. quarchpy/config_files/Power_Margining/PPM/QTL1730-01 - 3v3 Power Margining Module v4.201.qfg +82 -82
  196. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.000.qfg +80 -80
  197. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.200.qfg +81 -81
  198. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.202.qfg +87 -87
  199. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.210.qfg +88 -88
  200. quarchpy/config_files/Power_Margining/XLC/QTL1824-01 - Power Margining Module V2 - Triggering v4.211.qfg +121 -121
  201. quarchpy/config_files/Power_Margining/XLC/QTL1824-03 - Power Margining Module V2 - Triggering v4.213.qfg +121 -121
  202. quarchpy/config_files/Power_Margining/XLC/QTL1847-01 - Power Margining Module V2 v4.213.qfg +121 -121
  203. quarchpy/config_files/Switch_Modules/QTL1390-xx - 4-8 SATA MUX Module Config v4.002.qfg +186 -186
  204. quarchpy/config_files/Switch_Modules/QTL1443-xx - 1-8 USB3 MUX Module Config v4.002.qfg +147 -147
  205. quarchpy/config_files/Switch_Modules/QTL1443-xx - 1-8 USB3 MUX Module Config v4.003.qfg +147 -147
  206. quarchpy/config_files/Switch_Modules/QTL1443-xx - 1-8 USB3 MUX Module Config v4.100.qfg +147 -147
  207. quarchpy/config_files/Switch_Modules/QTL1449-xx - 1-8 PCIe MUX Module Config v4.000.qfg +145 -145
  208. quarchpy/config_files/Switch_Modules/QTL1490-xx - SATA Keyed HS Module Config v4.003 c1.6.qfg +194 -194
  209. quarchpy/config_files/Switch_Modules/QTL1490-xx - SATA Keyed HS Module Config v4.006 c1.8.qfg +193 -193
  210. quarchpy/config_files/Switch_Modules/QTL1530-xx - 1-8 DP MUX Module Config v4.000.qfg +145 -145
  211. quarchpy/config_files/Switch_Modules/QTL1564-xx - 12 Port Mini SAS HD MUX Module Config v4.000.qfg +184 -184
  212. quarchpy/config_files/Switch_Modules/QTL1584-xx - 1-4 ExpressCard MUX Module Config v4.000.qfg +81 -81
  213. quarchpy/config_files/quarch_config_parser.py +16 -15
  214. quarchpy/connection_specific/QPS/{License/argparse4j-license.txt → 3rdPartyLicenses/argparse4j-LICENSE.txt} +23 -25
  215. quarchpy/connection_specific/QPS/3rdPartyLicenses/com.sun.istack-license.html +59 -0
  216. quarchpy/connection_specific/QPS/{qis/License/LICENSE.txt → 3rdPartyLicenses/commons-io-LICENSE-2.0.txt} +202 -202
  217. quarchpy/connection_specific/QPS/3rdPartyLicenses/controlsfx-license.txt +29 -0
  218. quarchpy/connection_specific/QPS/{License/LICENSE.txt → 3rdPartyLicenses/evalex-LICENSE.txt} +202 -202
  219. quarchpy/connection_specific/QPS/3rdPartyLicenses/gson-license.txt +202 -0
  220. quarchpy/connection_specific/QPS/3rdPartyLicenses/guava-license.txt +202 -0
  221. quarchpy/connection_specific/QPS/3rdPartyLicenses/jakarta.activation-license.html +59 -0
  222. quarchpy/connection_specific/QPS/3rdPartyLicenses/jakarta.xml.bind-api-license.html +59 -0
  223. quarchpy/connection_specific/QPS/3rdPartyLicenses/janino-LICENSE.txt +31 -0
  224. quarchpy/connection_specific/QPS/3rdPartyLicenses/jfx-license.txt +347 -0
  225. quarchpy/connection_specific/QPS/3rdPartyLicenses/log4j-license.txt +202 -0
  226. quarchpy/connection_specific/QPS/3rdPartyLicenses/netty-LICENSE.txt +202 -0
  227. quarchpy/connection_specific/QPS/3rdPartyLicenses/netty-NOTICE.txt +239 -0
  228. quarchpy/connection_specific/QPS/3rdPartyLicenses/nsmenufx-LICENSE.txt +24 -0
  229. quarchpy/connection_specific/QPS/3rdPartyLicenses/slf4j-LICENSE.txt +24 -0
  230. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1253-01 - Mini SAS Module Config v3.5 c1.3.xml +597 -0
  231. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1253-01 - Mini SAS Module Config v4.000 c1.3.xml +597 -0
  232. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1253-02 - Mini SAS Module Config v3.5 c1.3.xml +597 -0
  233. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1253-02 - Mini SAS Module Config v4.000 c1.3.xml +597 -0
  234. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1253-xx - Mini SAS Module Config v4.003 c1.6.xml +599 -0
  235. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1271-xx - Ethernet Module Config v3.5 c1.2.xml +533 -0
  236. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1271-xx - Ethernet Module Config v4.000 c1.2.xml +533 -0
  237. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1271-xx - Ethernet Module Config v4.100 c1.3.xml +535 -0
  238. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1292-xx - SFP+ Cable Pull Module Config v4.000 c1.1.xml +449 -0
  239. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1309-04 - USB 3.0 Module Config v4.003 c1.2.xml +530 -0
  240. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1309-xx - USB 3.0 Module Config v3.5 c1.1.xml +528 -0
  241. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1309-xx - USB 3.0 Module Config v4.000 c1.1.xml +528 -0
  242. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1366-xx - QSFP Cable Pull Module Config v4.000 c1.1.xml +684 -0
  243. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1383-xx - eSATAp Module Config v4.000 c1.3.xml +542 -0
  244. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1521-02 - Mini SAS HD Module Config v4.000 c1.1.xml +670 -0
  245. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1521-03 - Mini SAS HD Module Config v4.000 c1.1.xml +670 -0
  246. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1521-05 - Mini SAS HD Module Config v4.005 c1.1.xml +672 -0
  247. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1521-05 - Mini SAS HD Module Config v4.007 c1.2.xml +672 -0
  248. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1521-xx - Mini SAS HD Module Config v4.003 c1.5.xml +672 -0
  249. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1663-xx - Quad QSFP Cable Pull Module Config v4.000 c1.1.xml +1523 -0
  250. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1675-05 - Mini SAS HD Module w Triggering Config v4.007 c1.3.xml +673 -0
  251. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1675-xx - Mini SAS HD Module w Triggering Config v4.000 c1.1.xml +673 -0
  252. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1917-xx - Dual SFP+ Cable Pull Module Config v4.000 c1.1.xml +614 -0
  253. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1971-01 - USB TypeC Module Config v4.000 c1.1.xml +637 -0
  254. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL1971-02 - USB TypeC Module Config v4.000 c1.1.xml +641 -0
  255. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2022-xx - RJ-45 Cable Module Config v4.104 c1.3.xml +535 -0
  256. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2058-xx - External PCIe Module Config v4.001 c1.1.xml +696 -0
  257. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2138-01 - SFP28 Cable Pull Module Config v4.000 c1.1.xml +449 -0
  258. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2146-01 - Gen4 OCuLink Cable Module Config v4.001 c1.1.xml +718 -0
  259. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2162-01 - 24G mini SAS HD Cable Break Module Config v4.000 c1.xml +672 -0
  260. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2171-01 - QSFP28 Cable Module Config v4.000 c1.xml +583 -0
  261. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2171-02 - QSFP28 Cable Module Config v4.000 c1.xml +583 -0
  262. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2341-01 - Gen4 External PCIe Cable Module v4.000.xml +625 -0
  263. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2602-xx - Multiprotocol Link Breaker.xml +414 -0
  264. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL2834-xx - -48V DC Breaker Module v5.000 c1.0.xml +374 -0
  265. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Cable Modules/QTL3000-xx - RJ-45 Cable Module v5.000 c1.4.xml +539 -0
  266. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1069-xx - SBB 2.0 Module Config v3.5 c1.1.xml +1614 -0
  267. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1630-01 - PCIe Card Module v4.000 c1.0.xml +1271 -0
  268. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1630-02 - PCIe Card Module Config v4.004 c1.2.xml +1289 -0
  269. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1630-02 - PCIe Card Module Config v4.005 c1.2.xml +1289 -0
  270. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1630-02 - PCIe Card Module Config v4.100 c1.4.xml +1290 -0
  271. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1630-04 - PCIe Card Module Config v4.001 c1.1.xml +1297 -0
  272. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1630-04 - PCIe Card Module Config v4.004 c1.2.xml +1301 -0
  273. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1688-01 - PCIe Card Module w Triggering Config v4.004 c1.2.xml +1290 -0
  274. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1688-01 - PCIe Card Module w Triggering Config v4.006 c1.3.xml +1291 -0
  275. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1688-03 - PCIe Card Module w Triggering Config v4.001 c1.1.xml +1298 -0
  276. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1688-03 - PCIe Card Module w Triggering Config v4.004 c1.2.xml +1302 -0
  277. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1688-04 - PCIe Card Module w Triggering Config v4.005 c1.5.xml +1307 -0
  278. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1688-05 - PCIe Card Module w Triggering Config v4.005 c1.xml +1307 -0
  279. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1848-01 - PCIe Lite Card Module Config v4.000.xml +219 -0
  280. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1848-02 - PCIe Lite Card Module Config v4.000.xml +286 -0
  281. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1919-01 - PCIe x8 Card Module Config v4.001 c1.4.xml +965 -0
  282. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL1920-01 - PCIe x8 Card Module w Triggering Config v4.000 c1.3.xml +966 -0
  283. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2019-xx - M.2 Horizontal Card Module Config v4.002 c1.1.xml +703 -0
  284. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2034-xx - M.2 M-Key Vertical Module Config v4.001 c1.1.xml +737 -0
  285. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2067-xx - PCIe SFF Module Config v4.000 c1.1.xml +971 -0
  286. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2067-xx - Sanblaze 2 Drive Riser Card Config v4.006 c1.4.xml +1020 -0
  287. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2067-xx - Sanblaze 2 Drive Riser Card Config v4.007 c1.4.xml +1022 -0
  288. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2073-01 - GEN3 PCIe Lite Card Module Config v4.001.xml +286 -0
  289. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2073-01 - PCIe Lite Card Module Config v4.000.xml +286 -0
  290. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2074-01 - GEN3 PCIe HS Card Module v4.005 c1.4.xml +1301 -0
  291. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2074-01 - PCIe Card Module Config CurrentLimit v4.004 c1.2.xml +1301 -0
  292. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.1.xml +1307 -0
  293. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.3.xml +1212 -0
  294. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2087-xx - PCIe GEN4 Card Module w Triggering Config v5.000 c1.4.xml +1212 -0
  295. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2094-01 - Sanblaze Dualport Riser Card Config v4.001 c1.1.xml +773 -0
  296. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2128-xx - PCIe GEN4 Card Module w Triggering Config v4.000 c1.1.xml +1306 -0
  297. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2128-xx - PCIe GEN4 Card Module w Triggering Config v4.001 c1.4.xml +1211 -0
  298. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2135-xx - PCIe GEN4 Card Module w Triggering Config - Inrush Limit v4.001 c1.4.xml +1211 -0
  299. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2161-01 - EDSFF x8 Module Config v4.000 c1.1.xml +773 -0
  300. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2171-xx - EDSFF x8 Module w Triggering Config 4.001 c1.1.xml +785 -0
  301. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2203-01 - Sanblaze Dualport Rack Riser Card Config v4.000 c1.1.xml +715 -0
  302. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2203-01 - Sanblaze Dualport Rack Riser Card Config v4.005 c1.5.xml +715 -0
  303. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2272-01 - GEN4 EDSFF x8 Module Config v4.000 c1.1.xml +771 -0
  304. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2282-01 - Sanblaze Singleport Rack Riser Card Config v4.000 c1.1.xml +666 -0
  305. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2282-01 - Sanblaze Singleport Rack Riser Card Config v4.002 c1.2.xml +666 -0
  306. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2318-01 - SANBlaze U.2 Rack Riser Card Config v4.000 c1.1.xml +715 -0
  307. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2322-03 - GEN4 M.2 M-Key Vertical Breaker Module Config v5.001 c1.3.xml +738 -0
  308. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2322-xx - GEN4 M.2 M-Key Vertical Breaker Module Config v5.000 c1.1.xml +637 -0
  309. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2334-xx - Gen4 EDSFF x4 Card Module Config v4.000 c1.1.xml +615 -0
  310. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2351-xx - GEN4 EDSFF x4 Card Module +Triggering Config v4.000 c1.1.xml +621 -0
  311. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2351-xx - GEN4 EDSFF x4 Card Module +Triggering Config v4.001 c1.2.xml +624 -0
  312. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2357-xx - PCIe GEN5 Card Module Config v5.000 c1.1.xml +1242 -0
  313. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2358-xx - PCIe GEN5 Card Module w Triggering Config v5.000 c1.1.xml +1250 -0
  314. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2378-xx - SANBlaze U.3 Rack Riser Card Config v4.000 c1.1.xml +682 -0
  315. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2378-xx - SANBlaze U.3 Rack Riser Card Config v4.001 c1.2.xml +698 -0
  316. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2395-01 - GEN4 M.2 M-Key Vertical Breaker Module w Triggering Config v5.000 c1.1.xml +647 -0
  317. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2395-02 - GEN4 M.2 M-Key Vertical Breaker Module w Triggering Config v5.001 c1.3.xml +742 -0
  318. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2395-03 - GEN4 M.2 M-Key Vertical Breaker Module w Triggering Config v5.001 c1.3.xml +742 -0
  319. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2396-xx - PCIe GEN5 Card Module w inrush Config v5.000 c1.1.xml +1242 -0
  320. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2403-xx - Gen4 PCIe Lite Module Config v4.000.xml +293 -0
  321. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2515-xx - PCIe GEN4 Card Module w Triggering - Inrush Limit Config v4.001 c1.3.xml +1212 -0
  322. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2652-xx - Gen5 PCIe Lite Module Config v4.000.xml +259 -0
  323. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2652-xx - Gen5 PCIe Lite Module Config v4.003.xml +288 -0
  324. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2658-xx - Gen5 PCIe Lite Module w Inrush Config v4.000.xml +259 -0
  325. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2661-xx - GEN5 PCIe U.3 Breaker Config w Triggering v5.000 c1.1.xml +813 -0
  326. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2662-xx - GEN5 PCIe U.3 Breaker Config v5.000 c1.1.xml +801 -0
  327. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker Config v5.000.xml +741 -0
  328. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker Config v5.001 c1.2.xml +799 -0
  329. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker Config v5.002 c1.4.xml +743 -0
  330. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2686-xx - Gen5 EDSFF E3 x4 Breaker v5.000 c1.1.xml +741 -0
  331. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker +Triggering Config v5.000.xml +742 -0
  332. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker w Triggering Config v5.001 c1.2.xml +800 -0
  333. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2692-xx - Gen5 EDSFF E3 x4 Breaker w Triggering v5.000 c1.1.xml +742 -0
  334. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2766-xx - GEN4 EDSFF E1 x8 Breaker Config v5.000.xml +982 -0
  335. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2767-xx - GEN4 EDSFF E3 x8 Breaker Config v5.000.xml +982 -0
  336. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2768-xx - GEN4 EDSFF E3 2T x8 Breaker Config v5.000.xml +982 -0
  337. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2776-xx - GEN4 EDSFF E1 x8 Breaker +Triggering Config v5.000.xml +983 -0
  338. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2777-xx - GEN4 EDSFF E3 x8 Breaker +Triggering Config v5.000.xml +983 -0
  339. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2778-xx - GEN4 EDSFF E3 2T x8 Breaker +Triggering Config v5.000.xml +983 -0
  340. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2798-xx - PCIe GEN5 Card Module w Triggering w Inrush Limit Config v5.000 c1.1.xml +1250 -0
  341. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2804-xx - GEN5 MCIO x4 to U.2 Breaker Config v5.000 c1.1.xml +813 -0
  342. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2805-xx - GEN5 MCIO x4 to U.2 Breaker + Triggering Config v5.000 c1.1.xml +814 -0
  343. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2813-xx - Gen5 AIC to U.2 Breaker v5.002 c1.3.xml +871 -0
  344. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2814-xx - GEN5 AIC to U.2 Breaker + Triggering Config v5.000 c1.1 .xml +807 -0
  345. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2814-xx - Gen5 AIC to U.2 Breaker + Triggering Config v5.002 c1.3.xml +872 -0
  346. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2892-xx - GEN5 EDSFF E1 x4 Breaker.xml +799 -0
  347. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2901-xx - GEN5 M.2 M-Key Horizontal Breaker Config v5.000 c1.1.xml +753 -0
  348. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2902-xx - GEN5 M.2 M-Key Horizontal Breaker w Triggering Config v5.000 c1.1.xml +762 -0
  349. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2902-xx- -Gen5 M.2 Horizontal Breaker +Triggering Config 5.000 c1.1.xml +762 -0
  350. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2925-xx - GEN5 EDSFF E1 x4 Breaker +Triggering.xml +800 -0
  351. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Card Modules/QTL2954-01 - fake delete.xml +947 -0
  352. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1177-xx - HS Module Config v3.5 c1.5.xml +592 -0
  353. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1177-xx - HS Module Config v4.000 c1.5.xml +592 -0
  354. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1177-xx - HS Module Config v4.006 c1.8.xml +594 -0
  355. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1215-xx - Lite Module Config v3.50.xml +203 -0
  356. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1215-xx - Lite Module Config v4.000.xml +203 -0
  357. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1301-xx - HS Lite Module Config v3.50.xml +281 -0
  358. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1301-xx - HS Lite Module Config v4.000.xml +281 -0
  359. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1429-01 - EMC HS Lite Module Config v4.000.xml +281 -0
  360. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1429-02 - EMC HS Lite Module Config v4.002.xml +234 -0
  361. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1623-03 - 12G HS Lite Module Config v4.001.xml +266 -0
  362. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1623-04 - 12G HS Lite Module Config v4.001.xml +266 -0
  363. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1680-xx - SCA2 Lite Module Config v4.001.xml +333 -0
  364. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1689-01 - 12G HS Module Config v4.001 c1.1.xml +594 -0
  365. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1689-04 - 12G HS Module Config v4.002 c1.1.xml +580 -0
  366. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1689-05 - 12G HS Module Config v4.002 c1.1.xml +579 -0
  367. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1743-02 - PCIe SFF Module Config v4.003 c1.3.xml +794 -0
  368. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1743-02 - PCIe SFF Module Config v4.006 c1.4.xml +698 -0
  369. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1743-xx - PCIe SFF Module Config v4.000 c1.1.xml +789 -0
  370. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1753-xx - 12G Lite Module Config v4.000.xml +192 -0
  371. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL1921-01 - EMC 12G HS Lite Module Config v4.000.xml +233 -0
  372. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2207-01 - GEN 4 PCIe U.2 Drive Module.xml +733 -0
  373. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2207-02 - GEN 4 PCIe U.2 Drive Module v5.000.xml +753 -0
  374. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2207-03 - GEN 4 PCIe SFF HS Drive Module Triggering v5.001.xml +763 -0
  375. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2207-xx - GEN 4 PCIe U.2 Drive Module v4.001.xml +751 -0
  376. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2207-xx - GEN 4 PCIe U.2 Drive Module.xml +746 -0
  377. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2245-01 - GEN 4 PCIe U.3 HS Drive Module v4.000.xml +789 -0
  378. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2245-xx - GEN 4 PCIe U.3 HS Drive Module.xml +823 -0
  379. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2266-01 - GEN 4 PCIe SFF HS Drive Module Triggering.xml +743 -0
  380. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2266-02 - GEN 4 PCIe SFF HS Drive Module Triggering v4.002.xml +758 -0
  381. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2266-03 - GEN 4 PCIe SFF HS Drive Module Triggering v5.001.xml +764 -0
  382. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2266-XX - GEN 4 PCIe SFF HS Drive Module Triggering.xml +747 -0
  383. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2270-01 - GEN 4 PCIe U.3 HS Drive Module Triggering v4.000.xml +798 -0
  384. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2270-xx - GEN 4 PCIe U.3 HS Drive Module Triggering.xml +835 -0
  385. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2542-02 - 24G SAS Drive Breaker Module v5.001.xml +530 -0
  386. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2542-xx - 24G SAS Drive Breaker v5.000 c1.1.xml +530 -0
  387. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2543-xx - 24G SAS Drive Breaker +Triggering v5.000 c1.1.xml +539 -0
  388. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2543-xx - 24G SAS Drive Breaker +Triggering v5.001 c1.3.xml +539 -0
  389. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2602-xx - Multiprotocol Link Breaker.xml +414 -0
  390. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.000.xml +792 -0
  391. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.001.xml +792 -0
  392. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.003.xml +793 -0
  393. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.007.xml +816 -0
  394. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2645-xx - Gen5 PCIe U.2 Drive Module v5.008.xml +818 -0
  395. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.000.xml +801 -0
  396. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.001.xml +801 -0
  397. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module + Triggering v5.003.xml +802 -0
  398. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2651-xx - Gen5 PCIe U.2 Drive Module v5.007.xml +825 -0
  399. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2661-xx - Gen5 U.3 Drive Module + Triggering v5.000.xml +813 -0
  400. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2662-xx - Gen5 PCIe U.3 Drive Module v5.000.xml +801 -0
  401. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2757-xx - Gen5 SFF Lite Breaker Module Config v4.000.xml +272 -0
  402. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2804-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.003.xml +818 -0
  403. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2804-xx - Gen5 MCIO to U.2 Breaker v5.001.xml +813 -0
  404. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.001.xml +814 -0
  405. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.002.xml +819 -0
  406. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2805-xx - Gen5 MCIO to U.2 Breaker +Triggering v5.003.xml +819 -0
  407. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2892-xx - Gen5 EDSFF E1 x4 Breaker v5.001.xml +799 -0
  408. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2892-xx - Gen5 EDSFF E1 x4 Breaker v5.002.xml +801 -0
  409. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2940-xx - Gen5 EDSFF E3 x8 Breaker v5.000.xml +1105 -0
  410. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/QTL2941-xx - Gen5 EDSFF E3 x8 Breaker +Triggering v5.000.xml +1106 -0
  411. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Drive Modules/Standard Drive Module Config v3.5 c1.1.xml +463 -0
  412. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Switch Modules/QTL1490-xx - SATA Keyed HS Module Config v4.003 c1.6.xml +555 -0
  413. quarchpy/connection_specific/QPS/DeviceConfig/breaker/Switch Modules/QTL1490-xx - SATA Keyed HS Module Config v4.006 c1.8.xml +557 -0
  414. quarchpy/connection_specific/QPS/DeviceConfig/colors/default-colors.properties +64 -0
  415. quarchpy/connection_specific/QPS/DeviceConfig/colors/qtl2789-colors.properties +2 -0
  416. quarchpy/connection_specific/QPS/InstallType.dat +1 -0
  417. quarchpy/connection_specific/QPS/Power-Studio-QuickStart.pdf +0 -0
  418. quarchpy/connection_specific/QPS/QuarchPowerStudio.properties.xml +0 -1
  419. quarchpy/connection_specific/QPS/app.jar +0 -0
  420. quarchpy/connection_specific/QPS/app.properties +7 -0
  421. quarchpy/connection_specific/QPS/commandLineOptions.txt +19 -10
  422. quarchpy/connection_specific/QPS/license.txt +1 -0
  423. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/com.sun.istack-license.html +59 -0
  424. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/dorkbox-LICENSE.Apachev2 +218 -0
  425. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/jSerialComm-LICENSE-APACHE-2.0 +202 -0
  426. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/jSerialComm-LICENSE-LGPL-3.0 +165 -0
  427. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/jakarta.activation-license.html +59 -0
  428. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/jakarta.xml.bind-api-license.html +59 -0
  429. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/javassist-License.html +381 -0
  430. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/jmdns-LICENSE.txt +202 -0
  431. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/jna-AL2.0 +177 -0
  432. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/kotlin-stdlib-LICENSE-2.0.txt +202 -0
  433. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/netty-LICENSE.txt +202 -0
  434. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/netty-NOTICE.txt +239 -0
  435. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/slf4j-LICENSE.txt +24 -0
  436. quarchpy/connection_specific/QPS/qis/3rdPartyLicenses/usb4java-LICENSE.md +20 -0
  437. quarchpy/connection_specific/QPS/qis/Comms.properties.xml +102 -0
  438. quarchpy/connection_specific/QPS/qis/QuarchInstrumentServer.properties.xml +1 -0
  439. quarchpy/connection_specific/QPS/qis/README.txt +5 -5
  440. quarchpy/connection_specific/QPS/qis/help.txt +106 -61
  441. quarchpy/connection_specific/QPS/qis/license.txt +1 -0
  442. quarchpy/connection_specific/QPS/qis/qis-NoGUI.bat +1 -1
  443. quarchpy/connection_specific/QPS/qis/qis-NoGUI.sh +1 -1
  444. quarchpy/connection_specific/QPS/qis/qis.bat +1 -1
  445. quarchpy/connection_specific/QPS/qis/qis.jar +0 -0
  446. quarchpy/connection_specific/QPS/qis/qis.sh +1 -1
  447. quarchpy/connection_specific/QPS/qis/qis_lib/Collections-2.4.jar +0 -0
  448. quarchpy/connection_specific/QPS/qis/qis_lib/Desktop-1.1.jar +0 -0
  449. quarchpy/connection_specific/QPS/qis/qis_lib/EvalEx-3.5.0.jar +0 -0
  450. quarchpy/connection_specific/QPS/qis/qis_lib/Executor-3.13.jar +0 -0
  451. quarchpy/connection_specific/QPS/qis/qis_lib/JNA-1.2.jar +0 -0
  452. quarchpy/connection_specific/QPS/qis/qis_lib/OS-1.8.jar +0 -0
  453. quarchpy/connection_specific/QPS/qis/qis_lib/SystemTray-4.4.jar +0 -0
  454. quarchpy/connection_specific/QPS/qis/qis_lib/Updates-1.1.jar +0 -0
  455. quarchpy/connection_specific/QPS/qis/qis_lib/Utilities-1.46.jar +0 -0
  456. quarchpy/connection_specific/QPS/qis/qis_lib/cinterface-2.5.6.jar +0 -0
  457. quarchpy/connection_specific/QPS/qis/qis_lib/commons-compiler-3.1.12.jar +0 -0
  458. quarchpy/connection_specific/QPS/qis/qis_lib/commons-compiler-jdk-3.1.12.jar +0 -0
  459. quarchpy/connection_specific/QPS/qis/qis_lib/gson-2.13.1.jar +0 -0
  460. quarchpy/connection_specific/QPS/qis/qis_lib/istack-commons-runtime-3.0.11.jar +0 -0
  461. quarchpy/connection_specific/QPS/qis/qis_lib/jakarta.activation-api-2.1.0.jar +0 -0
  462. quarchpy/connection_specific/QPS/qis/qis_lib/jakarta.xml.bind-api-4.0.0.jar +0 -0
  463. quarchpy/connection_specific/QPS/qis/qis_lib/janino-3.1.12.jar +0 -0
  464. quarchpy/connection_specific/QPS/qis/qis_lib/javassist-3.29.2-GA.jar +0 -0
  465. quarchpy/connection_specific/QPS/qis/qis_lib/jaxb-core-4.0.0.jar +0 -0
  466. quarchpy/connection_specific/QPS/qis/qis_lib/jaxb-runtime-4.0.0.jar +0 -0
  467. quarchpy/connection_specific/QPS/qis/qis_lib/jmdns-3.6.0.jar +0 -0
  468. quarchpy/connection_specific/QPS/qis/qis_lib/jna-jpms-5.12.1.jar +0 -0
  469. quarchpy/connection_specific/QPS/qis/qis_lib/jna-platform-jpms-5.12.1.jar +0 -0
  470. quarchpy/connection_specific/QPS/qis/qis_lib/jul-to-slf4j-2.0.17.jar +0 -0
  471. quarchpy/connection_specific/QPS/qis/qis_lib/kotlin-stdlib-1.9.21.jar +0 -0
  472. quarchpy/connection_specific/QPS/qis/qis_lib/log4j-api-2.25.0.jar +0 -0
  473. quarchpy/connection_specific/QPS/qis/qis_lib/log4j-core-2.25.0.jar +0 -0
  474. quarchpy/connection_specific/QPS/qis/qis_lib/log4j-layout-template-json-2.25.0.jar +0 -0
  475. quarchpy/connection_specific/QPS/qis/qis_lib/log4j-slf4j2-impl-2.25.0.jar +0 -0
  476. quarchpy/connection_specific/QPS/qis/qis_lib/netty-buffer-4.2.2.Final.jar +0 -0
  477. quarchpy/connection_specific/QPS/qis/qis_lib/netty-codec-base-4.2.2.Final.jar +0 -0
  478. quarchpy/connection_specific/QPS/qis/qis_lib/netty-codec-http-4.2.2.Final.jar +0 -0
  479. quarchpy/connection_specific/QPS/qis/qis_lib/netty-common-4.2.2.Final.jar +0 -0
  480. quarchpy/connection_specific/QPS/qis/qis_lib/netty-handler-4.2.2.Final.jar +0 -0
  481. quarchpy/connection_specific/QPS/qis/qis_lib/netty-transport-4.2.2.Final.jar +0 -0
  482. quarchpy/connection_specific/QPS/qis/qis_lib/quarchcommon-2.1.9.jar +0 -0
  483. quarchpy/connection_specific/QPS/qis/qis_lib/slf4j-api-2.0.17.jar +0 -0
  484. quarchpy/connection_specific/QPS/qis/qis_lib/torridoncommon-1.2.8.jar +0 -0
  485. quarchpy/connection_specific/QPS/qis/qis_lib/usb4java-1.3.1.jar +0 -0
  486. quarchpy/connection_specific/QPS/qis/resources/filters/Example.txt +36 -0
  487. quarchpy/connection_specific/QPS/qis/resources/filters/iec_filters.xml +17 -0
  488. quarchpy/connection_specific/QPS/qis/resources/org/usb4java/darwin-x86-64/libusb4java.dylib +0 -0
  489. quarchpy/connection_specific/QPS/qis/resources/org/usb4java/linux-aarch64/libusb4java.so +0 -0
  490. quarchpy/connection_specific/QPS/qis/resources/org/usb4java/linux-arm/libusb4java.so +0 -0
  491. quarchpy/connection_specific/QPS/qis/resources/org/usb4java/linux-x86/libusb4java.so +0 -0
  492. quarchpy/connection_specific/QPS/qis/resources/org/usb4java/linux-x86-64/libusb4java.so +0 -0
  493. quarchpy/connection_specific/QPS/qis/resources/org/usb4java/win32-x86/libusb4java.dll +0 -0
  494. quarchpy/connection_specific/QPS/qis/resources/org/usb4java/win32-x86-64/libusb4java.dll +0 -0
  495. quarchpy/connection_specific/QPS/qps-command-reference.html +339 -0
  496. quarchpy/connection_specific/QPS/qps.jar +0 -0
  497. quarchpy/connection_specific/QPS/qps_lib/EvalEx-3.5.0.jar +0 -0
  498. quarchpy/connection_specific/QPS/qps_lib/commons-compiler-3.1.12.jar +0 -0
  499. quarchpy/connection_specific/QPS/qps_lib/commons-compiler-jdk-3.1.12.jar +0 -0
  500. quarchpy/connection_specific/QPS/qps_lib/commons-io-2.19.0.jar +0 -0
  501. quarchpy/connection_specific/QPS/qps_lib/controlsfx-11.2.2.jar +0 -0
  502. quarchpy/connection_specific/QPS/qps_lib/gson-2.13.1.jar +0 -0
  503. quarchpy/connection_specific/QPS/qps_lib/guava-33.4.8-jre.jar +0 -0
  504. quarchpy/connection_specific/QPS/qps_lib/istack-commons-runtime-3.0.11.jar +0 -0
  505. quarchpy/connection_specific/QPS/qps_lib/jakarta.activation-api-2.1.0.jar +0 -0
  506. quarchpy/connection_specific/QPS/qps_lib/jakarta.xml.bind-api-4.0.0.jar +0 -0
  507. quarchpy/connection_specific/QPS/qps_lib/janino-3.1.12.jar +0 -0
  508. quarchpy/connection_specific/QPS/qps_lib/jaxb-core-4.0.0.jar +0 -0
  509. quarchpy/connection_specific/QPS/qps_lib/jaxb-runtime-4.0.0.jar +0 -0
  510. quarchpy/connection_specific/QPS/qps_lib/jfa-1.2.0.jar +0 -0
  511. quarchpy/connection_specific/QPS/qps_lib/jfxutilities-1.0.5.jar +0 -0
  512. quarchpy/connection_specific/QPS/qps_lib/jna-5.17.0.jar +0 -0
  513. quarchpy/connection_specific/QPS/qps_lib/jul-to-slf4j-2.0.17.jar +0 -0
  514. quarchpy/connection_specific/QPS/qps_lib/log4j-api-2.25.0.jar +0 -0
  515. quarchpy/connection_specific/QPS/qps_lib/log4j-core-2.25.0.jar +0 -0
  516. quarchpy/connection_specific/QPS/qps_lib/log4j-layout-template-json-2.25.0.jar +0 -0
  517. quarchpy/connection_specific/QPS/qps_lib/log4j-slf4j2-impl-2.25.0.jar +0 -0
  518. quarchpy/connection_specific/QPS/qps_lib/netty-buffer-4.2.2.Final.jar +0 -0
  519. quarchpy/connection_specific/QPS/qps_lib/netty-codec-base-4.2.2.Final.jar +0 -0
  520. quarchpy/connection_specific/QPS/qps_lib/netty-codec-http-4.2.2.Final.jar +0 -0
  521. quarchpy/connection_specific/QPS/qps_lib/netty-common-4.2.2.Final.jar +0 -0
  522. quarchpy/connection_specific/QPS/qps_lib/netty-handler-4.2.2.Final.jar +0 -0
  523. quarchpy/connection_specific/QPS/qps_lib/netty-transport-4.2.2.Final.jar +0 -0
  524. quarchpy/connection_specific/QPS/qps_lib/nsmenufx-3.1.0.jar +0 -0
  525. quarchpy/connection_specific/QPS/qps_lib/quarchcommon-2.1.9.jar +0 -0
  526. quarchpy/connection_specific/QPS/qps_lib/qutils-1.0.2.jar +0 -0
  527. quarchpy/connection_specific/QPS/qps_lib/slf4j-api-2.0.17.jar +0 -0
  528. quarchpy/connection_specific/QPS/qps_lib/txw2-4.0.0.jar +0 -0
  529. quarchpy/connection_specific/QPS/resources/InstallBanner.bmp +0 -0
  530. quarchpy/connection_specific/QPS/resources/QPS.icns +0 -0
  531. quarchpy/connection_specific/QPS/resources/QPS.ico +0 -0
  532. quarchpy/connection_specific/QPS/resources/QPS.png +0 -0
  533. quarchpy/connection_specific/QPS/resources/QuarchIcon_128x128.png +0 -0
  534. quarchpy/connection_specific/QPS/resources/QuarchIcon_16x16.png +0 -0
  535. quarchpy/connection_specific/QPS/resources/QuarchIcon_256x256.png +0 -0
  536. quarchpy/connection_specific/QPS/resources/QuarchIcon_32x32.png +0 -0
  537. quarchpy/connection_specific/QPS/resources/QuarchIcon_64x64.png +0 -0
  538. quarchpy/connection_specific/QPS/resources/profiles/3_PHASE_PAM_AC_DEFAULT.rcf +533 -0
  539. quarchpy/connection_specific/QPS/resources/profiles/3_PHASE_PAM_AC_DEFAULT.scf +90 -0
  540. quarchpy/connection_specific/QPS/resources/profiles/3_PHASE_PAM_AC_FULL.rcf +830 -0
  541. quarchpy/connection_specific/QPS/resources/profiles/3_PHASE_PAM_AC_FULL.scf +144 -0
  542. quarchpy/connection_specific/QPS/resources/profiles/PAM_EXAMPLE_CONFIG.rcf +193 -0
  543. quarchpy/connection_specific/QPS/scriptCommands.txt +161 -22
  544. quarchpy/connection_specific/QPS/whats-new.txt +27 -0
  545. quarchpy/connection_specific/connection_QIS.py +1513 -1777
  546. quarchpy/connection_specific/connection_QPS.py +96 -11
  547. quarchpy/connection_specific/connection_ReST.py +29 -16
  548. quarchpy/connection_specific/connection_TCP.py +1 -1
  549. quarchpy/connection_specific/connection_Telnet.py +8 -2
  550. quarchpy/connection_specific/connection_USB.py +12 -13
  551. quarchpy/connection_specific/jdk_jres/__init__.py +0 -0
  552. quarchpy/connection_specific/jdk_jres/fix_permissions.py +60 -0
  553. quarchpy/connection_specific/mDNS.py +139 -0
  554. quarchpy/connection_specific/serial/rfc2217.py +2 -2
  555. quarchpy/connection_specific/serial/tools/list_ports_common.py +1 -4
  556. quarchpy/connection_specific/serial/tools/list_ports_linux.py +0 -6
  557. quarchpy/connection_specific/serial/tools/list_ports_osx.py +1 -6
  558. quarchpy/connection_specific/serial/tools/list_ports_posix.py +0 -5
  559. quarchpy/connection_specific/serial/tools/list_ports_windows.py +0 -6
  560. quarchpy/connection_specific/serial/urlhandler/protocol_alt.py +0 -4
  561. quarchpy/connection_specific/serial/urlhandler/protocol_hwgrep.py +0 -5
  562. quarchpy/connection_specific/serial/urlhandler/protocol_loop.py +1 -1
  563. quarchpy/connection_specific/serial/urlhandler/protocol_socket.py +1 -1
  564. quarchpy/connection_specific/serial/urlhandler/protocol_spy.py +0 -5
  565. quarchpy/connection_specific/usb_libs/usb1.py +4 -4
  566. quarchpy/debug/SystemTest.py +152 -41
  567. quarchpy/debug/module_debug.py +30 -29
  568. quarchpy/debug/simple_terminal.py +37 -28
  569. quarchpy/debug/upgrade_quarchpy.py +10 -14
  570. quarchpy/debug/versionCompare.py +2 -3
  571. quarchpy/device/__init__.py +10 -4
  572. quarchpy/device/device.py +1279 -402
  573. quarchpy/device/device_fixture_idn_info.py +8 -0
  574. quarchpy/device/device_idn_info.py +100 -0
  575. quarchpy/device/device_network_info.py +18 -0
  576. quarchpy/device/discovered_device.py +150 -0
  577. quarchpy/device/packet_processing.py +88 -0
  578. quarchpy/device/quarchArray.py +10 -6
  579. quarchpy/device/quarchPPM.py +395 -40
  580. quarchpy/device/quarchQPS.py +771 -294
  581. quarchpy/device/scanDevices.py +329 -230
  582. quarchpy/docs/CHANGES.rst +478 -328
  583. quarchpy/docs/_build/doctrees/CHANGES.doctree +0 -0
  584. quarchpy/docs/_build/doctrees/environment.pickle +0 -0
  585. quarchpy/docs/_build/doctrees/index.doctree +0 -0
  586. quarchpy/docs/_build/doctrees/readme.doctree +0 -0
  587. quarchpy/docs/_build/doctrees/source/changelog.doctree +0 -0
  588. quarchpy/docs/_build/doctrees/source/licenses.doctree +0 -0
  589. quarchpy/docs/_build/doctrees/source/modules.doctree +0 -0
  590. quarchpy/docs/_build/doctrees/source/quarchpy.calibration.doctree +0 -0
  591. quarchpy/docs/_build/doctrees/source/quarchpy.config_files.doctree +0 -0
  592. quarchpy/docs/_build/doctrees/source/quarchpy.connection_specific.doctree +0 -0
  593. quarchpy/docs/_build/doctrees/source/quarchpy.debug.doctree +0 -0
  594. quarchpy/docs/_build/doctrees/source/quarchpy.device.doctree +0 -0
  595. quarchpy/docs/_build/doctrees/source/quarchpy.disk_test.doctree +0 -0
  596. quarchpy/docs/_build/doctrees/source/quarchpy.doctree +0 -0
  597. quarchpy/docs/_build/doctrees/source/quarchpy.fio.doctree +0 -0
  598. quarchpy/docs/_build/doctrees/source/quarchpy.iometer.doctree +0 -0
  599. quarchpy/docs/_build/doctrees/source/quarchpy.qis.doctree +0 -0
  600. quarchpy/docs/_build/doctrees/source/quarchpy.qps.doctree +0 -0
  601. quarchpy/docs/_build/doctrees/source/quarchpy.user_interface.doctree +0 -0
  602. quarchpy/docs/_build/doctrees/source/quarchpy.utilities.doctree +0 -0
  603. quarchpy/docs/_build/doctrees/source/readme.doctree +0 -0
  604. quarchpy/docs/_build/html/.buildinfo +4 -4
  605. quarchpy/docs/_build/html/CHANGES.html +717 -484
  606. quarchpy/docs/_build/html/_sources/CHANGES.rst.txt +478 -314
  607. quarchpy/docs/_build/html/_sources/index.rst.txt +23 -23
  608. quarchpy/docs/_build/html/_sources/readme.rst.txt +41 -41
  609. quarchpy/docs/_build/html/_sources/source/modules.rst.txt +7 -7
  610. quarchpy/docs/_build/html/_sources/source/quarchpy.calibration.rst.txt +78 -78
  611. quarchpy/docs/_build/html/_sources/source/quarchpy.config_files.rst.txt +22 -22
  612. quarchpy/docs/_build/html/_sources/source/quarchpy.connection_specific.rst.txt +76 -76
  613. quarchpy/docs/_build/html/_sources/source/quarchpy.debug.rst.txt +38 -38
  614. quarchpy/docs/_build/html/_sources/source/quarchpy.device.rst.txt +54 -54
  615. quarchpy/docs/_build/html/_sources/source/quarchpy.disk_test.rst.txt +126 -126
  616. quarchpy/docs/_build/html/_sources/source/quarchpy.fio.rst.txt +30 -30
  617. quarchpy/docs/_build/html/_sources/source/quarchpy.iometer.rst.txt +22 -22
  618. quarchpy/docs/_build/html/_sources/source/quarchpy.qis.rst.txt +22 -22
  619. quarchpy/docs/_build/html/_sources/source/quarchpy.qps.rst.txt +22 -22
  620. quarchpy/docs/_build/html/_sources/source/quarchpy.rst.txt +50 -50
  621. quarchpy/docs/_build/html/_sources/source/quarchpy.user_interface.rst.txt +22 -22
  622. quarchpy/docs/_build/html/_sources/source/quarchpy.utilities.rst.txt +22 -22
  623. quarchpy/docs/_build/html/_static/alabaster.css +662 -700
  624. quarchpy/docs/_build/html/_static/basic.css +905 -904
  625. quarchpy/docs/_build/html/_static/doctools.js +106 -280
  626. quarchpy/docs/_build/html/_static/documentation_options.js +12 -11
  627. quarchpy/docs/_build/html/_static/language_data.js +192 -297
  628. quarchpy/docs/_build/html/_static/pygments.css +84 -82
  629. quarchpy/docs/_build/html/_static/searchtools.js +510 -404
  630. quarchpy/docs/_build/html/_static/sphinx_highlight.js +154 -0
  631. quarchpy/docs/_build/html/genindex.html +1876 -1430
  632. quarchpy/docs/_build/html/index.html +223 -188
  633. quarchpy/docs/_build/html/objects.inv +0 -0
  634. quarchpy/docs/_build/html/py-modindex.html +300 -306
  635. quarchpy/docs/_build/html/readme.html +137 -137
  636. quarchpy/docs/_build/html/search.html +123 -125
  637. quarchpy/docs/_build/html/searchindex.js +1 -1
  638. quarchpy/docs/_build/html/source/changelog.html +805 -537
  639. quarchpy/docs/_build/html/source/licenses.html +181 -181
  640. quarchpy/docs/_build/html/source/modules.html +222 -214
  641. quarchpy/docs/_build/html/source/quarchpy.calibration.html +147 -147
  642. quarchpy/docs/_build/html/source/quarchpy.config_files.html +136 -136
  643. quarchpy/docs/_build/html/source/quarchpy.connection_specific.html +1072 -615
  644. quarchpy/docs/_build/html/source/quarchpy.debug.html +241 -247
  645. quarchpy/docs/_build/html/source/quarchpy.device.html +4087 -1024
  646. quarchpy/docs/_build/html/source/quarchpy.disk_test.html +220 -220
  647. quarchpy/docs/_build/html/source/quarchpy.fio.html +218 -164
  648. quarchpy/docs/_build/html/source/quarchpy.html +823 -250
  649. quarchpy/docs/_build/html/source/quarchpy.iometer.html +271 -184
  650. quarchpy/docs/_build/html/source/quarchpy.qis.html +985 -249
  651. quarchpy/docs/_build/html/source/quarchpy.qps.html +186 -213
  652. quarchpy/docs/_build/html/source/quarchpy.user_interface.html +278 -319
  653. quarchpy/docs/_build/html/source/quarchpy.utilities.html +228 -211
  654. quarchpy/docs/_build/html/source/readme.html +147 -147
  655. quarchpy/docs/conf.py +56 -56
  656. quarchpy/docs/index.rst +23 -23
  657. quarchpy/docs/make.bat +35 -35
  658. quarchpy/docs/readme.rst +41 -41
  659. quarchpy/docs/source/modules.rst +7 -7
  660. quarchpy/docs/source/quarchpy.calibration.rst +78 -78
  661. quarchpy/docs/source/quarchpy.config_files.rst +22 -22
  662. quarchpy/docs/source/quarchpy.connection_specific.rst +76 -76
  663. quarchpy/docs/source/quarchpy.debug.rst +38 -38
  664. quarchpy/docs/source/quarchpy.device.rst +54 -54
  665. quarchpy/docs/source/quarchpy.disk_test.rst +126 -126
  666. quarchpy/docs/source/quarchpy.fio.rst +30 -30
  667. quarchpy/docs/source/quarchpy.iometer.rst +22 -22
  668. quarchpy/docs/source/quarchpy.qis.rst +22 -22
  669. quarchpy/docs/source/quarchpy.qps.rst +22 -22
  670. quarchpy/docs/source/quarchpy.rst +50 -50
  671. quarchpy/docs/source/quarchpy.user_interface.rst +22 -22
  672. quarchpy/docs/source/quarchpy.utilities.rst +22 -22
  673. quarchpy/fio/FIO_interface.py +258 -9
  674. quarchpy/fio/{test_performance_class.py → HIDEtest_performance_class.py} +533 -533
  675. quarchpy/fio/fioDiskFinder.py +1 -1
  676. quarchpy/fio/performanceClass.py +5 -4
  677. quarchpy/install_qps.py +369 -0
  678. quarchpy/qis/StreamHeaderInfo.py +5 -4
  679. quarchpy/qis/qisFuncs.py +235 -96
  680. quarchpy/qps/__init__.py +2 -2
  681. quarchpy/qps/qpsFuncs.py +237 -137
  682. quarchpy/run.py +103 -56
  683. quarchpy/user_interface/user_interface.py +201 -158
  684. quarchpy/utilities/TestCenter.py +64 -45
  685. quarchpy/utilities/TimeValue.py +4 -3
  686. quarchpy/utilities/Version.py +50 -0
  687. {quarchpy-2.1.11.dev8.dist-info → quarchpy-2.2.17.dev2.dist-info}/METADATA +171 -7
  688. quarchpy-2.2.17.dev2.dist-info/RECORD +763 -0
  689. {quarchpy-2.1.11.dev8.dist-info → quarchpy-2.2.17.dev2.dist-info}/WHEEL +1 -1
  690. quarchpy/connection_specific/QPS/License/LGPL.txt +0 -167
  691. quarchpy/connection_specific/QPS/License/Material-Icons.txt +0 -1
  692. quarchpy/connection_specific/QPS/License/NOTICE.txt +0 -143
  693. quarchpy/connection_specific/QPS/License/Netty-license.txt +0 -143
  694. quarchpy/connection_specific/QPS/License/controlsfx-license.txt +0 -26
  695. quarchpy/connection_specific/QPS/License/usb4java-license.txt +0 -167
  696. quarchpy/connection_specific/QPS/qis/License/LGPL.txt +0 -167
  697. quarchpy/connection_specific/QPS/qis/License/NOTICE.txt +0 -143
  698. quarchpy/connection_specific/QPS/qis/qis_lib/CInterface-1.5.01.jar +0 -0
  699. quarchpy/connection_specific/QPS/qis/qis_lib/CInterface-1.5.jar +0 -0
  700. quarchpy/connection_specific/QPS/qis/qis_lib/QuarchCommon-0.2.3.jar +0 -0
  701. quarchpy/connection_specific/QPS/qis/qis_lib/QuarchCommon-0.2.4.jar +0 -0
  702. quarchpy/connection_specific/QPS/qis/qis_lib/commons-lang3-3.2.1.jar +0 -0
  703. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.3.0-darwin-x86-64.jar +0 -0
  704. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.3.0-linux-aarch64.jar +0 -0
  705. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.3.0-linux-arm.jar +0 -0
  706. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.3.0-linux-x86-64.jar +0 -0
  707. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.3.0-linux-x86.jar +0 -0
  708. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.3.0-win32-x86-64.jar +0 -0
  709. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.3.0-win32-x86.jar +0 -0
  710. quarchpy/connection_specific/QPS/qis/qis_lib/netty-all-4.1.43.Final.jar +0 -0
  711. quarchpy/connection_specific/QPS/qis/qis_lib/usb4java-1.3.0.jar +0 -0
  712. quarchpy/connection_specific/QPS/qps.bat +0 -2
  713. quarchpy/connection_specific/QPS/qps.sh +0 -2
  714. quarchpy/connection_specific/QPS/qps_lib/QuarchCommon-0.2.2.jar +0 -0
  715. quarchpy/connection_specific/QPS/qps_lib/QuarchCommon-0.2.3.jar +0 -0
  716. quarchpy/connection_specific/QPS/qps_lib/controlsfx-8.40.13.jar +0 -0
  717. quarchpy/connection_specific/QPS/qps_lib/controlsfx-8.40.14.jar +0 -0
  718. quarchpy/connection_specific/QPS/qps_lib/controlsfx-samples-8.40.13.jar +0 -0
  719. quarchpy/connection_specific/QPS/qps_lib/fxsampler-1.0.10.jar +0 -0
  720. quarchpy/connection_specific/QPS/qps_lib/jfxtras-labs-8.0-r6-SNAPSHOT.jar +0 -0
  721. quarchpy/connection_specific/QPS/qps_lib/jfxtras-labs-8.0-r6.jar +0 -0
  722. quarchpy/connection_specific/QPS/qps_lib/netty-all-4.0.37.Final.jar +0 -0
  723. quarchpy/connection_specific/QPS/qps_lib/netty-all-4.1.22.Final.jar +0 -0
  724. quarchpy/connection_specific/QPS/qps_lib/netty-all-4.1.22.Final_2.jar +0 -0
  725. quarchpy/connection_specific/QPS/qps_lib/netty-all-4.1.43.Final.jar +0 -0
  726. quarchpy/connection_specific/QPS/qps_lib/org.eclipse.fx.ide.css.jfx8_1.2.0.201501301049.jar +0 -0
  727. quarchpy/connection_specific/QPS/qps_lib/org.eclipse.fx.ide.css.jfx8_2.4.0.201605112122.jar +0 -0
  728. quarchpy-2.1.11.dev8.dist-info/RECORD +0 -473
  729. /quarchpy/connection_specific/QPS/{License → 3rdPartyLicenses}/Material-Icons-license.txt +0 -0
  730. /quarchpy/connection_specific/QPS/DeviceConfig/{QTL1995-02.XML → QTL1995-02.xml} +0 -0
  731. /quarchpy/connection_specific/QPS/DeviceConfig/{QTL1999-02.XML → QTL1999-02.xml} +0 -0
  732. /quarchpy/connection_specific/QPS/DeviceConfig/{QTL2312-01.XML → QTL2312-01.xml} +0 -0
  733. {quarchpy-2.1.11.dev8.dist-info → quarchpy-2.2.17.dev2.dist-info}/top_level.txt +0 -0
@@ -1,25 +1,20 @@
1
1
  /*
2
- * searchtools.js
3
- * ~~~~~~~~~~~~~~~~
4
- *
5
2
  * Sphinx JavaScript utilities for the full-text search.
6
- *
7
- * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
8
- * :license: BSD, see LICENSE for details.
9
- *
10
3
  */
4
+ "use strict";
11
5
 
12
- if (!Scorer) {
13
- /**
14
- * Simple result scoring code.
15
- */
6
+ /**
7
+ * Simple result scoring code.
8
+ */
9
+ if (typeof Scorer === "undefined") {
16
10
  var Scorer = {
17
11
  // Implement the following function to further tweak the score for each result
18
- // The function takes a result array [filename, title, anchor, descr, score]
12
+ // The function takes a result array [docname, title, anchor, descr, score, filename]
19
13
  // and returns the new score.
20
14
  /*
21
- score: function(result) {
22
- return result[4];
15
+ score: result => {
16
+ const [docname, title, anchor, descr, score, filename, kind] = result
17
+ return score
23
18
  },
24
19
  */
25
20
 
@@ -28,9 +23,11 @@ if (!Scorer) {
28
23
  // or matches in the last dotted part of the object name
29
24
  objPartialMatch: 6,
30
25
  // Additive scores depending on the priority of the object
31
- objPrio: {0: 15, // used to be importantResults
32
- 1: 5, // used to be objectResults
33
- 2: -5}, // used to be unimportantResults
26
+ objPrio: {
27
+ 0: 15, // used to be importantResults
28
+ 1: 5, // used to be objectResults
29
+ 2: -5, // used to be unimportantResults
30
+ },
34
31
  // Used when the priority is not in the mapping.
35
32
  objPrioDefault: 0,
36
33
 
@@ -39,456 +36,571 @@ if (!Scorer) {
39
36
  partialTitle: 7,
40
37
  // query found in terms
41
38
  term: 5,
42
- partialTerm: 2
39
+ partialTerm: 2,
43
40
  };
44
41
  }
45
42
 
46
- if (!splitQuery) {
47
- function splitQuery(query) {
48
- return query.split(/\s+/);
43
+ // Global search result kind enum, used by themes to style search results.
44
+ class SearchResultKind {
45
+ static get index() { return "index"; }
46
+ static get object() { return "object"; }
47
+ static get text() { return "text"; }
48
+ static get title() { return "title"; }
49
+ }
50
+
51
+ const _removeChildren = (element) => {
52
+ while (element && element.lastChild) element.removeChild(element.lastChild);
53
+ };
54
+
55
+ /**
56
+ * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
57
+ */
58
+ const _escapeRegExp = (string) =>
59
+ string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
60
+
61
+ const _displayItem = (item, searchTerms, highlightTerms) => {
62
+ const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
63
+ const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
64
+ const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
65
+ const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
66
+ const contentRoot = document.documentElement.dataset.content_root;
67
+
68
+ const [docName, title, anchor, descr, score, _filename, kind] = item;
69
+
70
+ let listItem = document.createElement("li");
71
+ // Add a class representing the item's type:
72
+ // can be used by a theme's CSS selector for styling
73
+ // See SearchResultKind for the class names.
74
+ listItem.classList.add(`kind-${kind}`);
75
+ let requestUrl;
76
+ let linkUrl;
77
+ if (docBuilder === "dirhtml") {
78
+ // dirhtml builder
79
+ let dirname = docName + "/";
80
+ if (dirname.match(/\/index\/$/))
81
+ dirname = dirname.substring(0, dirname.length - 6);
82
+ else if (dirname === "index/") dirname = "";
83
+ requestUrl = contentRoot + dirname;
84
+ linkUrl = requestUrl;
85
+ } else {
86
+ // normal html builders
87
+ requestUrl = contentRoot + docName + docFileSuffix;
88
+ linkUrl = docName + docLinkSuffix;
89
+ }
90
+ let linkEl = listItem.appendChild(document.createElement("a"));
91
+ linkEl.href = linkUrl + anchor;
92
+ linkEl.dataset.score = score;
93
+ linkEl.innerHTML = title;
94
+ if (descr) {
95
+ listItem.appendChild(document.createElement("span")).innerHTML =
96
+ " (" + descr + ")";
97
+ // highlight search terms in the description
98
+ if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
99
+ highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
49
100
  }
101
+ else if (showSearchSummary)
102
+ fetch(requestUrl)
103
+ .then((responseData) => responseData.text())
104
+ .then((data) => {
105
+ if (data)
106
+ listItem.appendChild(
107
+ Search.makeSearchSummary(data, searchTerms, anchor)
108
+ );
109
+ // highlight search terms in the summary
110
+ if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
111
+ highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
112
+ });
113
+ Search.output.appendChild(listItem);
114
+ };
115
+ const _finishSearch = (resultCount) => {
116
+ Search.stopPulse();
117
+ Search.title.innerText = _("Search Results");
118
+ if (!resultCount)
119
+ Search.status.innerText = Documentation.gettext(
120
+ "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
121
+ );
122
+ else
123
+ Search.status.innerText = Documentation.ngettext(
124
+ "Search finished, found one page matching the search query.",
125
+ "Search finished, found ${resultCount} pages matching the search query.",
126
+ resultCount,
127
+ ).replace('${resultCount}', resultCount);
128
+ };
129
+ const _displayNextItem = (
130
+ results,
131
+ resultCount,
132
+ searchTerms,
133
+ highlightTerms,
134
+ ) => {
135
+ // results left, load the summary and display it
136
+ // this is intended to be dynamic (don't sub resultsCount)
137
+ if (results.length) {
138
+ _displayItem(results.pop(), searchTerms, highlightTerms);
139
+ setTimeout(
140
+ () => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
141
+ 5
142
+ );
143
+ }
144
+ // search finished, update title and status message
145
+ else _finishSearch(resultCount);
146
+ };
147
+ // Helper function used by query() to order search results.
148
+ // Each input is an array of [docname, title, anchor, descr, score, filename, kind].
149
+ // Order the results by score (in opposite order of appearance, since the
150
+ // `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
151
+ const _orderResultsByScoreThenName = (a, b) => {
152
+ const leftScore = a[4];
153
+ const rightScore = b[4];
154
+ if (leftScore === rightScore) {
155
+ // same score: sort alphabetically
156
+ const leftTitle = a[1].toLowerCase();
157
+ const rightTitle = b[1].toLowerCase();
158
+ if (leftTitle === rightTitle) return 0;
159
+ return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
160
+ }
161
+ return leftScore > rightScore ? 1 : -1;
162
+ };
163
+
164
+ /**
165
+ * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
166
+ * custom function per language.
167
+ *
168
+ * The regular expression works by splitting the string on consecutive characters
169
+ * that are not Unicode letters, numbers, underscores, or emoji characters.
170
+ * This is the same as ``\W+`` in Python, preserving the surrogate pair area.
171
+ */
172
+ if (typeof splitQuery === "undefined") {
173
+ var splitQuery = (query) => query
174
+ .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
175
+ .filter(term => term) // remove remaining empty strings
50
176
  }
51
177
 
52
178
  /**
53
179
  * Search Module
54
180
  */
55
- var Search = {
56
-
57
- _index : null,
58
- _queued_query : null,
59
- _pulse_status : -1,
60
-
61
- htmlToText : function(htmlString) {
62
- var virtualDocument = document.implementation.createHTMLDocument('virtual');
63
- var htmlElement = $(htmlString, virtualDocument);
64
- htmlElement.find('.headerlink').remove();
65
- docContent = htmlElement.find('[role=main]')[0];
66
- if(docContent === undefined) {
67
- console.warn("Content block not found. Sphinx search tries to obtain it " +
68
- "via '[role=main]'. Could you check your theme or template.");
69
- return "";
70
- }
71
- return docContent.textContent || docContent.innerText;
72
- },
181
+ const Search = {
182
+ _index: null,
183
+ _queued_query: null,
184
+ _pulse_status: -1,
185
+
186
+ htmlToText: (htmlString, anchor) => {
187
+ const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
188
+ for (const removalQuery of [".headerlink", "script", "style"]) {
189
+ htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
190
+ }
191
+ if (anchor) {
192
+ const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
193
+ if (anchorContent) return anchorContent.textContent;
73
194
 
74
- init : function() {
75
- var params = $.getQueryParameters();
76
- if (params.q) {
77
- var query = params.q[0];
78
- $('input[name="q"]')[0].value = query;
79
- this.performSearch(query);
80
- }
195
+ console.warn(
196
+ `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
197
+ );
198
+ }
199
+
200
+ // if anchor not specified or not found, fall back to main content
201
+ const docContent = htmlElement.querySelector('[role="main"]');
202
+ if (docContent) return docContent.textContent;
203
+
204
+ console.warn(
205
+ "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
206
+ );
207
+ return "";
81
208
  },
82
209
 
83
- loadIndex : function(url) {
84
- $.ajax({type: "GET", url: url, data: null,
85
- dataType: "script", cache: true,
86
- complete: function(jqxhr, textstatus) {
87
- if (textstatus != "success") {
88
- document.getElementById("searchindexloader").src = url;
89
- }
90
- }});
210
+ init: () => {
211
+ const query = new URLSearchParams(window.location.search).get("q");
212
+ document
213
+ .querySelectorAll('input[name="q"]')
214
+ .forEach((el) => (el.value = query));
215
+ if (query) Search.performSearch(query);
91
216
  },
92
217
 
93
- setIndex : function(index) {
94
- var q;
95
- this._index = index;
96
- if ((q = this._queued_query) !== null) {
97
- this._queued_query = null;
98
- Search.query(q);
218
+ loadIndex: (url) =>
219
+ (document.body.appendChild(document.createElement("script")).src = url),
220
+
221
+ setIndex: (index) => {
222
+ Search._index = index;
223
+ if (Search._queued_query !== null) {
224
+ const query = Search._queued_query;
225
+ Search._queued_query = null;
226
+ Search.query(query);
99
227
  }
100
228
  },
101
229
 
102
- hasIndex : function() {
103
- return this._index !== null;
104
- },
230
+ hasIndex: () => Search._index !== null,
105
231
 
106
- deferQuery : function(query) {
107
- this._queued_query = query;
108
- },
232
+ deferQuery: (query) => (Search._queued_query = query),
109
233
 
110
- stopPulse : function() {
111
- this._pulse_status = 0;
112
- },
234
+ stopPulse: () => (Search._pulse_status = -1),
113
235
 
114
- startPulse : function() {
115
- if (this._pulse_status >= 0)
116
- return;
117
- function pulse() {
118
- var i;
236
+ startPulse: () => {
237
+ if (Search._pulse_status >= 0) return;
238
+
239
+ const pulse = () => {
119
240
  Search._pulse_status = (Search._pulse_status + 1) % 4;
120
- var dotString = '';
121
- for (i = 0; i < Search._pulse_status; i++)
122
- dotString += '.';
123
- Search.dots.text(dotString);
124
- if (Search._pulse_status > -1)
125
- window.setTimeout(pulse, 500);
126
- }
241
+ Search.dots.innerText = ".".repeat(Search._pulse_status);
242
+ if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
243
+ };
127
244
  pulse();
128
245
  },
129
246
 
130
247
  /**
131
248
  * perform a search for something (or wait until index is loaded)
132
249
  */
133
- performSearch : function(query) {
250
+ performSearch: (query) => {
134
251
  // create the required interface elements
135
- this.out = $('#search-results');
136
- this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
137
- this.dots = $('<span></span>').appendTo(this.title);
138
- this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out);
139
- this.output = $('<ul class="search"/>').appendTo(this.out);
140
-
141
- $('#search-progress').text(_('Preparing search...'));
142
- this.startPulse();
252
+ const searchText = document.createElement("h2");
253
+ searchText.textContent = _("Searching");
254
+ const searchSummary = document.createElement("p");
255
+ searchSummary.classList.add("search-summary");
256
+ searchSummary.innerText = "";
257
+ const searchList = document.createElement("ul");
258
+ searchList.setAttribute("role", "list");
259
+ searchList.classList.add("search");
260
+
261
+ const out = document.getElementById("search-results");
262
+ Search.title = out.appendChild(searchText);
263
+ Search.dots = Search.title.appendChild(document.createElement("span"));
264
+ Search.status = out.appendChild(searchSummary);
265
+ Search.output = out.appendChild(searchList);
266
+
267
+ const searchProgress = document.getElementById("search-progress");
268
+ // Some themes don't use the search progress node
269
+ if (searchProgress) {
270
+ searchProgress.innerText = _("Preparing search...");
271
+ }
272
+ Search.startPulse();
143
273
 
144
274
  // index already loaded, the browser was quick!
145
- if (this.hasIndex())
146
- this.query(query);
147
- else
148
- this.deferQuery(query);
275
+ if (Search.hasIndex()) Search.query(query);
276
+ else Search.deferQuery(query);
149
277
  },
150
278
 
151
- /**
152
- * execute search (requires search index to be loaded)
153
- */
154
- query : function(query) {
155
- var i;
156
-
157
- // stem the searchterms and add them to the correct list
158
- var stemmer = new Stemmer();
159
- var searchterms = [];
160
- var excluded = [];
161
- var hlterms = [];
162
- var tmp = splitQuery(query);
163
- var objectterms = [];
164
- for (i = 0; i < tmp.length; i++) {
165
- if (tmp[i] !== "") {
166
- objectterms.push(tmp[i].toLowerCase());
167
- }
279
+ _parseQuery: (query) => {
280
+ // stem the search terms and add them to the correct list
281
+ const stemmer = new Stemmer();
282
+ const searchTerms = new Set();
283
+ const excludedTerms = new Set();
284
+ const highlightTerms = new Set();
285
+ const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
286
+ splitQuery(query.trim()).forEach((queryTerm) => {
287
+ const queryTermLower = queryTerm.toLowerCase();
288
+
289
+ // maybe skip this "word"
290
+ // stopwords array is from language_data.js
291
+ if (
292
+ stopwords.indexOf(queryTermLower) !== -1 ||
293
+ queryTerm.match(/^\d+$/)
294
+ )
295
+ return;
168
296
 
169
- if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i] === "") {
170
- // skip this "word"
171
- continue;
172
- }
173
297
  // stem the word
174
- var word = stemmer.stemWord(tmp[i].toLowerCase());
175
- // prevent stemmer from cutting word smaller than two chars
176
- if(word.length < 3 && tmp[i].length >= 3) {
177
- word = tmp[i];
178
- }
179
- var toAppend;
298
+ let word = stemmer.stemWord(queryTermLower);
180
299
  // select the correct list
181
- if (word[0] == '-') {
182
- toAppend = excluded;
183
- word = word.substr(1);
184
- }
300
+ if (word[0] === "-") excludedTerms.add(word.substr(1));
185
301
  else {
186
- toAppend = searchterms;
187
- hlterms.push(tmp[i].toLowerCase());
302
+ searchTerms.add(word);
303
+ highlightTerms.add(queryTermLower);
188
304
  }
189
- // only add if not already in the list
190
- if (!$u.contains(toAppend, word))
191
- toAppend.push(word);
305
+ });
306
+
307
+ if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
308
+ localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
192
309
  }
193
- var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
194
310
 
195
- // console.debug('SEARCH: searching for:');
196
- // console.info('required: ', searchterms);
197
- // console.info('excluded: ', excluded);
311
+ // console.debug("SEARCH: searching for:");
312
+ // console.info("required: ", [...searchTerms]);
313
+ // console.info("excluded: ", [...excludedTerms]);
198
314
 
199
- // prepare search
200
- var terms = this._index.terms;
201
- var titleterms = this._index.titleterms;
315
+ return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
316
+ },
202
317
 
203
- // array of [filename, title, anchor, descr, score]
204
- var results = [];
205
- $('#search-progress').empty();
318
+ /**
319
+ * execute search (requires search index to be loaded)
320
+ */
321
+ _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
322
+ const filenames = Search._index.filenames;
323
+ const docNames = Search._index.docnames;
324
+ const titles = Search._index.titles;
325
+ const allTitles = Search._index.alltitles;
326
+ const indexEntries = Search._index.indexentries;
327
+
328
+ // Collect multiple result groups to be sorted separately and then ordered.
329
+ // Each is an array of [docname, title, anchor, descr, score, filename, kind].
330
+ const normalResults = [];
331
+ const nonMainIndexResults = [];
332
+
333
+ _removeChildren(document.getElementById("search-progress"));
334
+
335
+ const queryLower = query.toLowerCase().trim();
336
+ for (const [title, foundTitles] of Object.entries(allTitles)) {
337
+ if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
338
+ for (const [file, id] of foundTitles) {
339
+ const score = Math.round(Scorer.title * queryLower.length / title.length);
340
+ const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
341
+ normalResults.push([
342
+ docNames[file],
343
+ titles[file] !== title ? `${titles[file]} > ${title}` : title,
344
+ id !== null ? "#" + id : "",
345
+ null,
346
+ score + boost,
347
+ filenames[file],
348
+ SearchResultKind.title,
349
+ ]);
350
+ }
351
+ }
352
+ }
206
353
 
207
- // lookup as object
208
- for (i = 0; i < objectterms.length; i++) {
209
- var others = [].concat(objectterms.slice(0, i),
210
- objectterms.slice(i+1, objectterms.length));
211
- results = results.concat(this.performObjectSearch(objectterms[i], others));
354
+ // search for explicit entries in index directives
355
+ for (const [entry, foundEntries] of Object.entries(indexEntries)) {
356
+ if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
357
+ for (const [file, id, isMain] of foundEntries) {
358
+ const score = Math.round(100 * queryLower.length / entry.length);
359
+ const result = [
360
+ docNames[file],
361
+ titles[file],
362
+ id ? "#" + id : "",
363
+ null,
364
+ score,
365
+ filenames[file],
366
+ SearchResultKind.index,
367
+ ];
368
+ if (isMain) {
369
+ normalResults.push(result);
370
+ } else {
371
+ nonMainIndexResults.push(result);
372
+ }
373
+ }
374
+ }
212
375
  }
213
376
 
377
+ // lookup as object
378
+ objectTerms.forEach((term) =>
379
+ normalResults.push(...Search.performObjectSearch(term, objectTerms))
380
+ );
381
+
214
382
  // lookup as search terms in fulltext
215
- results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
383
+ normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
216
384
 
217
385
  // let the scorer override scores with a custom scoring function
218
386
  if (Scorer.score) {
219
- for (i = 0; i < results.length; i++)
220
- results[i][4] = Scorer.score(results[i]);
387
+ normalResults.forEach((item) => (item[4] = Scorer.score(item)));
388
+ nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
221
389
  }
222
390
 
223
- // now sort the results by score (in opposite order of appearance, since the
224
- // display function below uses pop() to retrieve items) and then
225
- // alphabetically
226
- results.sort(function(a, b) {
227
- var left = a[4];
228
- var right = b[4];
229
- if (left > right) {
230
- return 1;
231
- } else if (left < right) {
232
- return -1;
233
- } else {
234
- // same score: sort alphabetically
235
- left = a[1].toLowerCase();
236
- right = b[1].toLowerCase();
237
- return (left > right) ? -1 : ((left < right) ? 1 : 0);
391
+ // Sort each group of results by score and then alphabetically by name.
392
+ normalResults.sort(_orderResultsByScoreThenName);
393
+ nonMainIndexResults.sort(_orderResultsByScoreThenName);
394
+
395
+ // Combine the result groups in (reverse) order.
396
+ // Non-main index entries are typically arbitrary cross-references,
397
+ // so display them after other results.
398
+ let results = [...nonMainIndexResults, ...normalResults];
399
+
400
+ // remove duplicate search results
401
+ // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
402
+ let seen = new Set();
403
+ results = results.reverse().reduce((acc, result) => {
404
+ let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
405
+ if (!seen.has(resultStr)) {
406
+ acc.push(result);
407
+ seen.add(resultStr);
238
408
  }
239
- });
409
+ return acc;
410
+ }, []);
411
+
412
+ return results.reverse();
413
+ },
414
+
415
+ query: (query) => {
416
+ const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
417
+ const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
240
418
 
241
419
  // for debugging
242
420
  //Search.lastresults = results.slice(); // a copy
243
- //console.info('search results:', Search.lastresults);
421
+ // console.info("search results:", Search.lastresults);
244
422
 
245
423
  // print the results
246
- var resultCount = results.length;
247
- function displayNextItem() {
248
- // results left, load the summary and display it
249
- if (results.length) {
250
- var item = results.pop();
251
- var listItem = $('<li></li>');
252
- var requestUrl = "";
253
- var linkUrl = "";
254
- if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
255
- // dirhtml builder
256
- var dirname = item[0] + '/';
257
- if (dirname.match(/\/index\/$/)) {
258
- dirname = dirname.substring(0, dirname.length-6);
259
- } else if (dirname == 'index/') {
260
- dirname = '';
261
- }
262
- requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
263
- linkUrl = requestUrl;
264
-
265
- } else {
266
- // normal html builders
267
- requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
268
- linkUrl = item[0] + DOCUMENTATION_OPTIONS.LINK_SUFFIX;
269
- }
270
- listItem.append($('<a/>').attr('href',
271
- linkUrl +
272
- highlightstring + item[2]).html(item[1]));
273
- if (item[3]) {
274
- listItem.append($('<span> (' + item[3] + ')</span>'));
275
- Search.output.append(listItem);
276
- setTimeout(function() {
277
- displayNextItem();
278
- }, 5);
279
- } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
280
- $.ajax({url: requestUrl,
281
- dataType: "text",
282
- complete: function(jqxhr, textstatus) {
283
- var data = jqxhr.responseText;
284
- if (data !== '' && data !== undefined) {
285
- var summary = Search.makeSearchSummary(data, searchterms, hlterms);
286
- if (summary) {
287
- listItem.append(summary);
288
- }
289
- }
290
- Search.output.append(listItem);
291
- setTimeout(function() {
292
- displayNextItem();
293
- }, 5);
294
- }});
295
- } else {
296
- // no source available, just display title
297
- Search.output.append(listItem);
298
- setTimeout(function() {
299
- displayNextItem();
300
- }, 5);
301
- }
302
- }
303
- // search finished, update title and status message
304
- else {
305
- Search.stopPulse();
306
- Search.title.text(_('Search Results'));
307
- if (!resultCount)
308
- Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
309
- else
310
- Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
311
- Search.status.fadeIn(500);
312
- }
313
- }
314
- displayNextItem();
424
+ _displayNextItem(results, results.length, searchTerms, highlightTerms);
315
425
  },
316
426
 
317
427
  /**
318
428
  * search for object names
319
429
  */
320
- performObjectSearch : function(object, otherterms) {
321
- var filenames = this._index.filenames;
322
- var docnames = this._index.docnames;
323
- var objects = this._index.objects;
324
- var objnames = this._index.objnames;
325
- var titles = this._index.titles;
326
-
327
- var i;
328
- var results = [];
329
-
330
- for (var prefix in objects) {
331
- for (var iMatch = 0; iMatch != objects[prefix].length; ++iMatch) {
332
- var match = objects[prefix][iMatch];
333
- var name = match[4];
334
- var fullname = (prefix ? prefix + '.' : '') + name;
335
- var fullnameLower = fullname.toLowerCase()
336
- if (fullnameLower.indexOf(object) > -1) {
337
- var score = 0;
338
- var parts = fullnameLower.split('.');
339
- // check for different match types: exact matches of full name or
340
- // "last name" (i.e. last dotted part)
341
- if (fullnameLower == object || parts[parts.length - 1] == object) {
342
- score += Scorer.objNameMatch;
343
- // matches in last name
344
- } else if (parts[parts.length - 1].indexOf(object) > -1) {
345
- score += Scorer.objPartialMatch;
346
- }
347
- var objname = objnames[match[1]][2];
348
- var title = titles[match[0]];
349
- // If more than one term searched for, we require other words to be
350
- // found in the name/title/description
351
- if (otherterms.length > 0) {
352
- var haystack = (prefix + ' ' + name + ' ' +
353
- objname + ' ' + title).toLowerCase();
354
- var allfound = true;
355
- for (i = 0; i < otherterms.length; i++) {
356
- if (haystack.indexOf(otherterms[i]) == -1) {
357
- allfound = false;
358
- break;
359
- }
360
- }
361
- if (!allfound) {
362
- continue;
363
- }
364
- }
365
- var descr = objname + _(', in ') + title;
366
-
367
- var anchor = match[3];
368
- if (anchor === '')
369
- anchor = fullname;
370
- else if (anchor == '-')
371
- anchor = objnames[match[1]][1] + '-' + fullname;
372
- // add custom score for some objects according to scorer
373
- if (Scorer.objPrio.hasOwnProperty(match[2])) {
374
- score += Scorer.objPrio[match[2]];
375
- } else {
376
- score += Scorer.objPrioDefault;
377
- }
378
- results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]);
379
- }
430
+ performObjectSearch: (object, objectTerms) => {
431
+ const filenames = Search._index.filenames;
432
+ const docNames = Search._index.docnames;
433
+ const objects = Search._index.objects;
434
+ const objNames = Search._index.objnames;
435
+ const titles = Search._index.titles;
436
+
437
+ const results = [];
438
+
439
+ const objectSearchCallback = (prefix, match) => {
440
+ const name = match[4]
441
+ const fullname = (prefix ? prefix + "." : "") + name;
442
+ const fullnameLower = fullname.toLowerCase();
443
+ if (fullnameLower.indexOf(object) < 0) return;
444
+
445
+ let score = 0;
446
+ const parts = fullnameLower.split(".");
447
+
448
+ // check for different match types: exact matches of full name or
449
+ // "last name" (i.e. last dotted part)
450
+ if (fullnameLower === object || parts.slice(-1)[0] === object)
451
+ score += Scorer.objNameMatch;
452
+ else if (parts.slice(-1)[0].indexOf(object) > -1)
453
+ score += Scorer.objPartialMatch; // matches in last name
454
+
455
+ const objName = objNames[match[1]][2];
456
+ const title = titles[match[0]];
457
+
458
+ // If more than one term searched for, we require other words to be
459
+ // found in the name/title/description
460
+ const otherTerms = new Set(objectTerms);
461
+ otherTerms.delete(object);
462
+ if (otherTerms.size > 0) {
463
+ const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
464
+ if (
465
+ [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
466
+ )
467
+ return;
380
468
  }
381
- }
382
469
 
470
+ let anchor = match[3];
471
+ if (anchor === "") anchor = fullname;
472
+ else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
473
+
474
+ const descr = objName + _(", in ") + title;
475
+
476
+ // add custom score for some objects according to scorer
477
+ if (Scorer.objPrio.hasOwnProperty(match[2]))
478
+ score += Scorer.objPrio[match[2]];
479
+ else score += Scorer.objPrioDefault;
480
+
481
+ results.push([
482
+ docNames[match[0]],
483
+ fullname,
484
+ "#" + anchor,
485
+ descr,
486
+ score,
487
+ filenames[match[0]],
488
+ SearchResultKind.object,
489
+ ]);
490
+ };
491
+ Object.keys(objects).forEach((prefix) =>
492
+ objects[prefix].forEach((array) =>
493
+ objectSearchCallback(prefix, array)
494
+ )
495
+ );
383
496
  return results;
384
497
  },
385
498
 
386
- /**
387
- * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
388
- */
389
- escapeRegExp : function(string) {
390
- return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
391
- },
392
-
393
499
  /**
394
500
  * search for full-text terms in the index
395
501
  */
396
- performTermsSearch : function(searchterms, excluded, terms, titleterms) {
397
- var docnames = this._index.docnames;
398
- var filenames = this._index.filenames;
399
- var titles = this._index.titles;
502
+ performTermsSearch: (searchTerms, excludedTerms) => {
503
+ // prepare search
504
+ const terms = Search._index.terms;
505
+ const titleTerms = Search._index.titleterms;
506
+ const filenames = Search._index.filenames;
507
+ const docNames = Search._index.docnames;
508
+ const titles = Search._index.titles;
400
509
 
401
- var i, j, file;
402
- var fileMap = {};
403
- var scoreMap = {};
404
- var results = [];
510
+ const scoreMap = new Map();
511
+ const fileMap = new Map();
405
512
 
406
513
  // perform the search on the required terms
407
- for (i = 0; i < searchterms.length; i++) {
408
- var word = searchterms[i];
409
- var files = [];
410
- var _o = [
411
- {files: terms[word], score: Scorer.term},
412
- {files: titleterms[word], score: Scorer.title}
514
+ searchTerms.forEach((word) => {
515
+ const files = [];
516
+ // find documents, if any, containing the query word in their text/title term indices
517
+ // use Object.hasOwnProperty to avoid mismatching against prototype properties
518
+ const arr = [
519
+ { files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term },
520
+ { files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title },
413
521
  ];
414
522
  // add support for partial matches
415
523
  if (word.length > 2) {
416
- var word_regex = this.escapeRegExp(word);
417
- for (var w in terms) {
418
- if (w.match(word_regex) && !terms[word]) {
419
- _o.push({files: terms[w], score: Scorer.partialTerm})
420
- }
524
+ const escapedWord = _escapeRegExp(word);
525
+ if (!terms.hasOwnProperty(word)) {
526
+ Object.keys(terms).forEach((term) => {
527
+ if (term.match(escapedWord))
528
+ arr.push({ files: terms[term], score: Scorer.partialTerm });
529
+ });
421
530
  }
422
- for (var w in titleterms) {
423
- if (w.match(word_regex) && !titleterms[word]) {
424
- _o.push({files: titleterms[w], score: Scorer.partialTitle})
425
- }
531
+ if (!titleTerms.hasOwnProperty(word)) {
532
+ Object.keys(titleTerms).forEach((term) => {
533
+ if (term.match(escapedWord))
534
+ arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
535
+ });
426
536
  }
427
537
  }
428
538
 
429
539
  // no match but word was a required one
430
- if ($u.every(_o, function(o){return o.files === undefined;})) {
431
- break;
432
- }
540
+ if (arr.every((record) => record.files === undefined)) return;
541
+
433
542
  // found search word in contents
434
- $u.each(_o, function(o) {
435
- var _files = o.files;
436
- if (_files === undefined)
437
- return
438
-
439
- if (_files.length === undefined)
440
- _files = [_files];
441
- files = files.concat(_files);
442
-
443
- // set score for the word in each file to Scorer.term
444
- for (j = 0; j < _files.length; j++) {
445
- file = _files[j];
446
- if (!(file in scoreMap))
447
- scoreMap[file] = {};
448
- scoreMap[file][word] = o.score;
449
- }
543
+ arr.forEach((record) => {
544
+ if (record.files === undefined) return;
545
+
546
+ let recordFiles = record.files;
547
+ if (recordFiles.length === undefined) recordFiles = [recordFiles];
548
+ files.push(...recordFiles);
549
+
550
+ // set score for the word in each file
551
+ recordFiles.forEach((file) => {
552
+ if (!scoreMap.has(file)) scoreMap.set(file, new Map());
553
+ const fileScores = scoreMap.get(file);
554
+ fileScores.set(word, record.score);
555
+ });
450
556
  });
451
557
 
452
558
  // create the mapping
453
- for (j = 0; j < files.length; j++) {
454
- file = files[j];
455
- if (file in fileMap && fileMap[file].indexOf(word) === -1)
456
- fileMap[file].push(word);
457
- else
458
- fileMap[file] = [word];
459
- }
460
- }
559
+ files.forEach((file) => {
560
+ if (!fileMap.has(file)) fileMap.set(file, [word]);
561
+ else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
562
+ });
563
+ });
461
564
 
462
565
  // now check if the files don't contain excluded terms
463
- for (file in fileMap) {
464
- var valid = true;
465
-
566
+ const results = [];
567
+ for (const [file, wordList] of fileMap) {
466
568
  // check if all requirements are matched
467
- var filteredTermCount = // as search terms with length < 3 are discarded: ignore
468
- searchterms.filter(function(term){return term.length > 2}).length
569
+
570
+ // as search terms with length < 3 are discarded
571
+ const filteredTermCount = [...searchTerms].filter(
572
+ (term) => term.length > 2
573
+ ).length;
469
574
  if (
470
- fileMap[file].length != searchterms.length &&
471
- fileMap[file].length != filteredTermCount
472
- ) continue;
575
+ wordList.length !== searchTerms.size &&
576
+ wordList.length !== filteredTermCount
577
+ )
578
+ continue;
473
579
 
474
580
  // ensure that none of the excluded terms is in the search result
475
- for (i = 0; i < excluded.length; i++) {
476
- if (terms[excluded[i]] == file ||
477
- titleterms[excluded[i]] == file ||
478
- $u.contains(terms[excluded[i]] || [], file) ||
479
- $u.contains(titleterms[excluded[i]] || [], file)) {
480
- valid = false;
481
- break;
482
- }
483
- }
581
+ if (
582
+ [...excludedTerms].some(
583
+ (term) =>
584
+ terms[term] === file ||
585
+ titleTerms[term] === file ||
586
+ (terms[term] || []).includes(file) ||
587
+ (titleTerms[term] || []).includes(file)
588
+ )
589
+ )
590
+ break;
484
591
 
485
- // if we have still a valid result we can add it to the result list
486
- if (valid) {
487
- // select one (max) score for the file.
488
- // for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
489
- var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
490
- results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
491
- }
592
+ // select one (max) score for the file.
593
+ const score = Math.max(...wordList.map((w) => scoreMap.get(file).get(w)));
594
+ // add result to the result list
595
+ results.push([
596
+ docNames[file],
597
+ titles[file],
598
+ "",
599
+ null,
600
+ score,
601
+ filenames[file],
602
+ SearchResultKind.text,
603
+ ]);
492
604
  }
493
605
  return results;
494
606
  },
@@ -496,34 +608,28 @@ var Search = {
496
608
  /**
497
609
  * helper function to return a node containing the
498
610
  * search summary for a given text. keywords is a list
499
- * of stemmed words, hlwords is the list of normal, unstemmed
500
- * words. the first one is used to find the occurrence, the
501
- * latter for highlighting it.
611
+ * of stemmed words.
502
612
  */
503
- makeSearchSummary : function(htmlText, keywords, hlwords) {
504
- var text = Search.htmlToText(htmlText);
505
- if (text == "") {
506
- return null;
507
- }
508
- var textLower = text.toLowerCase();
509
- var start = 0;
510
- $.each(keywords, function() {
511
- var i = textLower.indexOf(this.toLowerCase());
512
- if (i > -1)
513
- start = i;
514
- });
515
- start = Math.max(start - 120, 0);
516
- var excerpt = ((start > 0) ? '...' : '') +
517
- $.trim(text.substr(start, 240)) +
518
- ((start + 240 - text.length) ? '...' : '');
519
- var rv = $('<p class="context"></p>').text(excerpt);
520
- $.each(hlwords, function() {
521
- rv = rv.highlightText(this, 'highlighted');
522
- });
523
- return rv;
524
- }
613
+ makeSearchSummary: (htmlText, keywords, anchor) => {
614
+ const text = Search.htmlToText(htmlText, anchor);
615
+ if (text === "") return null;
616
+
617
+ const textLower = text.toLowerCase();
618
+ const actualStartPosition = [...keywords]
619
+ .map((k) => textLower.indexOf(k.toLowerCase()))
620
+ .filter((i) => i > -1)
621
+ .slice(-1)[0];
622
+ const startWithContext = Math.max(actualStartPosition - 120, 0);
623
+
624
+ const top = startWithContext === 0 ? "" : "...";
625
+ const tail = startWithContext + 240 < text.length ? "..." : "";
626
+
627
+ let summary = document.createElement("p");
628
+ summary.classList.add("context");
629
+ summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
630
+
631
+ return summary;
632
+ },
525
633
  };
526
634
 
527
- $(document).ready(function() {
528
- Search.init();
529
- });
635
+ _ready(Search.init);