pychemstation 0.8.3__tar.gz → 0.9.0__tar.gz

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 (247) hide show
  1. {pychemstation-0.8.3 → pychemstation-0.9.0}/.gitignore +3 -1
  2. {pychemstation-0.8.3 → pychemstation-0.9.0}/.gitlab-ci.yml +1 -3
  3. pychemstation-0.9.0/.pre-commit-config.yaml +10 -0
  4. {pychemstation-0.8.3/pychemstation.egg-info → pychemstation-0.9.0}/PKG-INFO +77 -33
  5. {pychemstation-0.8.3 → pychemstation-0.9.0}/README.md +51 -20
  6. pychemstation-0.9.0/out.txt +377 -0
  7. {pychemstation-0.8.3/build/lib → pychemstation-0.9.0}/pychemstation/__init__.py +1 -1
  8. pychemstation-0.9.0/pychemstation/analysis/__init__.py +4 -0
  9. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/analysis/base_spectrum.py +4 -4
  10. {pychemstation-0.8.3/pychemstation/utils → pychemstation-0.9.0/pychemstation/analysis}/chromatogram.py +4 -7
  11. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/analysis/process_report.py +121 -74
  12. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/README.md +22 -46
  13. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/__init__.py +5 -0
  14. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/controllers/__init__.py +2 -0
  15. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/controllers/comm.py +39 -18
  16. pychemstation-0.9.0/pychemstation/control/controllers/devices/device.py +49 -0
  17. pychemstation-0.9.0/pychemstation/control/controllers/devices/injector.py +61 -0
  18. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/controllers/tables/method.py +266 -111
  19. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/controllers/tables/ms.py +7 -4
  20. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/controllers/tables/sequence.py +171 -82
  21. pychemstation-0.9.0/pychemstation/control/controllers/tables/table.py +375 -0
  22. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/hplc.py +117 -83
  23. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/generated/__init__.py +0 -2
  24. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/generated/dad_method.py +1 -1
  25. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/generated/pump_method.py +15 -19
  26. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/utils/injector_types.py +1 -1
  27. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/utils/macro.py +12 -11
  28. {pychemstation-0.8.3/build/lib → pychemstation-0.9.0}/pychemstation/utils/method_types.py +3 -2
  29. pychemstation-0.8.3/pychemstation/analysis/utils.py → pychemstation-0.9.0/pychemstation/utils/num_utils.py +2 -2
  30. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/utils/parsing.py +1 -11
  31. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/utils/sequence_types.py +4 -5
  32. {pychemstation-0.8.3/pychemstation/analysis → pychemstation-0.9.0/pychemstation/utils}/spec_utils.py +1 -2
  33. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/utils/table_types.py +10 -9
  34. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/utils/tray_types.py +48 -38
  35. {pychemstation-0.8.3 → pychemstation-0.9.0/pychemstation.egg-info}/PKG-INFO +19 -8
  36. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation.egg-info/SOURCES.txt +6 -8
  37. pychemstation-0.9.0/pychemstation.egg-info/requires.txt +14 -0
  38. {pychemstation-0.8.3 → pychemstation-0.9.0}/pyproject.toml +16 -4
  39. pychemstation-0.9.0/tests/constants.py +144 -0
  40. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/out.txt +5453 -0
  41. pychemstation-0.9.0/tests/test_method.py +71 -0
  42. pychemstation-0.8.3/tests/test_offline_stable.py → pychemstation-0.9.0/tests/test_offline_integration.py +45 -11
  43. pychemstation-0.8.3/tests/test_online_stable.py → pychemstation-0.9.0/tests/test_online_integration.py +112 -60
  44. pychemstation-0.9.0/tests/test_runs_integration.py +246 -0
  45. pychemstation-0.9.0/tests/test_sequence.py +22 -0
  46. {pychemstation-0.8.3 → pychemstation-0.9.0}/update-lib.sh +2 -2
  47. {pychemstation-0.8.3 → pychemstation-0.9.0}/uv.lock +205 -1548
  48. pychemstation-0.8.3/.coverage +0 -0
  49. pychemstation-0.8.3/build/lib/pychemstation/analysis/__init__.py +0 -1
  50. pychemstation-0.8.3/build/lib/pychemstation/analysis/base_spectrum.py +0 -509
  51. pychemstation-0.8.3/build/lib/pychemstation/analysis/process_report.py +0 -254
  52. pychemstation-0.8.3/build/lib/pychemstation/analysis/spec_utils.py +0 -304
  53. pychemstation-0.8.3/build/lib/pychemstation/analysis/utils.py +0 -63
  54. pychemstation-0.8.3/build/lib/pychemstation/control/__init__.py +0 -4
  55. pychemstation-0.8.3/build/lib/pychemstation/control/comm.py +0 -206
  56. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/__init__.py +0 -9
  57. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/comm.py +0 -208
  58. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/column.py +0 -12
  59. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/dad.py +0 -0
  60. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/device.py +0 -23
  61. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/injector.py +0 -117
  62. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/pump.py +0 -43
  63. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/method.py +0 -338
  64. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/sequence.py +0 -190
  65. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/table_controller.py +0 -266
  66. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/tables/method.py +0 -361
  67. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/tables/ms.py +0 -21
  68. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/tables/sequence.py +0 -211
  69. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/tables/table.py +0 -302
  70. pychemstation-0.8.3/build/lib/pychemstation/control/hplc.py +0 -238
  71. pychemstation-0.8.3/build/lib/pychemstation/control/table/__init__.py +0 -3
  72. pychemstation-0.8.3/build/lib/pychemstation/control/table/method.py +0 -274
  73. pychemstation-0.8.3/build/lib/pychemstation/control/table/sequence.py +0 -210
  74. pychemstation-0.8.3/build/lib/pychemstation/control/table/table_controller.py +0 -201
  75. pychemstation-0.8.3/build/lib/pychemstation/generated/__init__.py +0 -56
  76. pychemstation-0.8.3/build/lib/pychemstation/generated/dad_method.py +0 -367
  77. pychemstation-0.8.3/build/lib/pychemstation/generated/pump_method.py +0 -519
  78. pychemstation-0.8.3/build/lib/pychemstation/utils/chromatogram.py +0 -115
  79. pychemstation-0.8.3/build/lib/pychemstation/utils/injector_types.py +0 -52
  80. pychemstation-0.8.3/build/lib/pychemstation/utils/macro.py +0 -100
  81. pychemstation-0.8.3/build/lib/pychemstation/utils/parsing.py +0 -290
  82. pychemstation-0.8.3/build/lib/pychemstation/utils/sequence_types.py +0 -54
  83. pychemstation-0.8.3/build/lib/pychemstation/utils/table_types.py +0 -92
  84. pychemstation-0.8.3/build/lib/pychemstation/utils/tray_types.py +0 -163
  85. pychemstation-0.8.3/build/lib/tests/constants.py +0 -88
  86. pychemstation-0.8.3/build/lib/tests/test_comb.py +0 -136
  87. pychemstation-0.8.3/build/lib/tests/test_comm.py +0 -65
  88. pychemstation-0.8.3/build/lib/tests/test_inj.py +0 -39
  89. pychemstation-0.8.3/build/lib/tests/test_method.py +0 -99
  90. pychemstation-0.8.3/build/lib/tests/test_nightly.py +0 -80
  91. pychemstation-0.8.3/build/lib/tests/test_proc_rep.py +0 -52
  92. pychemstation-0.8.3/build/lib/tests/test_runs_stable.py +0 -125
  93. pychemstation-0.8.3/build/lib/tests/test_sequence.py +0 -125
  94. pychemstation-0.8.3/build/lib/tests/test_stable.py +0 -276
  95. pychemstation-0.8.3/pychemstation/__init__.py +0 -3
  96. pychemstation-0.8.3/pychemstation/analysis/__init__.py +0 -1
  97. pychemstation-0.8.3/pychemstation/control/controllers/devices/__init__.py +0 -0
  98. pychemstation-0.8.3/pychemstation/control/controllers/devices/device.py +0 -36
  99. pychemstation-0.8.3/pychemstation/control/controllers/devices/injector.py +0 -117
  100. pychemstation-0.8.3/pychemstation/control/controllers/tables/__init__.py +0 -0
  101. pychemstation-0.8.3/pychemstation/control/controllers/tables/table.py +0 -299
  102. pychemstation-0.8.3/pychemstation/utils/__init__.py +0 -0
  103. pychemstation-0.8.3/pychemstation/utils/method_types.py +0 -56
  104. pychemstation-0.8.3/pychemstation/utils/pump_types.py +0 -7
  105. pychemstation-0.8.3/pychemstation.egg-info/requires.txt +0 -6
  106. pychemstation-0.8.3/setup.py +0 -33
  107. pychemstation-0.8.3/tests/__init__.py +0 -0
  108. pychemstation-0.8.3/tests/constants.py +0 -112
  109. pychemstation-0.8.3/tests/test_nightly.py +0 -24
  110. pychemstation-0.8.3/tests/test_runs_stable.py +0 -112
  111. {pychemstation-0.8.3 → pychemstation-0.9.0}/CHANGELOG.md +0 -0
  112. {pychemstation-0.8.3 → pychemstation-0.9.0}/CONTRIBUTING.md +0 -0
  113. {pychemstation-0.8.3 → pychemstation-0.9.0}/LICENSE +0 -0
  114. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/index.html +0 -0
  115. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/analysis/base_spectrum.html +0 -0
  116. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/analysis/spec_utils.html +0 -0
  117. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/analysis/utils.html +0 -0
  118. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/analysis.html +0 -0
  119. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/control/chromatogram.html +0 -0
  120. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/control/hplc.html +0 -0
  121. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/control.html +0 -0
  122. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/generated.html +0 -0
  123. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/utils/chemstation.html +0 -0
  124. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/utils/constants.html +0 -0
  125. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/utils/hplc_param_types.html +0 -0
  126. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation/utils.html +0 -0
  127. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/pychemstation.html +0 -0
  128. {pychemstation-0.8.3 → pychemstation-0.9.0}/doc/search.js +0 -0
  129. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation/control/controllers/README.md +0 -0
  130. {pychemstation-0.8.3/build/lib → pychemstation-0.9.0}/pychemstation/control/controllers/devices/__init__.py +0 -0
  131. {pychemstation-0.8.3/build/lib → pychemstation-0.9.0}/pychemstation/control/controllers/tables/__init__.py +0 -0
  132. {pychemstation-0.8.3/build/lib → pychemstation-0.9.0}/pychemstation/utils/__init__.py +0 -0
  133. {pychemstation-0.8.3/build/lib → pychemstation-0.9.0}/pychemstation/utils/pump_types.py +0 -0
  134. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation.egg-info/dependency_links.txt +0 -0
  135. {pychemstation-0.8.3 → pychemstation-0.9.0}/pychemstation.egg-info/top_level.txt +0 -0
  136. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/0_2025-03-15 19-14-35.PDF +0 -0
  137. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/ACQRES.REG +0 -0
  138. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/CSlbk.ini +0 -0
  139. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DA.M/DAMETHOD.REG +0 -0
  140. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DA.M/INFO.MTH +0 -0
  141. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DA.M/RECALIB.MTH +0 -0
  142. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DA.M/rpthead.txt +0 -0
  143. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1.UV +0 -0
  144. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1A.ch +0 -0
  145. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1A.npz +0 -0
  146. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1B.ch +0 -0
  147. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1B.npz +0 -0
  148. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1C.ch +0 -0
  149. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1C.npz +0 -0
  150. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1D.ch +0 -0
  151. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1D.npz +0 -0
  152. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1E.ch +0 -0
  153. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DAD1E.npz +0 -0
  154. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/DiagResults.REG +0 -0
  155. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/PMP1.AnalyticalResults.drvml +0 -0
  156. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/REPORT01.CSV +0 -0
  157. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/REPORT02.CSV +0 -0
  158. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/REPORT03.CSV +0 -0
  159. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/REPORT04.CSV +0 -0
  160. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/REPORT05.CSV +0 -0
  161. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/RUN.LOG +0 -0
  162. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/Report.TXT +0 -0
  163. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/Report00.CSV +0 -0
  164. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/Report01.xls +0 -0
  165. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML +0 -0
  166. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML.bak +0 -0
  167. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/WLS1.Sampler.scml +0 -0
  168. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/acq.macaml +0 -0
  169. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/acq.txt +0 -0
  170. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/acq_MethHist.txt +0 -0
  171. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/acq_damethod.reg +0 -0
  172. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/da.macaml +0 -0
  173. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/lcdiag.reg +0 -0
  174. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/sample.acaml +0 -0
  175. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/0_2025-03-15 19-14-35.D/single.B +0 -0
  176. {pychemstation-0.8.3/build/lib → pychemstation-0.9.0}/tests/__init__.py +0 -0
  177. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_talk.mac +0 -0
  178. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/CSlbk.ini +0 -0
  179. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/ACQ.MS +0 -0
  180. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.ConfigXML.xml +0 -0
  181. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodMetaData.xml +0 -0
  182. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodXML.xml +0 -0
  183. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.ConfigXML.xml +0 -0
  184. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodMetaData.xml +0 -0
  185. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodXML.xml +0 -0
  186. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.ConfigXML.xml +0 -0
  187. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodMetaData.xml +0 -0
  188. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodXML.xml +0 -0
  189. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.ConfigXML.xml +0 -0
  190. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodMetaData.xml +0 -0
  191. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodXML.xml +0 -0
  192. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.PretreatXML.xml +0 -0
  193. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/DAMETHOD.REG +0 -0
  194. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/FIA.REG +0 -0
  195. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INFO.MTH +0 -0
  196. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INJECTOR.MTH +0 -0
  197. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/MassHunterIntegration.ini +0 -0
  198. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RECALIB.MTH +0 -0
  199. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RapidControl.InstrumentConfig.xml +0 -0
  200. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/rpthead.txt +0 -0
  201. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/smpl_pur.mth +0 -0
  202. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/Methods.Reg +0 -0
  203. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.B +0 -0
  204. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.LOG +0 -0
  205. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.S +0 -0
  206. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.Start +0 -0
  207. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/ACQRES.REG +0 -0
  208. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/CSlbk.ini +0 -0
  209. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/DAMETHOD.REG +0 -0
  210. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/INFO.MTH +0 -0
  211. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/RECALIB.MTH +0 -0
  212. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/rpthead.txt +0 -0
  213. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1.UV +0 -0
  214. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.ch +0 -0
  215. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.npz +0 -0
  216. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.ch +0 -0
  217. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.npz +0 -0
  218. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.ch +0 -0
  219. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.npz +0 -0
  220. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.ch +0 -0
  221. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.npz +0 -0
  222. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.ch +0 -0
  223. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.npz +0 -0
  224. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DiagResults.REG +0 -0
  225. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Limsinf.xml +0 -0
  226. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/PMP1.AnalyticalResults.drvml +0 -0
  227. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT01.CSV +0 -0
  228. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT02.CSV +0 -0
  229. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT03.CSV +0 -0
  230. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT04.CSV +0 -0
  231. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT05.CSV +0 -0
  232. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/RUN.LOG +0 -0
  233. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report.TXT +0 -0
  234. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report00.CSV +0 -0
  235. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report01.xls +0 -0
  236. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML +0 -0
  237. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML.bak +0 -0
  238. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/WLS1.Sampler.scml +0 -0
  239. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.macaml +0 -0
  240. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.txt +0 -0
  241. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_MethHist.txt +0 -0
  242. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_damethod.reg +0 -0
  243. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/da.macaml +0 -0
  244. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
  245. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/lcdiag.reg +0 -0
  246. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/sequence.acam_ +0 -0
  247. {pychemstation-0.8.3 → pychemstation-0.9.0}/tests/hplc_testing 2025-03-27 17-13-47/sequence.acaml +0 -0
