pychemstation 0.10.12__tar.gz → 0.10.13__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 (385) hide show
  1. pychemstation-0.10.13/.vscode/settings.json +12 -0
  2. {pychemstation-0.10.12 → pychemstation-0.10.13}/PKG-INFO +1 -1
  3. pychemstation-0.10.13/cmd +1 -0
  4. pychemstation-0.10.13/out.txt +8 -0
  5. pychemstation-0.10.13/paper.bib +89 -0
  6. pychemstation-0.10.13/paper.md +133 -0
  7. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/data_aq/sequence.py +18 -10
  8. pychemstation-0.10.13/pychemstation/control/controllers/devices/__init__.py +6 -0
  9. {pychemstation-0.10.12 → pychemstation-0.10.13}/pyproject.toml +2 -2
  10. pychemstation-0.10.13/tests/comm/__init__.py +0 -0
  11. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/constants.py +2 -1
  12. pychemstation-0.10.13/tests/dtypes/__init__.py +0 -0
  13. pychemstation-0.10.13/tests/edit/__init__.py +0 -0
  14. pychemstation-0.10.13/tests/files/__init__.py +0 -0
  15. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/test_offline.py +10 -0
  16. pychemstation-0.10.13/tests/load/__init__.py +0 -0
  17. pychemstation-0.10.13/tests/load/test_load_bottles.py +0 -0
  18. pychemstation-0.10.13/tests/run/__init__.py +0 -0
  19. {pychemstation-0.10.12 → pychemstation-0.10.13}/uv.lock +2 -4
  20. pychemstation-0.10.12/.git +0 -1
  21. pychemstation-0.10.12/pychemstation/control/controllers/devices/__init__.py +0 -3
  22. {pychemstation-0.10.12 → pychemstation-0.10.13}/.gitignore +0 -0
  23. {pychemstation-0.10.12 → pychemstation-0.10.13}/.gitlab-ci.yml +0 -0
  24. {pychemstation-0.10.12 → pychemstation-0.10.13}/.pre-commit-config.yaml +0 -0
  25. {pychemstation-0.10.12 → pychemstation-0.10.13}/CHANGELOG.md +0 -0
  26. {pychemstation-0.10.12 → pychemstation-0.10.13}/CONTRIBUTING.md +0 -0
  27. {pychemstation-0.10.12 → pychemstation-0.10.13}/LICENSE +0 -0
  28. {pychemstation-0.10.12 → pychemstation-0.10.13}/README.md +0 -0
  29. {pychemstation-0.10.12 → pychemstation-0.10.13}/branch-rename.sh +0 -0
  30. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/index.html +0 -0
  31. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis/base_spectrum.html +0 -0
  32. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis/spec_utils.html +0 -0
  33. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis/utils.html +0 -0
  34. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis.html +0 -0
  35. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/control/chromatogram.html +0 -0
  36. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/control/hplc.html +0 -0
  37. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/control.html +0 -0
  38. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/generated.html +0 -0
  39. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils/chemstation.html +0 -0
  40. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils/constants.html +0 -0
  41. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils/hplc_param_types.html +0 -0
  42. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils.html +0 -0
  43. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation.html +0 -0
  44. {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/search.js +0 -0
  45. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/__init__.py +0 -0
  46. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/analysis/__init__.py +0 -0
  47. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/analysis/base_spectrum.py +0 -0
  48. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/analysis/chromatogram.py +0 -0
  49. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/analysis/process_report.py +0 -0
  50. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/README.md +0 -0
  51. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/__init__.py +0 -0
  52. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/README.md +0 -0
  53. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/__init__.py +0 -0
  54. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/comm.py +0 -0
  55. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/data_aq/__init__.py +0 -0
  56. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/data_aq/method.py +0 -0
  57. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/column.py +0 -0
  58. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/dad.py +0 -0
  59. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/injector.py +0 -0
  60. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/pump.py +0 -0
  61. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/sample_info.py +0 -0
  62. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/hplc.py +0 -0
  63. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/generated/__init__.py +0 -0
  64. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/generated/dad_method.py +0 -0
  65. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/generated/pump_method.py +0 -0
  66. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/__init__.py +0 -0
  67. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/__init__.py +0 -0
  68. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/abc_comm.py +0 -0
  69. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/device.py +0 -0
  70. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/run.py +0 -0
  71. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/table.py +0 -0
  72. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/device_types.py +0 -0
  73. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/injector_types.py +0 -0
  74. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/macro.py +0 -0
  75. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/method_types.py +0 -0
  76. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/mocking/__init__.py +0 -0
  77. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/mocking/mock_comm.py +0 -0
  78. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/mocking/mock_hplc.py +0 -0
  79. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/num_utils.py +0 -0
  80. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/parsing.py +0 -0
  81. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/sequence_types.py +0 -0
  82. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/spec_utils.py +0 -0
  83. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/table_types.py +0 -0
  84. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/tray_types.py +0 -0
  85. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/PKG-INFO +0 -0
  86. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/SOURCES.txt +0 -0
  87. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/dependency_links.txt +0 -0
  88. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/requires.txt +0 -0
  89. {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/top_level.txt +0 -0
  90. /pychemstation-0.10.12/tests/__init__.py → /pychemstation-0.10.13/reply +0 -0
  91. /pychemstation-0.10.12/tests/load/test_load_bottles.py → /pychemstation-0.10.13/tests/__init__.py +0 -0
  92. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/comm/test_dirs.py +0 -0
  93. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/comm/test_hplc_comm.py +0 -0
  94. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/dtypes/test_abc.py +0 -0
  95. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/edit/test_edit_col.py +0 -0
  96. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/edit/test_edit_dad.py +0 -0
  97. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/edit/test_edit_method.py +0 -0
  98. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/edit/test_edit_sequence.py +0 -0
  99. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/0_2025-03-15 19-14-35.PDF +0 -0
  100. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/ACQRES.REG +0 -0
  101. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/CSlbk.ini +0 -0
  102. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DA.M/DAMETHOD.REG +0 -0
  103. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DA.M/INFO.MTH +0 -0
  104. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DA.M/RECALIB.MTH +0 -0
  105. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DA.M/rpthead.txt +0 -0
  106. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1.UV +0 -0
  107. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1A.ch +0 -0
  108. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1A.npz +0 -0
  109. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1B.ch +0 -0
  110. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1B.npz +0 -0
  111. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1C.ch +0 -0
  112. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1C.npz +0 -0
  113. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1D.ch +0 -0
  114. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1D.npz +0 -0
  115. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1E.ch +0 -0
  116. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1E.npz +0 -0
  117. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DiagResults.REG +0 -0
  118. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/PMP1.AnalyticalResults.drvml +0 -0
  119. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT01.CSV +0 -0
  120. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT02.CSV +0 -0
  121. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT03.CSV +0 -0
  122. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT04.CSV +0 -0
  123. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT05.CSV +0 -0
  124. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/RUN.LOG +0 -0
  125. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/Report.TXT +0 -0
  126. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/Report00.CSV +0 -0
  127. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/Report01.xls +0 -0
  128. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/SAMPLE.XML +0 -0
  129. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/SAMPLE.XML.bak +0 -0
  130. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/WLS1.Sampler.scml +0 -0
  131. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/acq.macaml +0 -0
  132. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/acq.txt +0 -0
  133. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/acq_MethHist.txt +0 -0
  134. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/acq_damethod.reg +0 -0
  135. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/da.macaml +0 -0
  136. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/lcdiag.reg +0 -0
  137. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/sample.acaml +0 -0
  138. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/single.B +0 -0
  139. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/ACQRES.REG +0 -0
  140. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT01.CSV +0 -0
  141. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT02.CSV +0 -0
  142. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT03.CSV +0 -0
  143. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT04.CSV +0 -0
  144. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT05.CSV +0 -0
  145. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report.TXT +0 -0
  146. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report00.CSV +0 -0
  147. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/CSlbk.ini +0 -0
  148. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/DAMETHOD.REG +0 -0
  149. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/INFO.MTH +0 -0
  150. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/RECALIB.MTH +0 -0
  151. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/rpthead.txt +0 -0
  152. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1.UV +0 -0
  153. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.ch +0 -0
  154. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.npz +0 -0
  155. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.ch +0 -0
  156. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.npz +0 -0
  157. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.ch +0 -0
  158. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.npz +0 -0
  159. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.ch +0 -0
  160. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.npz +0 -0
  161. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.ch +0 -0
  162. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.npz +0 -0
  163. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.ch +0 -0
  164. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.npz +0 -0
  165. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.ch +0 -0
  166. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.npz +0 -0
  167. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.ch +0 -0
  168. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.npz +0 -0
  169. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DiagResults.REG +0 -0
  170. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Limsinf.xml +0 -0
  171. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/PMP1.AnalyticalResults.drvml +0 -0
  172. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/RUN.LOG +0 -0
  173. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML +0 -0
  174. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML.bak +0 -0
  175. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/WLS1.Sampler.scml +0 -0
  176. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.macaml +0 -0
  177. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.txt +0 -0
  178. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_MethHist.txt +0 -0
  179. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_damethod.reg +0 -0
  180. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/da.macaml +0 -0
  181. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/lcdiag.reg +0 -0
  182. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/sample.acaml +0 -0
  183. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/single.B +0 -0
  184. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/CSlbk.ini +0 -0
  185. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/ACQ.MS +0 -0
  186. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.ConfigXML.xml +0 -0
  187. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodMetaData.xml +0 -0
  188. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodXML.xml +0 -0
  189. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.ConfigXML.xml +0 -0
  190. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodMetaData.xml +0 -0
  191. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodXML.xml +0 -0
  192. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.ConfigXML.xml +0 -0
  193. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodMetaData.xml +0 -0
  194. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodXML.xml +0 -0
  195. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.ConfigXML.xml +0 -0
  196. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodMetaData.xml +0 -0
  197. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodXML.xml +0 -0
  198. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.PretreatXML.xml +0 -0
  199. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/DAMETHOD.REG +0 -0
  200. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/FIA.REG +0 -0
  201. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INFO.MTH +0 -0
  202. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INJECTOR.MTH +0 -0
  203. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/MassHunterIntegration.ini +0 -0
  204. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RECALIB.MTH +0 -0
  205. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RapidControl.InstrumentConfig.xml +0 -0
  206. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/rpthead.txt +0 -0
  207. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/smpl_pur.mth +0 -0
  208. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/Methods.Reg +0 -0
  209. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.B +0 -0
  210. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.LOG +0 -0
  211. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.S +0 -0
  212. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.Start +0 -0
  213. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/ACQRES.REG +0 -0
  214. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/CSlbk.ini +0 -0
  215. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/DAMETHOD.REG +0 -0
  216. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/INFO.MTH +0 -0
  217. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/RECALIB.MTH +0 -0
  218. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/rpthead.txt +0 -0
  219. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1.UV +0 -0
  220. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.ch +0 -0
  221. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.npz +0 -0
  222. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.ch +0 -0
  223. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.npz +0 -0
  224. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.ch +0 -0
  225. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.npz +0 -0
  226. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.ch +0 -0
  227. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.npz +0 -0
  228. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.ch +0 -0
  229. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.npz +0 -0
  230. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DiagResults.REG +0 -0
  231. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Limsinf.xml +0 -0
  232. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/PMP1.AnalyticalResults.drvml +0 -0
  233. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT01.CSV +0 -0
  234. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT02.CSV +0 -0
  235. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT03.CSV +0 -0
  236. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT04.CSV +0 -0
  237. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT05.CSV +0 -0
  238. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/RUN.LOG +0 -0
  239. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report.TXT +0 -0
  240. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report00.CSV +0 -0
  241. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report01.xls +0 -0
  242. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML +0 -0
  243. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML.bak +0 -0
  244. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/WLS1.Sampler.scml +0 -0
  245. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.macaml +0 -0
  246. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.txt +0 -0
  247. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_MethHist.txt +0 -0
  248. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_damethod.reg +0 -0
  249. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/da.macaml +0 -0
  250. {pychemstation-0.10.12 → pychemstation-0.10.13}/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
  251. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/lcdiag.reg +0 -0
  252. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/sequence.acam_ +0 -0
  253. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/ACQRES.REG +0 -0
  254. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/CSlbk.ini +0 -0
  255. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/DAMETHOD.REG +0 -0
  256. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/INFO.MTH +0 -0
  257. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/RECALIB.MTH +0 -0
  258. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/rpthead.txt +0 -0
  259. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1.UV +0 -0
  260. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1A.ch +0 -0
  261. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1A.npz +0 -0
  262. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1B.ch +0 -0
  263. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1B.npz +0 -0
  264. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1C.ch +0 -0
  265. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1C.npz +0 -0
  266. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1D.ch +0 -0
  267. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1D.npz +0 -0
  268. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1E.ch +0 -0
  269. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1E.npz +0 -0
  270. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DiagResults.REG +0 -0
  271. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Limsinf.xml +0 -0
  272. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/PMP1.AnalyticalResults.drvml +0 -0
  273. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT01.CSV +0 -0
  274. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT02.CSV +0 -0
  275. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT03.CSV +0 -0
  276. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT04.CSV +0 -0
  277. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT05.CSV +0 -0
  278. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/RUN.LOG +0 -0
  279. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report.TXT +0 -0
  280. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report00.CSV +0 -0
  281. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report01.xls +0 -0
  282. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/SAMPLE.XML +0 -0
  283. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/SAMPLE.XML.bak +0 -0
  284. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/WLS1.Sampler.scml +0 -0
  285. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq.macaml +0 -0
  286. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq.txt +0 -0
  287. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq_MethHist.txt +0 -0
  288. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq_damethod.reg +0 -0
  289. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/da.macaml +0 -0
  290. {pychemstation-0.10.12 → pychemstation-0.10.13}/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
  291. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/lcdiag.reg +0 -0
  292. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/sequence.acam_ +0 -0
  293. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/ACQRES.REG +0 -0
  294. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/CSlbk.ini +0 -0
  295. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/DAMETHOD.REG +0 -0
  296. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/INFO.MTH +0 -0
  297. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/RECALIB.MTH +0 -0
  298. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/rpthead.txt +0 -0
  299. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1.UV +0 -0
  300. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1A.ch +0 -0
  301. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1A.npz +0 -0
  302. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1B.ch +0 -0
  303. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1B.npz +0 -0
  304. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1C.ch +0 -0
  305. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1C.npz +0 -0
  306. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1D.ch +0 -0
  307. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1D.npz +0 -0
  308. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1E.ch +0 -0
  309. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1E.npz +0 -0
  310. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DiagResults.REG +0 -0
  311. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Limsinf.xml +0 -0
  312. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/PMP1.AnalyticalResults.drvml +0 -0
  313. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT01.CSV +0 -0
  314. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT02.CSV +0 -0
  315. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT03.CSV +0 -0
  316. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT04.CSV +0 -0
  317. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT05.CSV +0 -0
  318. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/RUN.LOG +0 -0
  319. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report.TXT +0 -0
  320. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report00.CSV +0 -0
  321. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report01.xls +0 -0
  322. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/SAMPLE.XML +0 -0
  323. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/SAMPLE.XML.bak +0 -0
  324. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/WLS1.Sampler.scml +0 -0
  325. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq.macaml +0 -0
  326. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq.txt +0 -0
  327. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq_MethHist.txt +0 -0
  328. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq_damethod.reg +0 -0
  329. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/da.macaml +0 -0
  330. {pychemstation-0.10.12 → pychemstation-0.10.13}/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
  331. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/lcdiag.reg +0 -0
  332. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/sequence.acam_ +0 -0
  333. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/ACQRES.REG +0 -0
  334. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/CSlbk.ini +0 -0
  335. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/DAMETHOD.REG +0 -0
  336. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/INFO.MTH +0 -0
  337. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/RECALIB.MTH +0 -0
  338. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/rpthead.txt +0 -0
  339. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1.UV +0 -0
  340. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1A.ch +0 -0
  341. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1A.npz +0 -0
  342. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1B.ch +0 -0
  343. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1B.npz +0 -0
  344. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1C.ch +0 -0
  345. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1C.npz +0 -0
  346. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1D.ch +0 -0
  347. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1D.npz +0 -0
  348. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1E.ch +0 -0
  349. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1E.npz +0 -0
  350. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DiagResults.REG +0 -0
  351. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Limsinf.xml +0 -0
  352. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/PMP1.AnalyticalResults.drvml +0 -0
  353. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT01.CSV +0 -0
  354. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT02.CSV +0 -0
  355. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT03.CSV +0 -0
  356. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT04.CSV +0 -0
  357. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT05.CSV +0 -0
  358. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/RUN.LOG +0 -0
  359. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report.TXT +0 -0
  360. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report00.CSV +0 -0
  361. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report01.xls +0 -0
  362. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/SAMPLE.XML +0 -0
  363. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/SAMPLE.XML.bak +0 -0
  364. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/WLS1.Sampler.scml +0 -0
  365. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq.macaml +0 -0
  366. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq.txt +0 -0
  367. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq_MethHist.txt +0 -0
  368. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq_damethod.reg +0 -0
  369. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/da.macaml +0 -0
  370. {pychemstation-0.10.12 → pychemstation-0.10.13}/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
  371. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/lcdiag.reg +0 -0
  372. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/sequence.acam_ +0 -0
  373. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/sequence.acaml +0 -0
  374. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/hplc_talk.mac +0 -0
  375. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_column.py +0 -0
  376. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_dad.py +0 -0
  377. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_injector.py +0 -0
  378. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_pump.py +0 -0
  379. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_sample_info.py +0 -0
  380. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_switch_method.py +0 -0
  381. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_switch_sequence.py +0 -0
  382. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/run/test_run_method.py +0 -0
  383. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/run/test_run_sequence.py +0 -0
  384. {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/test_integration.py +0 -0
  385. {pychemstation-0.10.12 → pychemstation-0.10.13}/update-lib.sh +0 -0
@@ -0,0 +1,12 @@
1
+ {
2
+ "python.testing.unittestArgs": [
3
+ "-v",
4
+ "-s",
5
+ "./tests",
6
+ "-p",
7
+ "test_*.py"
8
+ ],
9
+ "python.testing.pytestEnabled": false,
10
+ "python.testing.unittestEnabled": true,
11
+ "python.analysis.typeCheckingMode": "standard"
12
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pychemstation
3
- Version: 0.10.12
3
+ Version: 0.10.13
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
@@ -0,0 +1 @@
1
+ 8 response$ = _METHPATH$
@@ -0,0 +1,8 @@
1
+ response$ = AcqStatus$
2
+ response$ = _METHPATH$
3
+ response$ = _SEQUENCEPATHS$
4
+ response$ = _DATAPATHS$
5
+ response$ = _METHPATH$
6
+ response$ = _SEQUENCEPATHS$
7
+ response$ = _DATAPATHS$
8
+ response$ = _METHPATH$
@@ -0,0 +1,89 @@
1
+ @misc{AccelerationConsortium,
2
+ title = {Acceleration {{Consortium}}},
3
+ urldate = {2025-04-16},
4
+ howpublished = {https://acceleration.utoronto.ca/events/acceleration-consortium-fall-research-symposium},
5
+ file = {/Users/lucyhao/Zotero/storage/KJJAD45E/acceleration-consortium-fall-research-symposium.html}
6
+ }
7
+
8
+ @misc{BourneGroupHPLCMethodOptimisationGUIHPLC,
9
+ title = {Bourne-{{Group}}/{{HPLCMethodOptimisationGUI}}: {{HPLC}} Method Optimisation Using Machine Learning},
10
+ urldate = {2025-04-16},
11
+ howpublished = {https://github.com/Bourne-Group/HPLCMethodOptimisationGUI}
12
+ }
13
+
14
+ @misc{ChromatographyMethodDevelopment,
15
+ title = {Chromatography {{Method Development}} - {{OpenLab ChemStation}} {\textbar} {{Agilent}}},
16
+ urldate = {2025-04-16},
17
+ howpublished = {https://www.agilent.com/en/product/software-informatics/analytical-software-suite/chromatography-data-systems/openlab-chemstation},
18
+ file = {/Users/lucyhao/Zotero/storage/KBK2IZV3/openlab-chemstation.html}
19
+ }
20
+
21
+ @misc{CroningpAnalyticallabware2025,
22
+ title = {Croningp/Analyticallabware},
23
+ year = {2025},
24
+ month = mar,
25
+ urldate = {2025-04-16},
26
+ howpublished = {croningp}
27
+ }
28
+
29
+ @article{dixonOperatorfreeHPLCAutomated2024a,
30
+ title = {Operator-Free {{HPLC}} Automated Method Development Guided by {{Bayesian}} Optimization},
31
+ author = {Dixon, Thomas M. and Williams, Jeanine and Besenhard, Maximilian and Howard, Roger M. and MacGregor, James and Peach, Philip and Clayton, Adam D. and Warren, Nicholas J. and Bourne, Richard A.},
32
+ year = {2024},
33
+ month = aug,
34
+ journal = {Digital Discovery},
35
+ volume = {3},
36
+ number = {8},
37
+ pages = {1591--1601},
38
+ publisher = {RSC},
39
+ issn = {2635-098X},
40
+ doi = {10.1039/D4DD00062E},
41
+ urldate = {2025-04-16},
42
+ abstract = {The need to efficiently develop high performance liquid chromatography (HPLC) methods, whilst adhering to quality by design principles is of paramount importance when it comes to impurity detection in the synthesis of active pharmaceutical ingredients. This study highlights a novel approach that fully automates HPLC method development using black-box single and multi-objective Bayesian optimization algorithms. Three continuous variables including the initial isocratic hold time, initial organic modifier concentration and the gradient time were adjusted to simultaneously optimize the number of peaks detected, the resolution between peaks and the method length. Two mixtures of analytes, one with seven compounds and one with eleven compounds, were investigated. The system explored the design space to find a global optimum in chromatogram quality without human assistance, and methods that gave baseline resolution were identified. Optimal operating conditions were typically reached within just 13 experiments. The single and multi-objective Bayesian optimization algorithms were compared to show that multi-objective optimization was more suitable for HPLC method development. This allowed for multiple chromatogram acceptance criteria to be selected without having to repeat the entire optimization, making it a useful tool for robustness testing. Work in this paper presents a fully ``operator-free'' and closed loop HPLC method optimization process that can find optimal methods quickly when compared to other modern HPLC optimization techniques such as design of experiments, linear solvent strength models or quantitative structure retention relationships.},
43
+ langid = {english},
44
+ file = {/Users/lucyhao/Zotero/storage/R6J4X3FX/Dixon et al. - 2024 - Operator-free HPLC automated method development guided by Bayesian optimization.pdf;/Users/lucyhao/Zotero/storage/U6VQC54Q/Dixon et al. - 2024 - Operator-free HPLC automated method development guided by Bayesian optimization.pdf}
45
+ }
46
+
47
+ @misc{DynamicSamplingAutonomous,
48
+ title = {Dynamic Sampling in Autonomous Process Optimization - {{Chemical Science}} ({{RSC Publishing}})},
49
+ urldate = {2025-04-16},
50
+ howpublished = {https://pubs.rsc.org/en/content/articlelanding/2024/sc/d3sc06884f\#!divAbstract},
51
+ file = {/Users/lucyhao/Zotero/storage/V9P3MB47/d3sc06884f.html}
52
+ }
53
+
54
+ @misc{HeinGroupHplcmethodoptimization2025,
55
+ title = {Hein {{Group}} / Hplc-Method-Optimization {$\cdot$} {{GitLab}}},
56
+ year = {2025},
57
+ month = apr,
58
+ journal = {GitLab},
59
+ urldate = {2025-04-16},
60
+ abstract = {GitLab.com},
61
+ howpublished = {https://gitlab.com/heingroup/hplc-method-optimization},
62
+ langid = {english}
63
+ }
64
+
65
+ @article{robertsAutomatingStochasticAntibody2025,
66
+ title = {Automating Stochastic Antibody--Drug Conjugation: A Self-Driving Lab Approach for Enhanced Therapeutic Development},
67
+ shorttitle = {Automating Stochastic Antibody--Drug Conjugation},
68
+ author = {Roberts, Liam and Reish, Matthew E. and Yang, Jerrica and Zhang, Wenyu and Derasp, Joshua S. and Hein, Jason E.},
69
+ year = {2025},
70
+ month = apr,
71
+ journal = {Digital Discovery},
72
+ volume = {4},
73
+ number = {4},
74
+ pages = {979--986},
75
+ publisher = {RSC},
76
+ issn = {2635-098X},
77
+ doi = {10.1039/D4DD00363B},
78
+ urldate = {2025-04-16},
79
+ abstract = {Antibody--drug conjugates (ADCs) have become a promising cancer treatment over the past two decades due to their on-target drug-release capabilities. However, labor-intensive manual conjugations currently limit the throughput of ADC synthesis. Herein, we introduce a Self-Driving Lab (SDL) for automated stochastic antibody--drug conjugation and characterization. The robotic platform performs conjugations and determines drug to antibody ratios from chromatography data, enabling the production of target ADCs iteratively in a closed loop. Our SDL establishes a robust foundation for increasing ADC production throughput and accelerating the development of cancer therapeutics.},
80
+ langid = {english},
81
+ file = {/Users/lucyhao/Zotero/storage/ENB4N88F/Roberts et al. - 2025 - Automating stochastic antibody–drug conjugation a self-driving lab approach for enhanced therapeuti.pdf;/Users/lucyhao/Zotero/storage/MQW4T3ZY/Roberts et al. - 2025 - Automating stochastic antibody–drug conjugation a self-driving lab approach for enhanced therapeuti.pdf}
82
+ }
83
+
84
+ @article{schneiderMacroProgrammingGuide,
85
+ title = {Macro {{Programming Guide}}},
86
+ author = {Schneider, J{\"u}rgen},
87
+ langid = {english},
88
+ file = {/Users/lucyhao/Zotero/storage/QKT883DB/Schneider - Macro Programming Guide.pdf}
89
+ }
@@ -0,0 +1,133 @@
1
+ ---
2
+ title: 'pychemstation: A Python package for automated control of Chemstation using MACROs'
3
+ tags:
4
+ - Python
5
+ - Self Driving Labs
6
+ - SDL
7
+ - HPLC
8
+ - Automation
9
+ authors:
10
+ - name: Lucy Hao
11
+ email: lucyhao@chem.ubc.ca
12
+ orcid: 0000-0003-0296-3591
13
+ affiliation: 1
14
+ - name: Maria Politi
15
+ email: politim@chem.ubc.ca
16
+ orcid: 0000-0002-5815-3371
17
+ affiliation: "1, 3"
18
+ - name: Jason Hein
19
+ email: jhein@chem.ubc.ca
20
+ orcid: 0000-0002-4345-3005
21
+ affiliation: "1, 2, 3, 4"
22
+ affiliations:
23
+ - name: Department of Chemistry, The University of British Columbia, Vancouver, Canada
24
+ index: 1
25
+ - name: Department of Chemistry, University of Bergen, Norway
26
+ index: 2
27
+ - name: Acceleration Consortium, University of Toronto, Toronto, ON, Canada
28
+ index: 3
29
+ - name: Telescope Innovations Corp., Vancouver, BC, Canada
30
+ index: 4
31
+ date: 17 April 2025
32
+ bibliography: paper.bib
33
+ ---
34
+
35
+ # Summary
36
+
37
+ `pychemstation` is a Python package that automates the use of high-performance liquid chromatography (HPLC) machines using
38
+ Chemstation [@ChromatographyMethodDevelopment]. Python enables easy adoption by chemists and integrates smoothly with
39
+ existing data analysis and robotics packages used in developing automated chemical workflows. The `pychemstation` API
40
+ provides users with a simple class-based interface to automate common operations such as running analytical methods and
41
+ sequences, modifying methods and sequences, and extracting chromatograms after runs. `pychemstation` provides this functionality by generating MACROs (a command
42
+ protocol developed by Agilent) which are sent to ChemStation for execution. With HPLC being one of the most widely
43
+ used analytical methods in research and industry, `pychemstation` opens the doors to using this powerful analytical technique in automated chemical workflows.
44
+
45
+ # Statement of need
46
+
47
+ Chemists run hundreds of analytical measurements to gain insight into chemical reactions.
48
+ This amounts to hours of manual labour to interact with graphical user interfaces (GUIs) to modify analytical methods,
49
+ run the methods, and then extract data to gain scientific insight. Tasks such as these are amenable to automation, leading to a broader research
50
+ goal to automate experiments through self-driving labs (SDLs) [@robertsAutomatingStochasticAntibody2025; @DynamicSamplingAutonomous].
51
+ SDLs are robotic platforms that autonomously plan and execute hundreds of chemical reactions. Building an SDL requires
52
+ every step a chemist would do by hand to be automated, one of them being the running of analytical equipment such as HPLC.
53
+ Building autonomous chemical requires the development of robust software tools that enable control and communication with analytical hardware.
54
+
55
+ `pychemstation` was designed to be used by chemists to control Agilent-specific HPLC machines in their day-to-day
56
+ operations or in developing SDLs. The development of `pychemstation` stemmed from the desire for a
57
+ robust strategy to interact with Chemstation, moving away from the fragile and cumbersome development of the “mouse and
58
+ keyboard” interaction strategy with the GUI. Development began from the augmentation of an existing Python codebase for
59
+ sending MACROs to Chemstation, with addition more MACROs through trial-and-error and previous published work
60
+ [@CroningpAnalyticallabware2025; @dixonOperatorfreeHPLCAutomated2024a; @BourneGroupHPLCMethodOptimisationGUIHPLCl; @schneiderMacroProgrammingGuide].
61
+ `pychemstation` has already been used in several of the Hein group's projects, including SDLs for kinetics,
62
+ liquid-liquid extraction and development of a Python based tool for autonomous data-driven HPLC method
63
+ development [@AccelerationConsortium; @HeinGroupHplcmethodoptimization2025]. Built with robustness and ease-of-use in
64
+ mind, `pychemstation` frees the chemist from repetitive tasks and gives SDL developers the ability to seamlessly interact with
65
+ HPLC machines through an API, enhancing productivity and enabling more efficient software integration.
66
+
67
+ # Description
68
+
69
+ `pychemstation` controls the operation of Chemstation through a set of `Controller` classes which generate MACROs based
70
+ on Python dataclasses. A schematic describing the package architecture is shown below in figure 1.
71
+
72
+ ![A class architecture diagram for `pychemstation`. The
73
+ `CommunicationController` handles all communication between a user's Python program and a Chemstation instance. All other controllers extend an abstract
74
+ `ABCTableController` which provides table loading and editing functionality all controllers require. The
75
+ `RunController` is another abstract class including more functionality related to editing and triggering a run/runs.
76
+ `RunController` also provides a polling functionality to let the user know when a run is complete, and returns the file paths containing the data from the run. The
77
+ `DeviceController` load and edit details about hardware.](imgs/control.png)
78
+
79
+ MACROs enabling functionality beyond method editing were discovered using a MACRO editor and Chemstation's built in
80
+ MACRO help [@schneiderMacroProgrammingGuide; @ChromatographyMethodDevelopment].
81
+ Python tests were written to ensure proper functionality of all the methods available in the `HPLCController` class that
82
+ most users interact with, shown in figure 2. These tests include both unit (testing the individual controller
83
+ classes) and integration tests (such as editing of methods and running them immediately after with retrieval of run
84
+ data). Tests were run on two different HPLC machines in the Hein group.
85
+
86
+ ![All methods available for use in the `HPLCController` class](imgs/hplc.png)
87
+
88
+ The `HPLCController` class contains a series of subclasses of `RunController` and `DeviceController`.
89
+ `RunController` subclasses, `MethodController` and `SequenceController`, generate MACROs related to runs,
90
+ such as triggering runs and returning data. The `DeviceController` subclasses are a new edition, allowing users to load
91
+ details about the injector, diode array detector, column/thermostat and pumps. The subclasses extending
92
+ `DeviceController` are in active development.
93
+
94
+ The `RunController` subclasses provide `pychemstation`'s main functionality. The `MethodController` triggers method runs for one sample, while the `SequenceController` can trigger a runf o
95
+ After a run is triggered, the `RunController` can either block until the HPLC is done the run or immediately return. If the user
96
+ chooses to return before the HPLC is done a run, they choose to check how much time is remaining for the run. After the
97
+ run, the `RunController` returns all the necessary file paths for further data processing. The UV chromatogram is returned per active channel, or for the entire
98
+ scanned spectrum. There is limited data processing functionality for the auto-generated report in the `ReportProcessor`
99
+ classes, thus other Python libraries are recommended for more in depth processing.
100
+
101
+ The `MethodController` edits the pump timetable while the `SequenceController` edits the sequence table. An example is
102
+ shown below. Various combinations of parameters and editing scenarios were tested to ensure the generated MACROs could
103
+ handle different types of parameter updates.
104
+
105
+ ![An example of a Method pump timetable](imgs/method%20timetable.png)
106
+ ![An example of a Sequence table](imgs/img.png)
107
+
108
+ A summary of available methods and functionality are shown in the tables below.
109
+
110
+ | Run Controller | Features |
111
+ |----------------|------------------------------------------------------------------------------------------------------------|
112
+ | Sequence | Switch, Load sequence details, Edit sequence table entries, Run sequence, Retrieve sequence run data files |
113
+ | Method | Switch, Load method timetable, Edit method timetable, Run method, Retrieve method run data files |
114
+
115
+ | Device Controller | Features |
116
+ |----------------------|-------------------------------------------------------------------------------------|
117
+ | Pump | Edit parameters (flow, pressure, organic modifier), solvent and waste bottle status |
118
+ | Diode Array Detector | Read and set active wavelengths |
119
+ | Injector | Change injection volume |
120
+ | Columns | Read active column, edit active column |
121
+
122
+ Thus, `pychemstation` provides both high-level and low-level control of an HPLC machine that uses Agilent's Chemstation
123
+ software. More information and use case examples can be found in
124
+ the [documentation](https://pychemstation-e5a086.gitlab.io/pychemstation.html).
125
+
126
+ # Acknowledgements
127
+
128
+ We acknowledge contributions from Wesley McNutt, Matthew Reish and Clark Zhang and funding support from AC, NSERC,
129
+ Canada
130
+ NRC,
131
+ CFFI (?).
132
+
133
+ # References
@@ -70,19 +70,22 @@ class SequenceController(RunController):
70
70
  f"couldn't read rows or sequence name: {seq_name.err_value}"
71
71
  )
72
72
 
73
- def try_int(self, val: Any) -> Optional[int]:
73
+ @staticmethod
74
+ def try_int(val: Any) -> Optional[int]:
74
75
  try:
75
76
  return int(val)
76
77
  except ValueError:
77
78
  return None
78
79
 
79
- def try_float(self, val: Any) -> Optional[float]:
80
+ @staticmethod
81
+ def try_float(val: Any) -> Optional[float]:
80
82
  try:
81
83
  return float(val)
82
84
  except ValueError:
83
85
  return None
84
86
 
85
- def try_vial_location(self, val: Any) -> Tray:
87
+ @staticmethod
88
+ def try_vial_location(val: Any) -> Tray:
86
89
  try:
87
90
  return VialBar(val) if val <= 10 else FiftyFourVialPlate.from_int(num=val)
88
91
  except ValueError:
@@ -451,14 +454,19 @@ class SequenceController(RunController):
451
454
  def get_data(
452
455
  self, custom_path: Optional[str] = None
453
456
  ) -> List[AgilentChannelChromatogramData]:
454
- seq_file_dir = (
455
- SequenceDataFiles(dir=custom_path, sequence_name="")
456
- if custom_path
457
- else self.data_files[-1]
458
- )
459
- self.data_files[-1] = self._fuzzy_match_most_recent_folder(
457
+ print(custom_path)
458
+ if custom_path:
459
+ self.data_files.append(
460
+ SequenceDataFiles(dir=custom_path, sequence_name="")
461
+ )
462
+ seq_file_dir = self.data_files[-1]
463
+ possible_seq_file_name = self._fuzzy_match_most_recent_folder(
460
464
  seq_file_dir
461
- ).ok_value
465
+ )
466
+ if possible_seq_file_name.is_ok():
467
+ self.data_files[-1] = possible_seq_file_name.ok_value
468
+ else:
469
+ raise UserWarning(f"{possible_seq_file_name.err_value}")
462
470
  spectra: List[AgilentChannelChromatogramData] = []
463
471
  for row in self.data_files[-1].child_dirs:
464
472
  self.get_spectrum_at_channels(row)
@@ -0,0 +1,6 @@
1
+ from .injector import InjectorController
2
+ from .pump import PumpController
3
+ from .column import ColumnController
4
+ from .dad import DADController
5
+
6
+ __all__ = ["InjectorController", "PumpController", "ColumnController", "DADController"]
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pychemstation"
7
- version = "0.10.12"
7
+ version = "0.10.13"
8
8
  description = "Library to interact with Chemstation software, primarily used in Hein lab"
9
9
  authors = [{ name = "lucyhao", email = "hao.lucyy@gmail.com" }]
10
10
  requires-python = ">=3.10"
@@ -118,4 +118,4 @@ docstring-code-format = true
118
118
  #
119
119
  # This only has an effect when the `docstring-code-format` setting is
120
120
  # enabled.
121
- docstring-code-line-length = "dynamic"
121
+ docstring-code-line-length = "dynamic"
File without changes
@@ -34,7 +34,8 @@ DEFAULT_METHOD_254 = "GENERAL-POROSHELL-30sec_Isohold"
34
34
  DEFAULT_SEQUENCE = "hplc_testing"
35
35
 
36
36
  # CONSTANTS: paths only work in Hein group HPLC machine in room 242
37
- DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
37
+ # DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
38
+ DEFAULT_COMMAND_PATH = os.getcwd()
38
39
 
39
40
  # these CONSTANTS work in rm 254
40
41
  DEFAULT_COMMAND_PATH_254 = "D:\\git_repositories\\hplc_comm\\"
File without changes
File without changes
File without changes
@@ -97,6 +97,16 @@ class TestOffline(unittest.TestCase):
97
97
  )
98
98
  except Exception:
99
99
  self.fail("should not get here")
100
+
101
+ def test_get_seq_data(self):
102
+ seq_path = "hplc_testing 2025-03-27 17-13-47"
103
+ try:
104
+ data = self.hplc_controller.get_last_run_sequence_data(
105
+ custom_path=os.path.join(self.cwd, seq_path)
106
+ )
107
+ self.assertEqual(len(data), 4)
108
+ except Exception as e:
109
+ self.fail(f"should not get here: {e}")
100
110
 
101
111
  def test_get_seq_uv(self):
102
112
  seq_path = "hplc_testing 2025-03-27 17-13-47"
File without changes
File without changes
File without changes
@@ -873,7 +873,7 @@ wheels = [
873
873
  { url = "https://files.pythonhosted.org/packages/8c/de/8eb6fffecd9c5f129461edcdd7e1ac944f9de15783e3d89c84ed6e0374bc/lxml-5.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:aa837e6ee9534de8d63bc4c1249e83882a7ac22bd24523f83fad68e6ffdf41ae", size = 5652903 },
874
874
  { url = "https://files.pythonhosted.org/packages/95/79/80f4102a08495c100014593680f3f0f7bd7c1333b13520aed855fc993326/lxml-5.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:da4c9223319400b97a2acdfb10926b807e51b69eb7eb80aad4942c0516934858", size = 5491813 },
875
875
  { url = "https://files.pythonhosted.org/packages/15/f5/9b1f7edf6565ee31e4300edb1bcc61eaebe50a3cff4053c0206d8dc772f2/lxml-5.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dc0e9bdb3aa4d1de703a437576007d366b54f52c9897cae1a3716bb44fc1fc85", size = 5227837 },
876
- { url = "https://files.pythonhosted.org/packages/5c/17/c31d94364c02e3492215658917f5590c00edce8074aeb06d05b7771465d9/lxml-5.3.2-cp310-cp310-win32.whl", hash = "sha256:5f94909a1022c8ea12711db7e08752ca7cf83e5b57a87b59e8a583c5f35016ad", size = 3477533 },
876
+ { url = "https://files.pythonhosted.org/packages/dd/53/a187c4ccfcd5fbfca01e6c96da39499d8b801ab5dcf57717db95d7a968a8/lxml-5.3.2-cp310-cp310-win32.win32.whl", hash = "sha256:dd755a0a78dd0b2c43f972e7b51a43be518ebc130c9f1a7c4480cf08b4385486", size = 3477533 },
877
877
  { url = "https://files.pythonhosted.org/packages/f2/2c/397c5a9d76a7a0faf9e5b13143ae1a7e223e71d2197a45da71c21aacb3d4/lxml-5.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:d64ea1686474074b38da13ae218d9fde0d1dc6525266976808f41ac98d9d7980", size = 3805160 },
878
878
  { url = "https://files.pythonhosted.org/packages/84/b8/2b727f5a90902f7cc5548349f563b60911ca05f3b92e35dfa751349f265f/lxml-5.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9d61a7d0d208ace43986a92b111e035881c4ed45b1f5b7a270070acae8b0bfb4", size = 8163457 },
879
879
  { url = "https://files.pythonhosted.org/packages/91/84/23135b2dc72b3440d68c8f39ace2bb00fe78e3a2255f7c74f7e76f22498e/lxml-5.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856dfd7eda0b75c29ac80a31a6411ca12209183e866c33faf46e77ace3ce8a79", size = 4433445 },
@@ -1611,7 +1611,7 @@ wheels = [
1611
1611
 
1612
1612
  [[package]]
1613
1613
  name = "pychemstation"
1614
- version = "0.10.11"
1614
+ version = "0.10.12"
1615
1615
  source = { editable = "." }
1616
1616
  dependencies = [
1617
1617
  { name = "aghplctools" },
@@ -1619,7 +1619,6 @@ dependencies = [
1619
1619
  { name = "pandas" },
1620
1620
  { name = "pdoc" },
1621
1621
  { name = "polling" },
1622
- { name = "pre-commit" },
1623
1622
  { name = "rainbow-api" },
1624
1623
  { name = "result" },
1625
1624
  { name = "scipy" },
@@ -1644,7 +1643,6 @@ requires-dist = [
1644
1643
  { name = "pandas", specifier = ">=2.0.3" },
1645
1644
  { name = "pdoc", specifier = ">=14.7.0" },
1646
1645
  { name = "polling", specifier = ">=0.3.2" },
1647
- { name = "pre-commit", specifier = ">=4.2.0" },
1648
1646
  { name = "rainbow-api", specifier = ">=1.0.10" },
1649
1647
  { name = "result", specifier = ">=0.17.0" },
1650
1648
  { name = "scipy", specifier = ">=1.10.1" },
@@ -1 +0,0 @@
1
- gitdir: /Users/lucyhao/Codes/hein-lab/pychemstation-worktree/pychemstation/.git/worktrees/v0.10.x
@@ -1,3 +0,0 @@
1
- from .injector import InjectorController
2
-
3
- __all__ = ["InjectorController"]
File without changes