pychemstation 0.8.3__tar.gz → 0.8.7__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 (295) hide show
  1. {pychemstation-0.8.3 → pychemstation-0.8.7}/.gitignore +4 -1
  2. {pychemstation-0.8.3 → pychemstation-0.8.7}/.gitlab-ci.yml +1 -3
  3. pychemstation-0.8.7/.pre-commit-config.yaml +10 -0
  4. pychemstation-0.8.7/PKG-INFO +156 -0
  5. {pychemstation-0.8.3 → pychemstation-0.8.7}/README.md +51 -20
  6. pychemstation-0.8.7/out.txt +377 -0
  7. {pychemstation-0.8.3/build/lib → pychemstation-0.8.7}/pychemstation/__init__.py +1 -1
  8. pychemstation-0.8.7/pychemstation/analysis/__init__.py +4 -0
  9. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/analysis/base_spectrum.py +4 -4
  10. {pychemstation-0.8.3/pychemstation/utils → pychemstation-0.8.7/pychemstation/analysis}/chromatogram.py +4 -7
  11. pychemstation-0.8.7/pychemstation/analysis/process_report.py +373 -0
  12. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/README.md +22 -46
  13. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/__init__.py +5 -0
  14. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/controllers/__init__.py +2 -0
  15. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/controllers/comm.py +41 -18
  16. pychemstation-0.8.7/pychemstation/control/controllers/devices/device.py +49 -0
  17. pychemstation-0.8.7/pychemstation/control/controllers/devices/injector.py +61 -0
  18. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/controllers/tables/method.py +266 -111
  19. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/controllers/tables/ms.py +7 -4
  20. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/controllers/tables/sequence.py +171 -82
  21. pychemstation-0.8.7/pychemstation/control/controllers/tables/table.py +375 -0
  22. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/hplc.py +117 -83
  23. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/generated/__init__.py +0 -2
  24. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/generated/dad_method.py +1 -1
  25. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/generated/pump_method.py +15 -19
  26. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/utils/injector_types.py +1 -1
  27. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/utils/macro.py +12 -11
  28. {pychemstation-0.8.3/build/lib → pychemstation-0.8.7}/pychemstation/utils/method_types.py +3 -2
  29. pychemstation-0.8.3/pychemstation/analysis/utils.py → pychemstation-0.8.7/pychemstation/utils/num_utils.py +2 -2
  30. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/utils/parsing.py +1 -11
  31. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/utils/sequence_types.py +4 -5
  32. {pychemstation-0.8.3/pychemstation/analysis → pychemstation-0.8.7/pychemstation/utils}/spec_utils.py +1 -2
  33. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/utils/table_types.py +10 -9
  34. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/utils/tray_types.py +48 -38
  35. {pychemstation-0.8.3 → pychemstation-0.8.7/pychemstation.egg-info}/PKG-INFO +19 -8
  36. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation.egg-info/SOURCES.txt +6 -8
  37. pychemstation-0.8.7/pychemstation.egg-info/requires.txt +14 -0
  38. {pychemstation-0.8.3 → pychemstation-0.8.7}/pyproject.toml +17 -3
  39. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/ACQRES.REG +0 -0
  40. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT01.CSV +0 -0
  41. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT02.CSV +0 -0
  42. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT03.CSV +0 -0
  43. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT04.CSV +0 -0
  44. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT05.CSV +0 -0
  45. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report.TXT +0 -0
  46. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report00.CSV +0 -0
  47. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/CSlbk.ini +5 -0
  48. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/DAMETHOD.REG +0 -0
  49. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/INFO.MTH +0 -0
  50. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1.UV +0 -0
  51. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.ch +0 -0
  52. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.npz +0 -0
  53. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.ch +0 -0
  54. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.npz +0 -0
  55. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.ch +0 -0
  56. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.npz +0 -0
  57. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.ch +0 -0
  58. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.npz +0 -0
  59. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.ch +0 -0
  60. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.npz +0 -0
  61. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.ch +0 -0
  62. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.npz +0 -0
  63. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.ch +0 -0
  64. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.npz +0 -0
  65. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.ch +0 -0
  66. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.npz +0 -0
  67. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DiagResults.REG +0 -0
  68. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/PMP1.AnalyticalResults.drvml +15 -0
  69. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/RUN.LOG +0 -0
  70. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML +0 -0
  71. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML.bak +0 -0
  72. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/WLS1.Sampler.scml +22 -0
  73. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.macaml +1135 -0
  74. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.txt +0 -0
  75. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_MethHist.txt +0 -0
  76. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_damethod.reg +0 -0
  77. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/da.macaml +1053 -0
  78. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/lcdiag.reg +0 -0
  79. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/sample.acaml +2294 -0
  80. pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/single.B +0 -0
  81. pychemstation-0.8.7/tests/constants.py +146 -0
  82. pychemstation-0.8.7/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/RECALIB.MTH +0 -0
  83. pychemstation-0.8.7/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/rpthead.txt +63 -0
  84. pychemstation-0.8.7/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Limsinf.xml +0 -0
  85. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/out.txt +11156 -0
  86. pychemstation-0.8.7/tests/test_integration.py +262 -0
  87. pychemstation-0.8.7/tests/test_method.py +115 -0
  88. pychemstation-0.8.7/tests/test_offline.py +92 -0
  89. pychemstation-0.8.3/tests/test_online_stable.py → pychemstation-0.8.7/tests/test_online.py +123 -61
  90. pychemstation-0.8.7/tests/test_sequence.py +70 -0
  91. {pychemstation-0.8.3 → pychemstation-0.8.7}/update-lib.sh +2 -2
  92. {pychemstation-0.8.3 → pychemstation-0.8.7}/uv.lock +234 -6
  93. pychemstation-0.8.3/build/lib/pychemstation/analysis/__init__.py +0 -1
  94. pychemstation-0.8.3/build/lib/pychemstation/analysis/base_spectrum.py +0 -509
  95. pychemstation-0.8.3/build/lib/pychemstation/analysis/process_report.py +0 -254
  96. pychemstation-0.8.3/build/lib/pychemstation/analysis/spec_utils.py +0 -304
  97. pychemstation-0.8.3/build/lib/pychemstation/analysis/utils.py +0 -63
  98. pychemstation-0.8.3/build/lib/pychemstation/control/__init__.py +0 -4
  99. pychemstation-0.8.3/build/lib/pychemstation/control/comm.py +0 -206
  100. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/__init__.py +0 -9
  101. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/comm.py +0 -208
  102. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/column.py +0 -12
  103. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/dad.py +0 -0
  104. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/device.py +0 -23
  105. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/injector.py +0 -117
  106. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/devices/pump.py +0 -43
  107. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/method.py +0 -338
  108. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/sequence.py +0 -190
  109. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/table_controller.py +0 -266
  110. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/tables/method.py +0 -361
  111. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/tables/ms.py +0 -21
  112. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/tables/sequence.py +0 -211
  113. pychemstation-0.8.3/build/lib/pychemstation/control/controllers/tables/table.py +0 -302
  114. pychemstation-0.8.3/build/lib/pychemstation/control/hplc.py +0 -238
  115. pychemstation-0.8.3/build/lib/pychemstation/control/table/__init__.py +0 -3
  116. pychemstation-0.8.3/build/lib/pychemstation/control/table/method.py +0 -274
  117. pychemstation-0.8.3/build/lib/pychemstation/control/table/sequence.py +0 -210
  118. pychemstation-0.8.3/build/lib/pychemstation/control/table/table_controller.py +0 -201
  119. pychemstation-0.8.3/build/lib/pychemstation/generated/__init__.py +0 -56
  120. pychemstation-0.8.3/build/lib/pychemstation/generated/dad_method.py +0 -367
  121. pychemstation-0.8.3/build/lib/pychemstation/generated/pump_method.py +0 -519
  122. pychemstation-0.8.3/build/lib/pychemstation/utils/chromatogram.py +0 -115
  123. pychemstation-0.8.3/build/lib/pychemstation/utils/injector_types.py +0 -52
  124. pychemstation-0.8.3/build/lib/pychemstation/utils/macro.py +0 -100
  125. pychemstation-0.8.3/build/lib/pychemstation/utils/parsing.py +0 -290
  126. pychemstation-0.8.3/build/lib/pychemstation/utils/sequence_types.py +0 -54
  127. pychemstation-0.8.3/build/lib/pychemstation/utils/table_types.py +0 -92
  128. pychemstation-0.8.3/build/lib/pychemstation/utils/tray_types.py +0 -163
  129. pychemstation-0.8.3/build/lib/tests/constants.py +0 -88
  130. pychemstation-0.8.3/build/lib/tests/test_comb.py +0 -136
  131. pychemstation-0.8.3/build/lib/tests/test_comm.py +0 -65
  132. pychemstation-0.8.3/build/lib/tests/test_inj.py +0 -39
  133. pychemstation-0.8.3/build/lib/tests/test_method.py +0 -99
  134. pychemstation-0.8.3/build/lib/tests/test_nightly.py +0 -80
  135. pychemstation-0.8.3/build/lib/tests/test_proc_rep.py +0 -52
  136. pychemstation-0.8.3/build/lib/tests/test_runs_stable.py +0 -125
  137. pychemstation-0.8.3/build/lib/tests/test_sequence.py +0 -125
  138. pychemstation-0.8.3/build/lib/tests/test_stable.py +0 -276
  139. pychemstation-0.8.3/pychemstation/__init__.py +0 -3
  140. pychemstation-0.8.3/pychemstation/analysis/__init__.py +0 -1
  141. pychemstation-0.8.3/pychemstation/analysis/process_report.py +0 -277
  142. pychemstation-0.8.3/pychemstation/control/controllers/devices/__init__.py +0 -0
  143. pychemstation-0.8.3/pychemstation/control/controllers/devices/device.py +0 -36
  144. pychemstation-0.8.3/pychemstation/control/controllers/devices/injector.py +0 -117
  145. pychemstation-0.8.3/pychemstation/control/controllers/tables/__init__.py +0 -0
  146. pychemstation-0.8.3/pychemstation/control/controllers/tables/table.py +0 -299
  147. pychemstation-0.8.3/pychemstation/utils/__init__.py +0 -0
  148. pychemstation-0.8.3/pychemstation/utils/method_types.py +0 -56
  149. pychemstation-0.8.3/pychemstation/utils/pump_types.py +0 -7
  150. pychemstation-0.8.3/pychemstation.egg-info/PKG-INFO +0 -110
  151. pychemstation-0.8.3/pychemstation.egg-info/requires.txt +0 -6
  152. pychemstation-0.8.3/setup.py +0 -33
  153. pychemstation-0.8.3/tests/__init__.py +0 -0
  154. pychemstation-0.8.3/tests/constants.py +0 -112
  155. pychemstation-0.8.3/tests/test_nightly.py +0 -24
  156. pychemstation-0.8.3/tests/test_offline_stable.py +0 -51
  157. pychemstation-0.8.3/tests/test_runs_stable.py +0 -112
  158. {pychemstation-0.8.3 → pychemstation-0.8.7}/.coverage +0 -0
  159. {pychemstation-0.8.3 → pychemstation-0.8.7}/CHANGELOG.md +0 -0
  160. {pychemstation-0.8.3 → pychemstation-0.8.7}/CONTRIBUTING.md +0 -0
  161. {pychemstation-0.8.3 → pychemstation-0.8.7}/LICENSE +0 -0
  162. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/index.html +0 -0
  163. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/analysis/base_spectrum.html +0 -0
  164. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/analysis/spec_utils.html +0 -0
  165. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/analysis/utils.html +0 -0
  166. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/analysis.html +0 -0
  167. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/control/chromatogram.html +0 -0
  168. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/control/hplc.html +0 -0
  169. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/control.html +0 -0
  170. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/generated.html +0 -0
  171. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/utils/chemstation.html +0 -0
  172. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/utils/constants.html +0 -0
  173. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/utils/hplc_param_types.html +0 -0
  174. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation/utils.html +0 -0
  175. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/pychemstation.html +0 -0
  176. {pychemstation-0.8.3 → pychemstation-0.8.7}/doc/search.js +0 -0
  177. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation/control/controllers/README.md +0 -0
  178. {pychemstation-0.8.3/build/lib → pychemstation-0.8.7}/pychemstation/control/controllers/devices/__init__.py +0 -0
  179. {pychemstation-0.8.3/build/lib → pychemstation-0.8.7}/pychemstation/control/controllers/tables/__init__.py +0 -0
  180. {pychemstation-0.8.3/build/lib → pychemstation-0.8.7}/pychemstation/utils/__init__.py +0 -0
  181. {pychemstation-0.8.3/build/lib → pychemstation-0.8.7}/pychemstation/utils/pump_types.py +0 -0
  182. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation.egg-info/dependency_links.txt +0 -0
  183. {pychemstation-0.8.3 → pychemstation-0.8.7}/pychemstation.egg-info/top_level.txt +0 -0
  184. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/0_2025-03-15 19-14-35.PDF +0 -0
  185. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/ACQRES.REG +0 -0
  186. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/CSlbk.ini +0 -0
  187. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DA.M/DAMETHOD.REG +0 -0
  188. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DA.M/INFO.MTH +0 -0
  189. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DA.M/RECALIB.MTH +0 -0
  190. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DA.M/rpthead.txt +0 -0
  191. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1.UV +0 -0
  192. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1A.ch +0 -0
  193. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1A.npz +0 -0
  194. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1B.ch +0 -0
  195. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1B.npz +0 -0
  196. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1C.ch +0 -0
  197. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1C.npz +0 -0
  198. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1D.ch +0 -0
  199. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1D.npz +0 -0
  200. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1E.ch +0 -0
  201. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DAD1E.npz +0 -0
  202. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/DiagResults.REG +0 -0
  203. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/PMP1.AnalyticalResults.drvml +0 -0
  204. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/REPORT01.CSV +0 -0
  205. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/REPORT02.CSV +0 -0
  206. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/REPORT03.CSV +0 -0
  207. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/REPORT04.CSV +0 -0
  208. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/REPORT05.CSV +0 -0
  209. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/RUN.LOG +0 -0
  210. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/Report.TXT +0 -0
  211. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/Report00.CSV +0 -0
  212. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/Report01.xls +0 -0
  213. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML +0 -0
  214. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML.bak +0 -0
  215. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/WLS1.Sampler.scml +0 -0
  216. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/acq.macaml +0 -0
  217. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/acq.txt +0 -0
  218. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/acq_MethHist.txt +0 -0
  219. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/acq_damethod.reg +0 -0
  220. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/da.macaml +0 -0
  221. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/lcdiag.reg +0 -0
  222. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/sample.acaml +0 -0
  223. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/0_2025-03-15 19-14-35.D/single.B +0 -0
  224. {pychemstation-0.8.3/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M → pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M}/RECALIB.MTH +0 -0
  225. {pychemstation-0.8.3/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M → pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M}/rpthead.txt +0 -0
  226. {pychemstation-0.8.3/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D → pychemstation-0.8.7/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D}/Limsinf.xml +0 -0
  227. {pychemstation-0.8.3/build/lib → pychemstation-0.8.7}/tests/__init__.py +0 -0
  228. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_talk.mac +0 -0
  229. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/CSlbk.ini +0 -0
  230. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/ACQ.MS +0 -0
  231. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.ConfigXML.xml +0 -0
  232. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodMetaData.xml +0 -0
  233. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodXML.xml +0 -0
  234. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.ConfigXML.xml +0 -0
  235. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodMetaData.xml +0 -0
  236. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodXML.xml +0 -0
  237. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.ConfigXML.xml +0 -0
  238. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodMetaData.xml +0 -0
  239. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodXML.xml +0 -0
  240. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.ConfigXML.xml +0 -0
  241. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodMetaData.xml +0 -0
  242. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodXML.xml +0 -0
  243. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.PretreatXML.xml +0 -0
  244. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/DAMETHOD.REG +0 -0
  245. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/FIA.REG +0 -0
  246. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INFO.MTH +0 -0
  247. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INJECTOR.MTH +0 -0
  248. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/MassHunterIntegration.ini +0 -0
  249. {pychemstation-0.8.3/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M → pychemstation-0.8.7/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M}/RECALIB.MTH +0 -0
  250. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RapidControl.InstrumentConfig.xml +0 -0
  251. {pychemstation-0.8.3/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M → pychemstation-0.8.7/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M}/rpthead.txt +0 -0
  252. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/smpl_pur.mth +0 -0
  253. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/Methods.Reg +0 -0
  254. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.B +0 -0
  255. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.LOG +0 -0
  256. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.S +0 -0
  257. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.Start +0 -0
  258. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/ACQRES.REG +0 -0
  259. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/CSlbk.ini +0 -0
  260. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/DAMETHOD.REG +0 -0
  261. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/INFO.MTH +0 -0
  262. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1.UV +0 -0
  263. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.ch +0 -0
  264. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.npz +0 -0
  265. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.ch +0 -0
  266. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.npz +0 -0
  267. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.ch +0 -0
  268. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.npz +0 -0
  269. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.ch +0 -0
  270. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.npz +0 -0
  271. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.ch +0 -0
  272. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.npz +0 -0
  273. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DiagResults.REG +0 -0
  274. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/PMP1.AnalyticalResults.drvml +0 -0
  275. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT01.CSV +0 -0
  276. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT02.CSV +0 -0
  277. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT03.CSV +0 -0
  278. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT04.CSV +0 -0
  279. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT05.CSV +0 -0
  280. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/RUN.LOG +0 -0
  281. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report.TXT +0 -0
  282. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report00.CSV +0 -0
  283. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report01.xls +0 -0
  284. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML +0 -0
  285. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML.bak +0 -0
  286. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/WLS1.Sampler.scml +0 -0
  287. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.macaml +0 -0
  288. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.txt +0 -0
  289. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_MethHist.txt +0 -0
  290. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_damethod.reg +0 -0
  291. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/da.macaml +0 -0
  292. {pychemstation-0.8.3 → pychemstation-0.8.7}/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
  293. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/lcdiag.reg +0 -0
  294. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/sequence.acam_ +0 -0
  295. {pychemstation-0.8.3 → pychemstation-0.8.7}/tests/hplc_testing 2025-03-27 17-13-47/sequence.acaml +0 -0