@@ -4,4 +4,6 @@
4
4
  .venv
5
5
  **/__pycache__/
6
6
  target
7
- .DS_Store
7
+ .DS_Store
8
+ env
9
+ venv
@@ -13,6 +13,4 @@ pages:
13
13
  - mv doc/ ./public/
14
14
  artifacts:
15
15
  paths:
16
- - public
17
- rules:
18
- - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
16
+ - public
@@ -0,0 +1,10 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ # Ruff version.
4
+ rev: v0.11.2
5
+ hooks:
6
+ # Run the linter.
7
+ - id: ruff
8
+ args: [ --fix ]
9
+ # Run the formatter.
10
+ - id: ruff-format
@@ -1,21 +1,33 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pychemstation
3
- Version: 0.7.0.dev2
3
+ Version: 0.9.0
4
4
  Summary: Library to interact with Chemstation software, primarily used in Hein lab
5
- Home-page: https://gitlab.com/heingroup/device-api/pychemstation
6
- Author: Lucy Hao
7
- Author-email: lhao03@student.ubc.ca
8
- Classifier: Programming Language :: Python :: 3
5
+ Project-URL: Documentation, https://pychemstation-e5a086.gitlab.io/pychemstation.html
6
+ Project-URL: Repository, https://gitlab.com/heingroup/device-api/pychemstation
7
+ Author-email: lucyhao <hao.lucyy@gmail.com>
8
+ License-File: LICENSE
9
9
  Classifier: License :: OSI Approved :: MIT License
