pychemstation 0.10.10__tar.gz → 0.10.12__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 (378) hide show
  1. pychemstation-0.10.12/.git +1 -0
  2. {pychemstation-0.10.10 → pychemstation-0.10.12}/.pre-commit-config.yaml +7 -1
  3. {pychemstation-0.10.10 → pychemstation-0.10.12}/PKG-INFO +2 -2
  4. {pychemstation-0.10.10 → pychemstation-0.10.12}/README.md +1 -1
  5. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/controllers/comm.py +1 -1
  6. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/controllers/data_aq/method.py +128 -211
  7. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/controllers/data_aq/sequence.py +74 -51
  8. pychemstation-0.10.12/pychemstation/control/controllers/devices/column.py +61 -0
  9. pychemstation-0.10.12/pychemstation/control/controllers/devices/dad.py +85 -0
  10. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/controllers/devices/injector.py +20 -12
  11. pychemstation-0.10.12/pychemstation/control/controllers/devices/pump.py +131 -0
  12. pychemstation-0.10.12/pychemstation/control/controllers/devices/sample_info.py +27 -0
  13. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/hplc.py +36 -12
  14. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/abc_tables/device.py +17 -3
  15. pychemstation-0.10.12/pychemstation/utils/abc_tables/table.py +324 -0
  16. pychemstation-0.10.12/pychemstation/utils/device_types.py +73 -0
  17. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/macro.py +2 -0
  18. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/table_types.py +65 -8
  19. {pychemstation-0.10.10 → pychemstation-0.10.12}/pyproject.toml +1 -1
  20. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/constants.py +2 -14
  21. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/dtypes/test_abc.py +3 -1
  22. pychemstation-0.10.12/tests/edit/test_edit_col.py +63 -0
  23. pychemstation-0.10.12/tests/edit/test_edit_dad.py +50 -0
  24. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/edit/test_edit_method.py +3 -5
  25. pychemstation-0.10.12/tests/load/test_load_column.py +48 -0
  26. pychemstation-0.10.12/tests/load/test_load_dad.py +41 -0
  27. pychemstation-0.10.12/tests/load/test_load_pump.py +46 -0
  28. pychemstation-0.10.12/tests/load/test_load_sample_info.py +37 -0
  29. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/load/test_switch_sequence.py +3 -5
  30. {pychemstation-0.10.10 → pychemstation-0.10.12}/uv.lock +546 -517
  31. pychemstation-0.10.10/out.txt +0 -511
  32. pychemstation-0.10.10/pychemstation/utils/abc_tables/table.py +0 -233
  33. pychemstation-0.10.10/pychemstation/utils/device_types.py +0 -7
  34. pychemstation-0.10.10/tests/comm/out.txt +0 -309
  35. pychemstation-0.10.10/tests/load/test_load_dad.py +0 -0
  36. pychemstation-0.10.10/tests/load/test_load_sample_info.py +0 -0
  37. {pychemstation-0.10.10 → pychemstation-0.10.12}/.gitignore +0 -0
  38. {pychemstation-0.10.10 → pychemstation-0.10.12}/.gitlab-ci.yml +0 -0
  39. {pychemstation-0.10.10 → pychemstation-0.10.12}/CHANGELOG.md +0 -0
  40. {pychemstation-0.10.10 → pychemstation-0.10.12}/CONTRIBUTING.md +0 -0
  41. {pychemstation-0.10.10 → pychemstation-0.10.12}/LICENSE +0 -0
  42. {pychemstation-0.10.10 → pychemstation-0.10.12}/branch-rename.sh +0 -0
  43. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/index.html +0 -0
  44. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/analysis/base_spectrum.html +0 -0
  45. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/analysis/spec_utils.html +0 -0
  46. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/analysis/utils.html +0 -0
  47. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/analysis.html +0 -0
  48. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/control/chromatogram.html +0 -0
  49. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/control/hplc.html +0 -0
  50. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/control.html +0 -0
  51. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/generated.html +0 -0
  52. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/utils/chemstation.html +0 -0
  53. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/utils/constants.html +0 -0
  54. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/utils/hplc_param_types.html +0 -0
  55. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation/utils.html +0 -0
  56. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/pychemstation.html +0 -0
  57. {pychemstation-0.10.10 → pychemstation-0.10.12}/doc/search.js +0 -0
  58. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/__init__.py +0 -0
  59. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/analysis/__init__.py +0 -0
  60. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/analysis/base_spectrum.py +0 -0
  61. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/analysis/chromatogram.py +0 -0
  62. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/analysis/process_report.py +0 -0
  63. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/README.md +0 -0
  64. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/__init__.py +0 -0
  65. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/controllers/README.md +0 -0
  66. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/controllers/__init__.py +0 -0
  67. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/controllers/data_aq/__init__.py +0 -0
  68. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/control/controllers/devices/__init__.py +0 -0
  69. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/generated/__init__.py +0 -0
  70. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/generated/dad_method.py +0 -0
  71. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/generated/pump_method.py +0 -0
  72. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/__init__.py +0 -0
  73. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/abc_tables/__init__.py +0 -0
  74. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/abc_tables/abc_comm.py +0 -0
  75. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/abc_tables/run.py +0 -0
  76. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/injector_types.py +0 -0
  77. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/method_types.py +0 -0
  78. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/mocking/__init__.py +0 -0
  79. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/mocking/mock_comm.py +0 -0
  80. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/mocking/mock_hplc.py +0 -0
  81. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/num_utils.py +0 -0
  82. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/parsing.py +0 -0
  83. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/sequence_types.py +0 -0
  84. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/spec_utils.py +0 -0
  85. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation/utils/tray_types.py +0 -0
  86. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation.egg-info/PKG-INFO +0 -0
  87. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation.egg-info/SOURCES.txt +0 -0
  88. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation.egg-info/dependency_links.txt +0 -0
  89. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation.egg-info/requires.txt +0 -0
  90. {pychemstation-0.10.10 → pychemstation-0.10.12}/pychemstation.egg-info/top_level.txt +0 -0
  91. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/__init__.py +0 -0
  92. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/comm/test_dirs.py +0 -0
  93. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/comm/test_hplc_comm.py +0 -0
  94. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/edit/test_edit_sequence.py +0 -0
  95. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/0_2025-03-15 19-14-35.PDF +0 -0
  96. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/ACQRES.REG +0 -0
  97. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/CSlbk.ini +0 -0
  98. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DA.M/DAMETHOD.REG +0 -0
  99. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DA.M/INFO.MTH +0 -0
  100. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DA.M/RECALIB.MTH +0 -0
  101. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DA.M/rpthead.txt +0 -0
  102. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1.UV +0 -0
  103. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1A.ch +0 -0
  104. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1A.npz +0 -0
  105. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1B.ch +0 -0
  106. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1B.npz +0 -0
  107. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1C.ch +0 -0
  108. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1C.npz +0 -0
  109. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1D.ch +0 -0
  110. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1D.npz +0 -0
  111. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1E.ch +0 -0
  112. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DAD1E.npz +0 -0
  113. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/DiagResults.REG +0 -0
  114. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/PMP1.AnalyticalResults.drvml +0 -0
  115. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/REPORT01.CSV +0 -0
  116. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/REPORT02.CSV +0 -0
  117. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/REPORT03.CSV +0 -0
  118. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/REPORT04.CSV +0 -0
  119. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/REPORT05.CSV +0 -0
  120. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/RUN.LOG +0 -0
  121. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/Report.TXT +0 -0
  122. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/Report00.CSV +0 -0
  123. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/Report01.xls +0 -0
  124. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/SAMPLE.XML +0 -0
  125. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/SAMPLE.XML.bak +0 -0
  126. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/WLS1.Sampler.scml +0 -0
  127. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/acq.macaml +0 -0
  128. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/acq.txt +0 -0
  129. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/acq_MethHist.txt +0 -0
  130. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/acq_damethod.reg +0 -0
  131. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/da.macaml +0 -0
  132. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/lcdiag.reg +0 -0
  133. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/sample.acaml +0 -0
  134. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/0_2025-03-15 19-14-35.D/single.B +0 -0
  135. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/ACQRES.REG +0 -0
  136. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT01.CSV +0 -0
  137. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT02.CSV +0 -0
  138. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT03.CSV +0 -0
  139. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT04.CSV +0 -0
  140. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT05.CSV +0 -0
  141. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report.TXT +0 -0
  142. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report00.CSV +0 -0
  143. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/CSlbk.ini +0 -0
  144. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/DAMETHOD.REG +0 -0
  145. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/INFO.MTH +0 -0
  146. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/RECALIB.MTH +0 -0
  147. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/rpthead.txt +0 -0
  148. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1.UV +0 -0
  149. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.ch +0 -0
  150. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.npz +0 -0
  151. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.ch +0 -0
  152. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.npz +0 -0
  153. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.ch +0 -0
  154. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.npz +0 -0
  155. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.ch +0 -0
  156. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.npz +0 -0
  157. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.ch +0 -0
  158. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.npz +0 -0
  159. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.ch +0 -0
  160. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.npz +0 -0
  161. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.ch +0 -0
  162. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.npz +0 -0
  163. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.ch +0 -0
  164. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.npz +0 -0
  165. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DiagResults.REG +0 -0
  166. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Limsinf.xml +0 -0
  167. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/PMP1.AnalyticalResults.drvml +0 -0
  168. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/RUN.LOG +0 -0
  169. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML +0 -0
  170. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML.bak +0 -0
  171. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/WLS1.Sampler.scml +0 -0
  172. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.macaml +0 -0
  173. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.txt +0 -0
  174. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_MethHist.txt +0 -0
  175. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_damethod.reg +0 -0
  176. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/da.macaml +0 -0
  177. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/lcdiag.reg +0 -0
  178. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/sample.acaml +0 -0
  179. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/single.B +0 -0
  180. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/CSlbk.ini +0 -0
  181. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/ACQ.MS +0 -0
  182. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.ConfigXML.xml +0 -0
  183. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodMetaData.xml +0 -0
  184. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodXML.xml +0 -0
  185. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.ConfigXML.xml +0 -0
  186. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodMetaData.xml +0 -0
  187. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodXML.xml +0 -0
  188. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.ConfigXML.xml +0 -0
  189. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodMetaData.xml +0 -0
  190. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodXML.xml +0 -0
  191. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.ConfigXML.xml +0 -0
  192. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodMetaData.xml +0 -0
  193. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodXML.xml +0 -0
  194. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.PretreatXML.xml +0 -0
  195. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/DAMETHOD.REG +0 -0
  196. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/FIA.REG +0 -0
  197. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INFO.MTH +0 -0
  198. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INJECTOR.MTH +0 -0
  199. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/MassHunterIntegration.ini +0 -0
  200. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RECALIB.MTH +0 -0
  201. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RapidControl.InstrumentConfig.xml +0 -0
  202. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/rpthead.txt +0 -0
  203. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/smpl_pur.mth +0 -0
  204. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/Methods.Reg +0 -0
  205. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.B +0 -0
  206. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.LOG +0 -0
  207. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.S +0 -0
  208. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.Start +0 -0
  209. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/ACQRES.REG +0 -0
  210. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/CSlbk.ini +0 -0
  211. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/DAMETHOD.REG +0 -0
  212. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/INFO.MTH +0 -0
  213. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/RECALIB.MTH +0 -0
  214. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/rpthead.txt +0 -0
  215. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1.UV +0 -0
  216. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.ch +0 -0
  217. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.npz +0 -0
  218. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.ch +0 -0
  219. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.npz +0 -0
  220. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.ch +0 -0
  221. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.npz +0 -0
  222. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.ch +0 -0
  223. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.npz +0 -0
  224. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.ch +0 -0
  225. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.npz +0 -0
  226. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DiagResults.REG +0 -0
  227. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Limsinf.xml +0 -0
  228. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/PMP1.AnalyticalResults.drvml +0 -0
  229. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT01.CSV +0 -0
  230. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT02.CSV +0 -0
  231. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT03.CSV +0 -0
  232. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT04.CSV +0 -0
  233. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT05.CSV +0 -0
  234. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/RUN.LOG +0 -0
  235. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report.TXT +0 -0
  236. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report00.CSV +0 -0
  237. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report01.xls +0 -0
  238. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML +0 -0
  239. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML.bak +0 -0
  240. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/WLS1.Sampler.scml +0 -0
  241. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.macaml +0 -0
  242. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.txt +0 -0
  243. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_MethHist.txt +0 -0
  244. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_damethod.reg +0 -0
  245. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/da.macaml +0 -0
  246. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/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
  247. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/lcdiag.reg +0 -0
  248. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/sequence.acam_ +0 -0
  249. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/ACQRES.REG +0 -0
  250. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/CSlbk.ini +0 -0
  251. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/DAMETHOD.REG +0 -0
  252. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/INFO.MTH +0 -0
  253. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/RECALIB.MTH +0 -0
  254. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/rpthead.txt +0 -0
  255. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1.UV +0 -0
  256. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1A.ch +0 -0
  257. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1A.npz +0 -0
  258. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1B.ch +0 -0
  259. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1B.npz +0 -0
  260. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1C.ch +0 -0
  261. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1C.npz +0 -0
  262. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1D.ch +0 -0
  263. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1D.npz +0 -0
  264. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1E.ch +0 -0
  265. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1E.npz +0 -0
  266. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DiagResults.REG +0 -0
  267. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Limsinf.xml +0 -0
  268. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/PMP1.AnalyticalResults.drvml +0 -0
  269. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT01.CSV +0 -0
  270. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT02.CSV +0 -0
  271. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT03.CSV +0 -0
  272. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT04.CSV +0 -0
  273. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT05.CSV +0 -0
  274. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/RUN.LOG +0 -0
  275. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report.TXT +0 -0
  276. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report00.CSV +0 -0
  277. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report01.xls +0 -0
  278. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/SAMPLE.XML +0 -0
  279. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/SAMPLE.XML.bak +0 -0
  280. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/WLS1.Sampler.scml +0 -0
  281. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq.macaml +0 -0
  282. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq.txt +0 -0
  283. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq_MethHist.txt +0 -0
  284. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq_damethod.reg +0 -0
  285. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/da.macaml +0 -0
  286. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
  287. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/lcdiag.reg +0 -0
  288. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/sequence.acam_ +0 -0
  289. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/ACQRES.REG +0 -0
  290. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/CSlbk.ini +0 -0
  291. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/DAMETHOD.REG +0 -0
  292. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/INFO.MTH +0 -0
  293. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/RECALIB.MTH +0 -0
  294. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/rpthead.txt +0 -0
  295. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1.UV +0 -0
  296. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1A.ch +0 -0
  297. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1A.npz +0 -0
  298. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1B.ch +0 -0
  299. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1B.npz +0 -0
  300. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1C.ch +0 -0
  301. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1C.npz +0 -0
  302. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1D.ch +0 -0
  303. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1D.npz +0 -0
  304. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1E.ch +0 -0
  305. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1E.npz +0 -0
  306. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DiagResults.REG +0 -0
  307. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Limsinf.xml +0 -0
  308. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/PMP1.AnalyticalResults.drvml +0 -0
  309. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT01.CSV +0 -0
  310. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT02.CSV +0 -0
  311. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT03.CSV +0 -0
  312. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT04.CSV +0 -0
  313. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT05.CSV +0 -0
  314. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/RUN.LOG +0 -0
  315. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report.TXT +0 -0
  316. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report00.CSV +0 -0
  317. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report01.xls +0 -0
  318. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/SAMPLE.XML +0 -0
  319. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/SAMPLE.XML.bak +0 -0
  320. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/WLS1.Sampler.scml +0 -0
  321. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq.macaml +0 -0
  322. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq.txt +0 -0
  323. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq_MethHist.txt +0 -0
  324. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq_damethod.reg +0 -0
  325. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/da.macaml +0 -0
  326. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
  327. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/lcdiag.reg +0 -0
  328. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/sequence.acam_ +0 -0
  329. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/ACQRES.REG +0 -0
  330. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/CSlbk.ini +0 -0
  331. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/DAMETHOD.REG +0 -0
  332. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/INFO.MTH +0 -0
  333. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/RECALIB.MTH +0 -0
  334. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/rpthead.txt +0 -0
  335. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1.UV +0 -0
  336. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1A.ch +0 -0
  337. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1A.npz +0 -0
  338. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1B.ch +0 -0
  339. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1B.npz +0 -0
  340. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1C.ch +0 -0
  341. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1C.npz +0 -0
  342. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1D.ch +0 -0
  343. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1D.npz +0 -0
  344. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1E.ch +0 -0
  345. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1E.npz +0 -0
  346. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DiagResults.REG +0 -0
  347. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Limsinf.xml +0 -0
  348. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/PMP1.AnalyticalResults.drvml +0 -0
  349. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT01.CSV +0 -0
  350. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT02.CSV +0 -0
  351. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT03.CSV +0 -0
  352. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT04.CSV +0 -0
  353. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT05.CSV +0 -0
  354. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/RUN.LOG +0 -0
  355. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report.TXT +0 -0
  356. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report00.CSV +0 -0
  357. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report01.xls +0 -0
  358. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/SAMPLE.XML +0 -0
  359. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/SAMPLE.XML.bak +0 -0
  360. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/WLS1.Sampler.scml +0 -0
  361. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq.macaml +0 -0
  362. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq.txt +0 -0
  363. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq_MethHist.txt +0 -0
  364. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq_damethod.reg +0 -0
  365. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/da.macaml +0 -0
  366. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
  367. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/lcdiag.reg +0 -0
  368. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/sequence.acam_ +0 -0
  369. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/hplc_testing 2025-03-27 17-13-47/sequence.acaml +0 -0
  370. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/files/test_offline.py +0 -0
  371. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/hplc_talk.mac +0 -0
  372. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/load/test_load_bottles.py +0 -0
  373. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/load/test_load_injector.py +0 -0
  374. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/load/test_switch_method.py +0 -0
  375. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/run/test_run_method.py +0 -0
  376. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/run/test_run_sequence.py +0 -0
  377. {pychemstation-0.10.10 → pychemstation-0.10.12}/tests/test_integration.py +0 -0
  378. {pychemstation-0.10.10 → pychemstation-0.10.12}/update-lib.sh +0 -0
