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