10
10
  Classifier: Operating System :: OS Independent
11
- Description-Content-Type: text/markdown
12
- License-File: LICENSE
13
- Requires-Dist: polling
14
- Requires-Dist: seabreeze
15
- Requires-Dist: xsdata
16
- Requires-Dist: result
17
- Requires-Dist: rainbow-api
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Requires-Python: >=3.9
18
15
  Requires-Dist: aghplctools==4.8.6
16
+ Requires-Dist: coverage>=7.6.1
17
+ Requires-Dist: matplotlib>=3.7.5
18
+ Requires-Dist: pandas>=2.0.3
19
+ Requires-Dist: pdoc>=14.7.0
20
+ Requires-Dist: polling>=0.3.2
21
+ Requires-Dist: pre-commit>=4.2.0
22
+ Requires-Dist: pytest>=7.3.5
23
+ Requires-Dist: rainbow-api>=1.0.10
24
+ Requires-Dist: result>=0.17.0
25
+ Requires-Dist: scipy>=1.10.1
26
+ Requires-Dist: seabreeze>=2.9.2
27
+ Requires-Dist: setuptools>=75.3.2
28
+ Requires-Dist: twine>=6.1.0
29
+ Requires-Dist: xsdata>=24.9
30
+ Description-Content-Type: text/markdown
19
31
 