@@ -0,0 +1 @@
1
+ gitdir: /Users/lucyhao/Codes/hein-lab/pychemstation-worktree/pychemstation/.git/worktrees/v0.10.x
@@ -11,4 +11,10 @@ repos:
11
11
  - repo: https://github.com/pre-commit/mirrors-mypy
12
12
  rev: v1.15.0
13
13
  hooks:
14
- - id: mypy
14
+ - id: mypy
15
+ - repo: local
16
+ hooks:
17
+ - id: delete-debug-files
18
+ name: delete-debug-files
19
+ entry: bash -c 'find . -name "out.txt" -type f -delete'
20
+ language: system
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pychemstation
3
- Version: 0.10.10
3
+ Version: 0.10.12
4
4
  Summary: Library to interact with Chemstation software, primarily used in Hein lab
5
5
  Project-URL: Documentation, https://pychemstation-e5a086.gitlab.io/pychemstation.html
6
6
  Project-URL: Repository, https://gitlab.com/heingroup/device-api/pychemstation
@@ -23,7 +23,7 @@ Requires-Dist: scipy>=1.10.1
23
23
  Requires-Dist: xsdata>=24.9
24
24
  Description-Content-Type: text/markdown
25
25
 
26
- # Agilent HPLC Macro Control
26
+ # pychemstation: A Python package for automated control of Chemstation using MACROs
27
27
 