@@ -4,4 +4,7 @@
4
4
  .venv
5
5
  **/__pycache__/
6
6
  target
7
- .DS_Store
7
+ .DS_Store
8
+ build
9
+ env
10
+ 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
@@ -0,0 +1,156 @@
1
+ Metadata-Version: 2.4
2
+ Name: pychemstation
3
+ Version: 0.8.7
4
+ Summary: Library to interact with Chemstation software, primarily used in Hein lab.
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
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3.8
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Requires-Python: ~=3.8
17
+ Requires-Dist: aghplctools==4.8.6
18
+ Requires-Dist: coverage>=7.6.1
19
+ Requires-Dist: matplotlib>=3.7.5
20
+ Requires-Dist: pandas>=2.0.3
21
+ Requires-Dist: pdoc>=14.7.0
22
+ Requires-Dist: polling>=0.3.2
23
+ Requires-Dist: pre-commit>=3.5.0
24
+ Requires-Dist: pytest>=7.3.5
25
+ Requires-Dist: rainbow-api>=1.0.10
26
+ Requires-Dist: result>=0.17.0
27
+ Requires-Dist: scipy>=1.10.1
28
+ Requires-Dist: seabreeze>=2.9.2
29
+ Requires-Dist: setuptools>=75.3.2
30
+ Requires-Dist: twine>=6.1.0
31
+ Requires-Dist: xsdata>=24.9
32
+ Description-Content-Type: text/markdown
33
+
34
+ # Agilent HPLC Macro Control
35
+
36
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/pychemstation)
37
+
38
+ [![PyPI Latest Release](https://img.shields.io/pypi/v/pychemstation.svg)](https://pypi.org/project/pychemstation/)
39
+
40
+ > **_NOTE:_** If you are running Python **3.8**, use versions 0.**8**.x. If you are running Python **3.9** use versions 0.**9**.x.
41
+ > 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
42
+ > is not guaranteed!
43
+
44
+ Unofficial Python package to control Agilent Chemstation; we are not affiliated with Agilent.
45
+ Check out the [docs](https://pychemstation-e5a086.gitlab.io/pychemstation.html) for usage instructions. This project is under
46
+ active development, and breaking changes may occur at any moment.
47
+
48
+ ## Getting started
49
+
50
+ Before running this library, these are the steps you need to complete.
51
+
52
+ ### Add python package
53
+
54
+ ```bash
55
+ pip install pychemstation
56
+ ```
57
+
58
+ ### Add required MACRO script
59
+
60
+ 1. Open ChemStation
61
+ 2. Run this in the ChemStation command line: ``Print _AutoPath$``. Go to this path in your file navigator, as this is
62
+ where you will put your
63
+ MACRO file(s).
64
+ 3. Download the [
65
+ `hplc_talk.mac`](https://gitlab.com/heingroup/device-api/pychemstation/-/blob/main/tests/hplc_talk.mac).
66
+ - On line 69, change the path name up to `\cmd` and `\reply`. For instance, you should have:
67
+ `MonitorFile "[my path]\cmd", "[my path]\reply"`
68
+ - and then add this file to the folder from the previous step.
69
+ 4. To have these MACRO files be read by ChemStation, you must either:
70
+ - Open ChemStation and run:
71
+
72
+ ```MACRO
73
+ macro hplc_talk.mac
74
+ HPLCTalk_Run
75
+ ```
76
+
77
+ - OR add the above lines to a MACRO file named: `user.mac`, and then put `user.mac` in the same folder from step 3.
78
+ - ChemStation will automatically load these MACRO files for you. However, sometimes this does not work, and if it
79
+ does not, you will have to run the lines in the `user.mac` manually.
80
+
81
+ ## Example Usage
82
+
83
+ ```python
84
+ from pychemstation.control import HPLCController
85
+ from pychemstation.utils.method_types import *
86
+ import pandas as pd
87
+
88
+ DEFAULT_METHOD_DIR = "C:\\ChemStation\\1\\Methods\\"
89
+ SEQUENCE_DIR = "C:\\USERS\\PUBLIC\\DOCUMENTS\\CHEMSTATION\\3\\Sequence"
90
+ DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
91
+ DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data"
92
+ DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data"
93
+
94
+ # Initialize HPLC Controller
95
+ hplc_controller = HPLCController(data_dirs=[DATA_DIR_2, DATA_DIR_3],
96
+ comm_dir=DEFAULT_COMMAND_PATH,
97
+ method_dir=DEFAULT_METHOD_DIR,
98
+ sequence_dir=SEQUENCE_DIR)
99
+
100
+ # Switching a method
101
+ hplc_controller.switch_method("General-Poroshell")
102
+
103
+ # Editing a method
104
+ new_method = MethodDetails(
105
+ name="General-Poroshell",
106
+ params=HPLCMethodParams(
107
+ organic_modifier=7,
108
+ flow=0.44),
109
+ timetable=[
110
+ TimeTableEntry(
111
+ start_time=0.10,
112
+ organic_modifer=7,
113
+ flow=0.34
114
+ ),
115
+ TimeTableEntry(
116
+ start_time=4,
117
+ organic_modifer=99,
118
+ flow=0.55
119
+ )
120
+ ],
121
+ stop_time=5,
122
+ post_time=2
123
+ )
124
+ hplc_controller.edit_method(new_method)
125
+
126
+ # Run a method and get a report or data from last run method
127
+ hplc_controller.run_method(experiment_name="test_experiment")
128
+ report = hplc_controller.get_last_run_method_report()
129
+ vial_location = report.vial_location
130
+
131
+ # Save, analyze or plot the data!
132
+ chrom = hplc_controller.get_last_run_method_data()
133
+ chromatogram_data = pd.DataFrame.from_dict({"x": chrom.A.x, "y": chrom.A.y})
134
+ chromatogram_data.to_csv("Run 10.csv", index=False)
135
+ ```
136
+
137
+ ## Adding your own MACROs
138
+
139
+ If you wish to add your own MACRO functions, then all you need to do is write you MACRO (using Agilent's) MACRO guide,
140
+ put the file in the `user.mac` file and then list the function you want to use.
141
+
142
+ ## Developing
143
+
144
+ If you would like to contribute to this project, check out
145
+ our [GitLab](https://gitlab.com/heingroup/device-api/pychemstation)!
146
+
147
+ ## Authors and Acknowledgements
148
+
149
+ Lucy Hao, Maria Politi
150
+
151
+ - Adapted from [**AnalyticalLabware**](https://github.com/croningp/analyticallabware), created by members in the Cronin
152
+ Group. Copyright © Cronin Group, used under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) license.
153
+ - Adapted from the [MACROS](https://github.com/Bourne-Group/HPLCMethodOptimisationGUI) used in [**Operator-free HPLC
154
+ automated method development guided by Bayesian optimization**](https://pubs.rsc.org/en/content/articlelanding/2024/dd/d4dd00062e),
155
+ created by members in the Bourne Group. Copyright © Bourne Group, used under
156
+ 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.**9**.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"]