20
32
  # Agilent HPLC Macro Control
21
33
 
@@ -23,8 +35,12 @@ Requires-Dist: aghplctools==4.8.6
23
35
 
24
36
  [![PyPI Latest Release](https://img.shields.io/pypi/v/pychemstation.svg)](https://pypi.org/project/pychemstation/)
25
37
 
38
+ > **_NOTE:_** If you are running Python **3.8**, use versions 0.**8**.x. If you are running Python **3.9** use versions 0.**8**.x.
39
+ > If you are running Python **>=3.10**, use version 0.**10**.x. You are welcome to use newer pychemstation versions with older Python versions, but functionality
40
+ > is not guaranteed!
41
+
26
42
  Unofficial Python package to control Agilent Chemstation; we are not affiliated with Agilent.
27
- Check out the [docs](https://hein-analytical-control-5e6e85.gitlab.io/) for usage instructions. This project is under
43
+ Check out the [docs](https://pychemstation-e5a086.gitlab.io/pychemstation.html) for usage instructions. This project is under
28
44
  active development, and breaking changes may occur at any moment.
29
45
 
30
46
  ## Getting started
@@ -64,28 +80,55 @@ HPLCTalk_Run
64
80
 
65
81
  ```python
66
82
  from pychemstation.control import HPLCController
83
+ from pychemstation.utils.method_types import *
67
84
  import pandas as pd
68
85
 
69
- # these paths will be unique to your Chemstation setup
70
- DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
71
- DEFAULT_METHOD = "GENERAL-POROSHELL"
72
86
  DEFAULT_METHOD_DIR = "C:\\ChemStation\\1\\Methods\\"
73
- DATA_DIR = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data"
74
- SEQUENCE_DIR = "C:\\USERS\\PUBLIC\\DOCUMENTS\\CHEMSTATION\\2\\Sequence"
87
+ SEQUENCE_DIR = "C:\\USERS\\PUBLIC\\DOCUMENTS\\CHEMSTATION\\3\\Sequence"
88
+ DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
89
+ DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data"
90
+ DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data"
75
91
 
76
- hplc_controller = HPLCController(data_dir=DATA_DIR,
92
+ # Initialize HPLC Controller
93
+ hplc_controller = HPLCController(data_dirs=[DATA_DIR_2, DATA_DIR_3],
77
94
  comm_dir=DEFAULT_COMMAND_PATH,
78
- sequence_dir=SEQUENCE_DIR,
79
- method_dir=DEFAULT_METHOD_DIR)
80
-
81
- hplc_controller.preprun()
82
- hplc_controller.switch_method(method_name=DEFAULT_METHOD)
83
- hplc_controller.run_method(experiment_name="Run 10")
95
+ method_dir=DEFAULT_METHOD_DIR,
96
+ sequence_dir=SEQUENCE_DIR)
97
+
98
+ # Switching a method
99
+ hplc_controller.switch_method("General-Poroshell")
100
+
101
+ # Editing a method
102
+ new_method = MethodDetails(
103
+ name="General-Poroshell",
104
+ params=HPLCMethodParams(
105
+ organic_modifier=7,
106
+ flow=0.44),
107
+ timetable=[
108
+ TimeTableEntry(
109
+ start_time=0.10,
110
+ organic_modifer=7,
111
+ flow=0.34
112
+ ),
113
+ TimeTableEntry(
114
+ start_time=4,
115
+ organic_modifer=99,
116
+ flow=0.55
117
+ )
118
+ ],
119
+ stop_time=5,
120
+ post_time=2
121
+ )
122
+ hplc_controller.edit_method(new_method)
123
+
124
+ # Run a method and get a report or data from last run method
125
+ hplc_controller.run_method(experiment_name="test_experiment")
126
+ report = hplc_controller.get_last_run_method_report()
127
+ vial_location = report.vial_location
128
+
129
+ # Save, analyze or plot the data!
84
130
  chrom = hplc_controller.get_last_run_method_data()
85
-
86
- # afterwards, save, analyze or plot the data!
87
- values = {"x": chrom.A.x, "y": chrom.A.y}
88
- chromatogram_data = pd.DataFrame.from_dict(values)
131
+ chromatogram_data = pd.DataFrame.from_dict({"x": chrom.A.x, "y": chrom.A.y})
89
132
  chromatogram_data.to_csv("Run 10.csv", index=False)
90
133
  ```
91
134
 
@@ -105,6 +148,7 @@ Lucy Hao, Maria Politi
105
148
 
106
149
  - Adapted from [**AnalyticalLabware**](https://github.com/croningp/analyticallabware), created by members in the Cronin
107
150
  Group. Copyright © Cronin Group, used under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) license.
108
- - Adapted from the [MACROS](https://github.com/Bourne-Group/HPLCMethodOptimisationGUI)
109
- used in [**Operator-free HPLC automated method development guided by Bayesian optimization**](https://pubs.rsc.org/en/content/articlelanding/2024/dd/d4dd00062e),
110
- created by members in the Bourne Group. Copyright © Bourne Group, used under the [MIT](https://opensource.org/license/mit) license.
151
+ - Adapted from the [MACROS](https://github.com/Bourne-Group/HPLCMethodOptimisationGUI) used in [**Operator-free HPLC
152
+ automated method development guided by Bayesian optimization**](https://pubs.rsc.org/en/content/articlelanding/2024/dd/d4dd00062e),
153
+ created by members in the Bourne Group. Copyright © Bourne Group, used under
154
+ the [MIT](https://opensource.org/license/mit) license.
@@ -4,8 +4,12 @@
4
4
 
5
5
  [![PyPI Latest Release](https://img.shields.io/pypi/v/pychemstation.svg)](https://pypi.org/project/pychemstation/)
6
6
 
7
+ > **_NOTE:_** If you are running Python **3.8**, use versions 0.**8**.x. If you are running Python **3.9** use versions 0.**8**.x.
8
+ > If you are running Python **>=3.10**, use version 0.**10**.x. You are welcome to use newer pychemstation versions with older Python versions, but functionality
9
+ > is not guaranteed!
10
+
7
11
  Unofficial Python package to control Agilent Chemstation; we are not affiliated with Agilent.
8
- Check out the [docs](https://hein-analytical-control-5e6e85.gitlab.io/) for usage instructions. This project is under
12
+ Check out the [docs](https://pychemstation-e5a086.gitlab.io/pychemstation.html) for usage instructions. This project is under
9
13
  active development, and breaking changes may occur at any moment.
10
14
 
11
15
  ## Getting started
@@ -45,29 +49,55 @@ HPLCTalk_Run
45
49
 
46
50
  ```python
47
51
  from pychemstation.control import HPLCController
52
+ from pychemstation.utils.method_types import *
48
53
  import pandas as pd
49
54
 
50
- # these paths will be unique to your Chemstation setup
51
- DEFAULT_METHOD = "GENERAL-POROSHELL"
52
- DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
53
55
  DEFAULT_METHOD_DIR = "C:\\ChemStation\\1\\Methods\\"
54
- DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data\\"
55
- DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data\\"
56
- SEQUENCE_DIR = "C:\\USERS\\PUBLIC\\DOCUMENTS\\CHEMSTATION\\2\\Sequence\\"
56
+ SEQUENCE_DIR = "C:\\USERS\\PUBLIC\\DOCUMENTS\\CHEMSTATION\\3\\Sequence"
57
+ DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
58
+ DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data"
59
+ DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data"
57
60
 
61
+ # Initialize HPLC Controller
58
62
  hplc_controller = HPLCController(data_dirs=[DATA_DIR_2, DATA_DIR_3],
59
63
  comm_dir=DEFAULT_COMMAND_PATH,
60
- sequence_dir=SEQUENCE_DIR,
61
- method_dir=DEFAULT_METHOD_DIR)
62
-
63
- hplc_controller.preprun()
64
- hplc_controller.switch_method(method_name=DEFAULT_METHOD)
65
- hplc_controller.run_method(experiment_name="Run 10")
64
+ method_dir=DEFAULT_METHOD_DIR,
65
+ sequence_dir=SEQUENCE_DIR)
66
+
67
+ # Switching a method
68
+ hplc_controller.switch_method("General-Poroshell")
69
+
70
+ # Editing a method
71
+ new_method = MethodDetails(
72
+ name="General-Poroshell",
73
+ params=HPLCMethodParams(
74
+ organic_modifier=7,
75
+ flow=0.44),
76
+ timetable=[
77
+ TimeTableEntry(
78
+ start_time=0.10,
79
+ organic_modifer=7,
80
+ flow=0.34
81
+ ),
82
+ TimeTableEntry(
83
+ start_time=4,
84
+ organic_modifer=99,
85
+ flow=0.55
86
+ )
87
+ ],
88
+ stop_time=5,
89
+ post_time=2
90
+ )
91
+ hplc_controller.edit_method(new_method)
92
+
93
+ # Run a method and get a report or data from last run method
94
+ hplc_controller.run_method(experiment_name="test_experiment")
95
+ report = hplc_controller.get_last_run_method_report()
96
+ vial_location = report.vial_location
97
+
98
+ # Save, analyze or plot the data!
66
99
  chrom = hplc_controller.get_last_run_method_data()
67
-
68
- # afterwards, save, analyze or plot the data!
69
- values = {"x": chrom.A.x, "y": chrom.A.y}
70
- chromatogram_data = pd.DataFrame.from_dict(values)
100
+ chromatogram_data = pd.DataFrame.from_dict({"x": chrom.A.x, "y": chrom.A.y})
71
101
  chromatogram_data.to_csv("Run 10.csv", index=False)
72
102
  ```
73
103
 
@@ -87,6 +117,7 @@ Lucy Hao, Maria Politi
87
117
 
88
118
  - Adapted from [**AnalyticalLabware**](https://github.com/croningp/analyticallabware), created by members in the Cronin
89
119
  Group. Copyright © Cronin Group, used under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) license.
90
- - Adapted from the [MACROS](https://github.com/Bourne-Group/HPLCMethodOptimisationGUI)
91
- used in [**Operator-free HPLC automated method development guided by Bayesian optimization**](https://pubs.rsc.org/en/content/articlelanding/2024/dd/d4dd00062e),
92
- created by members in the Bourne Group. Copyright © Bourne Group, used under the [MIT](https://opensource.org/license/mit) license.
120
+ - Adapted from the [MACROS](https://github.com/Bourne-Group/HPLCMethodOptimisationGUI) used in [**Operator-free HPLC
121
+ automated method development guided by Bayesian optimization**](https://pubs.rsc.org/en/content/articlelanding/2024/dd/d4dd00062e),
122
+ created by members in the Bourne Group. Copyright © Bourne Group, used under
123
+ the [MIT](https://opensource.org/license/mit) license.
@@ -0,0 +1,377 @@
1
+ Local Rows
2
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
3
+ SaveSequence _SeqPath$, _SeqFile$
4
+ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
5
+ response$ = _MethFile$
6
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
7
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
8
+ Sleep 0.1
9
+ Print Rows
10
+ response$ = _MethFile$
11
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "FlowFlow")
12
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "SolventCompositionPumpChannel2_Percentage")
13
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "Time")
14
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "FlowFlow")
15
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "SolventCompositionPumpChannel2_Percentage")
16
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "Time")
17
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PumpChannel2_CompositionPercentage")
18
+ response_num = ObjHdrVal("RCPMP1Method[1]", "Flow")
19
+ response_num = ObjHdrVal("RCPMP1Method[1]", "StopTime_Time")
20
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PostTime_Time")
21
+ SetObjHdrVal RCPMP1Method[1], Flow, 0.4
22
+ Sleep 1
23
+ Sleep 0.1
24
+ DownloadRCMethod PMP1
25
+ Sleep 0.1
26
+ Sleep 1
27
+ SetObjHdrText RCPMP1Method[1], PostTime_Mode, Set
28
+ Sleep 1
29
+ Sleep 0.1
30
+ DownloadRCMethod PMP1
31
+ Sleep 0.1
32
+ Sleep 1
33
+ SetObjHdrVal RCPMP1Method[1], PostTime_Time, 4
34
+ Sleep 1
35
+ Sleep 0.1
36
+ DownloadRCMethod PMP1
37
+ Sleep 0.1
38
+ Sleep 1
39
+ SetObjHdrText RCPMP1Method[1], StopTime_Mode, Set
40
+ Sleep 1
41
+ Sleep 0.1
42
+ DownloadRCMethod PMP1
43
+ Sleep 0.1
44
+ Sleep 1
45
+ SetObjHdrVal RCPMP1Method[1], StopTime_Time, 14
46
+ Sleep 1
47
+ Sleep 0.1
48
+ DownloadRCMethod PMP1
49
+ Sleep 0.1
50
+ Sleep 1
51
+ SetObjHdrVal RCPMP1Method[1], PumpChannel2_CompositionPercentage, 22
52
+ Sleep 1
53
+ Sleep 0.1
54
+ DownloadRCMethod PMP1
55
+ Sleep 0.1
56
+ Sleep 1
57
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
58
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
59
+ Sleep 0.1
60
+ Print Rows
61
+ response$ = _MethFile$
62
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "FlowFlow")
63
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "SolventCompositionPumpChannel2_Percentage")
64
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "Time")
65
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "FlowFlow")
66
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "SolventCompositionPumpChannel2_Percentage")
67
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "Time")
68
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PumpChannel2_CompositionPercentage")
69
+ response_num = ObjHdrVal("RCPMP1Method[1]", "Flow")
70
+ response_num = ObjHdrVal("RCPMP1Method[1]", "StopTime_Time")
71
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PostTime_Time")
72
+ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
73
+ response$ = _MethFile$
74
+ Sleep 0.1
75
+ DelTab RCPMP1Method[1], "Timetable"
76
+ Sleep 0.1
77
+ SetObjHdrVal RCPMP1Method[1], PumpChannel2_CompositionPercentage, 5.0
78
+ Sleep 1
79
+ Sleep 0.1
80
+ DownloadRCMethod PMP1
81
+ Sleep 0.1
82
+ Sleep 1
83
+ SetObjHdrVal RCPMP1Method[1], Flow, 0.65
84
+ Sleep 1
85
+ Sleep 0.1
86
+ DownloadRCMethod PMP1
87
+ Sleep 0.1
88
+ Sleep 1
89
+ SetObjHdrText RCPMP1Method[1], StopTime_Mode, Set
90
+ Sleep 1
91
+ Sleep 0.1
92
+ DownloadRCMethod PMP1
93
+ Sleep 0.1
94
+ Sleep 1
95
+ SetObjHdrVal RCPMP1Method[1], StopTime_Time, 4.0
96
+ Sleep 1
97
+ Sleep 0.1
98
+ DownloadRCMethod PMP1
99
+ Sleep 0.1
100
+ Sleep 1
101
+ SetObjHdrText RCPMP1Method[1], PostTime_Mode, Set
102
+ Sleep 1
103
+ Sleep 0.1
104
+ DownloadRCMethod PMP1
105
+ Sleep 0.1
106
+ Sleep 1
107
+ SetObjHdrVal RCPMP1Method[1], PostTime_Time, 1.0
108
+ Sleep 1
109
+ Sleep 0.1
110
+ DownloadRCMethod PMP1
111
+ Sleep 0.1
112
+ Sleep 1
113
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
114
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
115
+ Sleep 0.1
116
+ Print Rows
117
+ Sleep 0.1
118
+ DelTab RCPMP1Method[1], "Timetable"
119
+ Sleep 0.1
120
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
121
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
122
+ NewTab RCPMP1Method[1], "Timetable"
123
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
124
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
125
+ Sleep 0.1
126
+ Print Rows
127
+ Sleep 0.1
128
+ InsTabRow RCPMP1Method[1], "Timetable"
129
+ Sleep 0.1
130
+ Sleep 0.1
131
+ NewColText RCPMP1Method[1], "Timetable", "Function", "SolventComposition"
132
+ Sleep 0.1
133
+ Sleep 0.1
134
+ NewColVal RCPMP1Method[1], "Timetable", "Time", 3.5
135
+ Sleep 0.1
136
+ Sleep 0.1
137
+ NewColVal RCPMP1Method[1], "Timetable", "SolventCompositionPumpChannel2_Percentage", 100.0
138
+ Sleep 0.1
139
+ Sleep 0.1
140
+ InsTabRow RCPMP1Method[1], "Timetable"
141
+ Sleep 0.1
142
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
143
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
144
+ Sleep 0.1
145
+ Print Rows
146
+ Sleep 0.1
147
+ SetTabText "RCPMP1Method[1]", "Timetable", Rows, "Function", "Flow"
148
+ Sleep 0.1
149
+ Sleep 0.1
150
+ NewColVal RCPMP1Method[1], "Timetable", "FlowFlow", 0.65
151
+ Sleep 0.1
152
+ Sleep 0.1
153
+ SetTabVal "RCPMP1Method[1]", "Timetable", Rows, "FlowFlow", 0.65
154
+ Sleep 0.1
155
+ Sleep 1
156
+ Sleep 0.1
157
+ DownloadRCMethod PMP1
158
+ Sleep 0.1
159
+ Sleep 1
160
+ Local Rows
161
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
162
+ SaveSequence _SeqPath$, _SeqFile$
163
+ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
164
+ response$ = _MethFile$
165
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
166
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
167
+ Sleep 0.1
168
+ Print Rows
169
+ response$ = _MethFile$
170
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "FlowFlow")
171
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "SolventCompositionPumpChannel2_Percentage")
172
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "Time")
173
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "FlowFlow")
174
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "SolventCompositionPumpChannel2_Percentage")
175
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "Time")
176
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PumpChannel2_CompositionPercentage")
177
+ response_num = ObjHdrVal("RCPMP1Method[1]", "Flow")
178
+ response_num = ObjHdrVal("RCPMP1Method[1]", "StopTime_Time")
179
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PostTime_Time")
180
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
181
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
182
+ Sleep 0.1
183
+ Print Rows
184
+ Sleep 0.1
185
+ DelTab RCPMP1Method[1], "Timetable"
186
+ Sleep 0.1
187
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
188
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
189
+ NewTab RCPMP1Method[1], "Timetable"
190
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
191
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
192
+ Sleep 0.1
193
+ Print Rows
194
+ Sleep 0.1
195
+ InsTabRow RCPMP1Method[1], "Timetable"
196
+ Sleep 0.1
197
+ Sleep 0.1
198
+ NewColText RCPMP1Method[1], "Timetable", "Function", "SolventComposition"
199
+ Sleep 0.1
200
+ Sleep 0.1
201
+ NewColVal RCPMP1Method[1], "Timetable", "Time", 5
202
+ Sleep 0.1
203
+ Sleep 0.1
204
+ NewColVal RCPMP1Method[1], "Timetable", "SolventCompositionPumpChannel2_Percentage", 22
205
+ Sleep 0.1
206
+ Sleep 0.1
207
+ InsTabRow RCPMP1Method[1], "Timetable"
208
+ Sleep 0.1
209
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
210
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
211
+ Sleep 0.1
212
+ Print Rows
213
+ Sleep 0.1
214
+ SetTabText "RCPMP1Method[1]", "Timetable", Rows, "Function", "Flow"
215
+ Sleep 0.1
216
+ Sleep 0.1
217
+ NewColVal RCPMP1Method[1], "Timetable", "FlowFlow", 0.2
218
+ Sleep 0.1
219
+ Sleep 0.1
220
+ SetTabVal "RCPMP1Method[1]", "Timetable", Rows, "FlowFlow", 0.2
221
+ Sleep 0.1
222
+ Sleep 1
223
+ Sleep 0.1
224
+ DownloadRCMethod PMP1
225
+ Sleep 0.1
226
+ Sleep 1
227
+ Sleep 0.1
228
+ InsTabRow RCPMP1Method[1], "Timetable"
229
+ Sleep 0.1
230
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
231
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
232
+ Sleep 0.1
233
+ Print Rows
234
+ Sleep 0.1
235
+ SetTabText "RCPMP1Method[1]", "Timetable", Rows, "Function", "SolventComposition"
236
+ Sleep 0.1
237
+ Sleep 0.1
238
+ SetTabVal "RCPMP1Method[1]", "Timetable", Rows, "Time", 10
239
+ Sleep 0.1
240
+ Sleep 0.1
241
+ SetTabVal "RCPMP1Method[1]", "Timetable", Rows, "SolventCompositionPumpChannel2_Percentage", 78
242
+ Sleep 0.1
243
+ Sleep 1
244
+ Sleep 0.1
245
+ DownloadRCMethod PMP1
246
+ Sleep 0.1
247
+ Sleep 1
248
+ Sleep 0.1
249
+ InsTabRow RCPMP1Method[1], "Timetable"
250
+ Sleep 0.1
251
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
252
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
253
+ Sleep 0.1
254
+ Print Rows
255
+ Sleep 0.1
256
+ SetTabText "RCPMP1Method[1]", "Timetable", Rows, "Function", "Flow"
257
+ Sleep 0.1
258
+ Sleep 0.1
259
+ SetTabVal "RCPMP1Method[1]", "Timetable", Rows, "FlowFlow", 0.8
260
+ Sleep 0.1
261
+ Sleep 0.1
262
+ SetTabVal "RCPMP1Method[1]", "Timetable", Rows, "Time", 10
263
+ Sleep 0.1
264
+ Sleep 1
265
+ Sleep 0.1
266
+ DownloadRCMethod PMP1
267
+ Sleep 0.1
268
+ Sleep 1
269
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
270
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
271
+ Sleep 0.1
272
+ Print Rows
273
+ response$ = _MethFile$
274
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "FlowFlow")
275
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "SolventCompositionPumpChannel2_Percentage")
276
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 1, "Time")
277
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "FlowFlow")
278
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "SolventCompositionPumpChannel2_Percentage")
279
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 2, "Time")
280
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 3, "FlowFlow")
281
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 3, "SolventCompositionPumpChannel2_Percentage")
282
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 3, "Time")
283
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 4, "FlowFlow")
284
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 4, "SolventCompositionPumpChannel2_Percentage")
285
+ response_num = TabVal("RCPMP1Method[1]", "Timetable", 4, "Time")
286
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PumpChannel2_CompositionPercentage")
287
+ response_num = ObjHdrVal("RCPMP1Method[1]", "Flow")
288
+ response_num = ObjHdrVal("RCPMP1Method[1]", "StopTime_Time")
289
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PostTime_Time")
290
+ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
291
+ response$ = _MethFile$
292
+ Sleep 0.1
293
+ DelTab RCPMP1Method[1], "Timetable"
294
+ Sleep 0.1
295
+ SetObjHdrVal RCPMP1Method[1], PumpChannel2_CompositionPercentage, 5.0
296
+ Sleep 1
297
+ Sleep 0.1
298
+ DownloadRCMethod PMP1
299
+ Sleep 0.1
300
+ Sleep 1
301
+ SetObjHdrVal RCPMP1Method[1], Flow, 0.65
302
+ Sleep 1
303
+ Sleep 0.1
304
+ DownloadRCMethod PMP1
305
+ Sleep 0.1
306
+ Sleep 1
307
+ SetObjHdrText RCPMP1Method[1], StopTime_Mode, Set
308
+ Sleep 1
309
+ Sleep 0.1
310
+ DownloadRCMethod PMP1
311
+ Sleep 0.1
312
+ Sleep 1
313
+ SetObjHdrVal RCPMP1Method[1], StopTime_Time, 4.0
314
+ Sleep 1
315
+ Sleep 0.1
316
+ DownloadRCMethod PMP1
317
+ Sleep 0.1
318
+ Sleep 1
319
+ SetObjHdrText RCPMP1Method[1], PostTime_Mode, Set
320
+ Sleep 1
321
+ Sleep 0.1
322
+ DownloadRCMethod PMP1
323
+ Sleep 0.1
324
+ Sleep 1
325
+ SetObjHdrVal RCPMP1Method[1], PostTime_Time, 1.0
326
+ Sleep 1
327
+ Sleep 0.1
328
+ DownloadRCMethod PMP1
329
+ Sleep 0.1
330
+ Sleep 1
331
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
332
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
333
+ Sleep 0.1
334
+ Print Rows
335
+ Sleep 0.1
336
+ DelTab RCPMP1Method[1], "Timetable"
337
+ Sleep 0.1
338
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
339
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
340
+ Local Rows
341
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
342
+ SaveSequence _SeqPath$, _SeqFile$
343
+ Local Rows
344
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
345
+ SaveSequence _SeqPath$, _SeqFile$
346
+ Local Rows
347
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
348
+ SaveSequence _SeqPath$, _SeqFile$
349
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
350
+ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
351
+ response$ = _MethFile$
352
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
353
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
354
+ Local Rows
355
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
356
+ SaveSequence _SeqPath$, _SeqFile$
357
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
358
+ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
359
+ response$ = _MethFile$
360
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
361
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
362
+ Local Rows
363
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
364
+ SaveSequence _SeqPath$, _SeqFile$
365
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
366
+ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
367
+ response$ = _MethFile$
368
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
369
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
370
+ Local Rows
371
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
372
+ SaveSequence _SeqPath$, _SeqFile$
373
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
374
+ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
375
+ response$ = _MethFile$
376
+ Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
377
+ response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
@@ -1,3 +1,3 @@
1
1
  """
2
2
  .. include:: ../README.md
3
- """
3
+ """
@@ -0,0 +1,4 @@
1
+ from .process_report import CSVProcessor
2
+ from .process_report import TXTProcessor
3
+
4
+ __all__ = ["CSVProcessor", "TXTProcessor"]