28
28
  ![PyPI - Downloads](https://img.shields.io/pypi/dm/pychemstation)
29
29
 
@@ -1,4 +1,4 @@
1
- # Agilent HPLC Macro Control
1
+ # pychemstation: A Python package for automated control of Chemstation using MACROs
2
2
 
3
3
  ![PyPI - Downloads](https://img.shields.io/pypi/dm/pychemstation)
4
4
 
@@ -54,7 +54,7 @@ class CommunicationController(ABCCommunicationController):
54
54
  raise RuntimeError("Failed to get number.")
55
55
 
56
56
  def get_text_val(self, cmd: str) -> str:
57
- tries = 10
57
+ tries = 5
58
58
  for _ in range(tries):
59
59
  self.send(Command.GET_TEXT_VAL_CMD.value.format(cmd=cmd))
60
60
  res = self.receive()
@@ -5,12 +5,16 @@ import time
5
5
  import warnings
6
6
  from typing import Dict, List, Optional, Union, Tuple
7
7
 
8
- from result import Err, Ok, Result
8
+ from result import Err, Result, Ok
9
9
 
10
- from pychemstation.analysis.chromatogram import (
10
+ from ..devices.column import ColumnController
11
+ from ..devices.dad import DADController
12
+ from ..devices.pump import PumpController
13
+ from ..devices.sample_info import SampleInfo
14
+ from ....analysis.chromatogram import (
11
15
  TIME_FORMAT,
12
- AgilentChannelChromatogramData,
13
16
  AgilentHPLCChromatogram,
17
+ AgilentChannelChromatogramData,
14
18
  )
15
19
 
16
20
  from ....analysis.process_report import AgilentReport, ReportType
@@ -20,12 +24,13 @@ from ....utils.macro import Command
20
24
  from ....utils.method_types import (
21
25
  HPLCMethodParams,
22
26
  MethodDetails,
27
+ TimeTableEntry,
23
28
  Param,
24
29
  PType,
25
- TimeTableEntry,
26
30
  )
27
- from ....utils.table_types import RegisterFlag, T, Table, TableOperation
31
+ from ....utils.table_types import RegisterFlag, T, Table
28
32
  from ..devices.injector import InjectorController
33
+ from ....utils.tray_types import Tray
29
34
 
30
35
 
31
36
  class MethodController(RunController):
@@ -38,9 +43,17 @@ class MethodController(RunController):
38
43
  data_dirs: Optional[List[str]],
39
44
  table: Table,
40
45
  offline: bool,
41
- injector_controller: InjectorController,
46
+ injector: InjectorController,
47
+ pump: PumpController,
48
+ dad: DADController,
49
+ column: ColumnController,
50
+ sample_info: SampleInfo,
42
51
  ):
43
- self.injector_controller = injector_controller
52
+ self.injector = injector
53
+ self.pump = pump
54
+ self.dad = dad
55
+ self.column = column
56
+ self.sample_info = sample_info
44
57
  self.data_files: List[str] = []
45
58
  super().__init__(
46
59
  controller=controller,
@@ -50,6 +63,9 @@ class MethodController(RunController):
50
63
  offline=offline,
51
64
  )
52
65
 
66
+ def get_sample_location(self) -> Tray:
67
+ return self.sample_info.get_location()
68
+
53
69
  def get_current_method_name(self) -> str:
54
70
  self.sleepy_send(Command.GET_METHOD_CMD)
55
71
  res = self.receive()
@@ -60,18 +76,8 @@ class MethodController(RunController):
60
76
  def get_method_params(self) -> HPLCMethodParams:
61
77
  if self.controller:
62
78
  return HPLCMethodParams(
63
- organic_modifier=self.controller.get_num_val(
64
- cmd=TableOperation.GET_OBJ_HDR_VAL.value.format(
65
- register=self.table_locator.register,
66
- register_flag=RegisterFlag.SOLVENT_B_COMPOSITION,
67
- )
68
- ),
69
- flow=self.controller.get_num_val(
70
- cmd=TableOperation.GET_OBJ_HDR_VAL.value.format(
71
- register=self.table_locator.register,
72
- register_flag=RegisterFlag.FLOW,
73
- )
74
- ),
79
+ organic_modifier=self.get_om(),
80
+ flow=self.get_flow(),
75
81
  )
76
82
  raise ValueError("Communication controller is offline!")
77
83
 
@@ -114,23 +120,20 @@ class MethodController(RunController):
114
120
  return entries
115
121
 
116
122
  def load(self) -> MethodDetails:
117
- rows = self.get_num_rows()
118
- if rows.is_ok():
119
- method_name = self.get_method_name()
120
- timetable_rows = self.get_timetable(int(rows.ok_value.num_response))
121
- params = self.get_method_params()
122
- stop_time = self.get_stop_time()
123
- post_time = self.get_post_time()
124
- self.table_state = MethodDetails(
125
- name=method_name,
126
- timetable=timetable_rows,
127
- stop_time=stop_time,
128
- post_time=post_time,
129
- params=params,
130
- )
131
- return self.table_state
132
- else:
133
- raise RuntimeError(rows.err_value)
123
+ rows = self.get_row_count_safely()
124
+ method_name = self.get_method_name()
125
+ timetable_rows = self.get_timetable(rows)
126
+ params = self.get_method_params()
127
+ stop_time = self.get_stop_time()
128
+ post_time = self.get_post_time()
129
+ self.table_state = MethodDetails(
130
+ name=method_name,
131
+ timetable=timetable_rows,
132
+ stop_time=stop_time,
133
+ post_time=post_time,
134
+ params=params,
135
+ )
136
+ return self.table_state
134
137
 
135
138
  def get_method_name(self):
136
139
  self.send(Command.GET_METHOD_CMD)
@@ -138,26 +141,6 @@ class MethodController(RunController):
138
141
  method_name = res.ok_value.string_response
139
142
  return method_name
140
143
 
141
- def get_post_time(self) -> Union[int, float]:
142
- if self.controller:
143
- return self.controller.get_num_val(
144
- cmd=TableOperation.GET_OBJ_HDR_VAL.value.format(
145
- register=self.table_locator.register,
146
- register_flag=RegisterFlag.POST_TIME,
147
- )
148
- )
149
- raise ValueError("Communication controller is not online!")
150
-
151
- def get_stop_time(self) -> Union[int, float]:
152
- if self.controller:
153
- return self.controller.get_num_val(
154
- cmd=TableOperation.GET_OBJ_HDR_VAL.value.format(
155
- register=self.table_locator.register,
156
- register_flag=RegisterFlag.MAX_TIME,
157
- )
158
- )
159
- raise ValueError("Communication controller is not online!")
160
-
161
144
  def get_total_runtime(self) -> Union[int, float]:
162
145
  """Returns total method runtime in minutes."""
163
146
  return self.get_post_time() + self.get_stop_time()
@@ -217,20 +200,14 @@ class MethodController(RunController):
217
200
  self.edit_method_timetable(updated_method.timetable)
218
201
 
219
202
  if save:
220
- self.send(
221
- Command.SAVE_METHOD_CMD.value.format(
222
- commit_msg=f"saved method at {str(time.time())}"
223
- )
224
- )
203
+ self.save_method()
225
204
 
226
- def edit_initial_om(self, new_om: Union[int, float]):
227
- self._validate_organic_modifier(new_om)
228
- initial_organic_modifier: Param = Param(
229
- val=new_om,
230
- chemstation_key=RegisterFlag.SOLVENT_B_COMPOSITION,
231
- ptype=PType.NUM,
205
+ def save_method(self):
206
+ self.send(
207
+ Command.SAVE_METHOD_CMD.value.format(
208
+ commit_msg=f"saved method at {str(time.time())}"
209
+ )
232
210
  )
233
- self._update_param(initial_organic_modifier)
234
211
 
235
212
  def _validate_organic_modifier(self, new_om):
236
213
  if not (isinstance(new_om, int) or isinstance(new_om, float)):
@@ -240,13 +217,6 @@ class MethodController(RunController):
240
217
  if new_om > 100:
241
218
  raise ValueError("Organic modifer must be less than 100.")
242
219
 
243
- def edit_flow(self, new_flow: Union[int, float]):
244
- self._validate_flow(new_flow)
245
- flow: Param = Param(
246
- val=new_flow, chemstation_key=RegisterFlag.FLOW, ptype=PType.NUM
247
- )
248
- self._update_param(flow)
249
-
250
220
  def _validate_flow(self, new_flow):
251
221
  if not (isinstance(new_flow, int) or isinstance(new_flow, float)):
252
222
  raise ValueError("Flow must be int or float")
@@ -255,38 +225,12 @@ class MethodController(RunController):
255
225
  if new_flow >= 5.0:
256
226
  raise ValueError("Flow must be less than 5.0")
257
227
 
258
- def edit_stop_time(self, new_stop_time: Union[int, float]):
259
- self.validate_stop_time(new_stop_time)
260
- stop_time: Param = Param(
261
- val=new_stop_time,
262
- chemstation_key=RegisterFlag.MAX_TIME,
263
- ptype=PType.NUM,
264
- )
265
- self._update_param(
266
- Param(
267
- val="Set", chemstation_key=RegisterFlag.STOPTIME_MODE, ptype=PType.STR
268
- )
269
- )
270
- self._update_param(stop_time)
271
-
272
228
  def validate_stop_time(self, new_stop_time):
273
229
  if not (isinstance(new_stop_time, int) or isinstance(new_stop_time, float)):
274
230
  raise ValueError("Stop time must be int or float")
275
231
  if new_stop_time < 0:
276
232
  raise ValueError("Stop time must be positive")
277
233
 
278
- def edit_post_time(self, new_post_time: Union[int, float]):
279
- self.validate_post_time(new_post_time)
280
- post_time: Param = Param(
281
- val=new_post_time,
282
- chemstation_key=RegisterFlag.POST_TIME,
283
- ptype=PType.NUM,
284
- )
285
- self._update_param(
286
- Param(val="Set", chemstation_key=RegisterFlag.POSTIME_MODE, ptype=PType.STR)
287
- )
288
- self._update_param(post_time)
289
-
290
234
  def validate_post_time(self, new_post_time):
291
235
  if not (isinstance(new_post_time, int) or isinstance(new_post_time, float)):
292
236
  raise ValueError("Post time must be int or float")
@@ -301,59 +245,14 @@ class MethodController(RunController):
301
245
  new_post_time: Union[int, float] | None,
302
246
  ):
303
247
  self.delete_table()
304
- self.edit_initial_om(new_initial_om)
248
+ self._validate_flow(new_flow)
249
+ self.validate_post_time(new_post_time)
250
+ self._validate_organic_modifier(new_initial_om)
251
+ self.validate_stop_time(new_stop_time)
305
252
  self.edit_flow(new_flow)
306
- if new_stop_time:
307
- self.edit_stop_time(new_stop_time)
308
- else:
309
- self._update_param(
310
- Param(
311
- val="Off",
312
- chemstation_key=RegisterFlag.STOPTIME_MODE,
313
- ptype=PType.STR,
314
- )
315
- )
316
- if new_post_time:
317
- self.edit_post_time(new_post_time)
318
- else:
319
- self._update_param(
320
- Param(
321
- val="Off",
322
- chemstation_key=RegisterFlag.POSTIME_MODE,
323
- ptype=PType.STR,
324
- )
325
- )
326
-
327
- def _update_param(self, method_param: Param):
328
- """Change a method parameter, changes what is visibly seen in Chemstation GUI.
329
- (changes the first row in the timetable)
330
-
331
- :param method_param: a parameter to update for currently loaded method.
332
- """
333
- register = self.table_locator.register
334
- setting_command = (
335
- TableOperation.UPDATE_OBJ_HDR_VAL
336
- if method_param.ptype == PType.NUM
337
- else TableOperation.UPDATE_OBJ_HDR_TEXT
338
- )
339
- if isinstance(method_param.chemstation_key, list):
340
- for register_flag in method_param.chemstation_key:
341
- self.sleepy_send(
342
- setting_command.value.format(
343
- register=register,
344
- register_flag=register_flag,
345
- val=method_param.val,
346
- )
347
- )
348
- else:
349
- self.sleepy_send(
350
- setting_command.value.format(
351
- register=register,
352
- register_flag=method_param.chemstation_key,
353
- val=method_param.val,
354
- )
355
- )
356
- self.download()
253
+ self.edit_initial_om(new_initial_om)
254
+ self.edit_stop_time(new_stop_time)
255
+ self.edit_post_time(new_post_time)
357
256
 
358
257
  def download(self):
359
258
  self.sleepy_send("DownloadRCMethod PMP1")
@@ -443,62 +342,6 @@ class MethodController(RunController):
443
342
  self.download()
444
343
  return time_added, flow_added, om_added, function_added
445
344
 
446
- # if first_row:
447
- # time_added = False
448
- # flow_row_method: Callable = (
449
- # self.add_new_col_text
450
- # if row.flow and not row.organic_modifer
451
- # else self._edit_row_text
452
- # )
453
- # if row.organic_modifer:
454
- # self.add_row()
455
- # self.add_new_col_text(
456
- # col_name=RegisterFlag.FUNCTION,
457
- # val=RegisterFlag.SOLVENT_COMPOSITION.value,
458
- # )
459
- # if not time_added:
460
- # time_added = True
461
- # self.add_new_col_num(col_name=RegisterFlag.TIME, val=row.start_time)
462
- # self.add_new_col_num(
463
- # col_name=RegisterFlag.TIMETABLE_SOLVENT_B_COMPOSITION,
464
- # val=row.organic_modifer,
465
- # )
466
- # if row.flow:
467
- # self.add_row()
468
- # self.get_num_rows()
469
- # flow_row_method(
470
- # col_name=RegisterFlag.FUNCTION, val=RegisterFlag.FLOW.value
471
- # )
472
- # if not time_added:
473
- # time_added = True
474
- # self.add_new_col_num(col_name=RegisterFlag.TIME, val=row.start_time)
475
- # self.add_new_col_num(col_name=RegisterFlag.TIMETABLE_FLOW, val=row.flow)
476
- # self._edit_row_num(col_name=RegisterFlag.TIMETABLE_FLOW, val=row.flow)
477
- # self.download()
478
- # else:
479
- # if row.organic_modifer:
480
- # self.add_row()
481
- # self.get_num_rows()
482
- # self._edit_row_text(
483
- # col_name=RegisterFlag.FUNCTION,
484
- # val=RegisterFlag.SOLVENT_COMPOSITION.value,
485
- # )
486
- # self._edit_row_num(col_name=RegisterFlag.TIME, val=row.start_time)
487
- # self._edit_row_num(
488
- # col_name=RegisterFlag.TIMETABLE_SOLVENT_B_COMPOSITION,
489
- # val=row.organic_modifer,
490
- # )
491
- # self.download()
492
- # if row.flow:
493
- # self.add_row()
494
- # self.get_num_rows()
495
- # self._edit_row_text(
496
- # col_name=RegisterFlag.FUNCTION, val=RegisterFlag.FLOW.value
497
- # )
498
- # self._edit_row_num(col_name=RegisterFlag.TIMETABLE_FLOW, val=row.flow)
499
- # self._edit_row_num(col_name=RegisterFlag.TIME, val=row.start_time)
500
- # self.download()
501
-
502
345
  def edit_method_timetable(self, timetable_rows: List[TimeTableEntry]):
503
346
  self.get_num_rows()
504
347
  self.delete_table()
@@ -508,8 +351,8 @@ class MethodController(RunController):
508
351
  res = self.get_num_rows()
509
352
 
510
353
  self.new_table()
511
- num_rows = self.get_num_rows()
512
- if num_rows.ok_value.num_response != 0:
354
+ num_rows = self.get_row_count_safely()
355
+ if num_rows != 0:
513
356
  raise ValueError("Should be zero rows!")
514
357
 
515
358
  time_added = False
@@ -644,3 +487,77 @@ class MethodController(RunController):
644
487
  Row {i + 1} ({timetable[i].start_time}) has a smaller or equal starttime than row {i} ({start_time})"""
645
488
  )
646
489
  self._validate_row(row)
490
+
491
+ def get_om(self):
492
+ return self._read_num_param(RegisterFlag.SOLVENT_B_COMPOSITION)
493
+
494
+ def get_flow(self):
495
+ return self._read_num_param(RegisterFlag.FLOW)
496
+
497
+ def get_post_time(self) -> Union[int, float]:
498
+ return self._read_num_param(RegisterFlag.POST_TIME)
499
+
500
+ def get_stop_time(self) -> Union[int, float]:
501
+ return self._read_num_param(RegisterFlag.MAX_TIME)
502
+
503
+ def edit_post_time(self, new_post_time: Optional[int | float]):
504
+ if new_post_time:
505
+ post_time: Param = Param(
506
+ val=new_post_time,
507
+ chemstation_key=RegisterFlag.POST_TIME,
508
+ ptype=PType.NUM,
509
+ )
510
+ self._update_param(
511
+ Param(
512
+ val="Set",
513
+ chemstation_key=RegisterFlag.POSTIME_MODE,
514
+ ptype=PType.STR,
515
+ )
516
+ )
517
+ self._update_param(post_time)
518
+ else:
519
+ self._update_param(
520
+ Param(
521
+ val="Off",
522
+ chemstation_key=RegisterFlag.POSTIME_MODE,
523
+ ptype=PType.STR,
524
+ )
525
+ )
526
+
527
+ def edit_stop_time(self, new_stop_time: Optional[int | float]):
528
+ if new_stop_time:
529
+ stop_time: Param = Param(
530
+ val=new_stop_time,
531
+ chemstation_key=RegisterFlag.MAX_TIME,
532
+ ptype=PType.NUM,
533
+ )
534
+ self._update_param(
535
+ Param(
536
+ val="Set",
537
+ chemstation_key=RegisterFlag.STOPTIME_MODE,
538
+ ptype=PType.STR,
539
+ )
540
+ )
541
+ self._update_param(stop_time)
542
+ else:
543
+ self._update_param(
544
+ Param(
545
+ val="Off",
546
+ chemstation_key=RegisterFlag.STOPTIME_MODE,
547
+ ptype=PType.STR,
548
+ )
549
+ )
550
+
551
+ def edit_flow(self, new_flow: Union[int, float]):
552
+ flow: Param = Param(
553
+ val=new_flow, chemstation_key=RegisterFlag.FLOW, ptype=PType.NUM
554
+ )
555
+ self._update_param(flow)
556
+
557
+ def edit_initial_om(self, new_om: Union[int, float]):
558
+ initial_organic_modifier: Param = Param(
559
+ val=new_om,
560
+ chemstation_key=RegisterFlag.SOLVENT_B_COMPOSITION,
561
+ ptype=PType.NUM,
562
+ )
563
+ self._update_param(initial_organic_modifier)