pychemstation 0.10.5__tar.gz → 0.10.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. {pychemstation-0.10.5 → pychemstation-0.10.7}/.gitignore +1 -1
  2. {pychemstation-0.10.5 → pychemstation-0.10.7}/PKG-INFO +3 -3
  3. {pychemstation-0.10.5 → pychemstation-0.10.7}/README.md +1 -1
  4. {pychemstation-0.10.5 → pychemstation-0.10.7}/out.txt +134 -0
  5. pychemstation-0.10.7/pychemstation/analysis/__init__.py +11 -0
  6. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/README.md +1 -1
  7. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/controllers/__init__.py +2 -2
  8. pychemstation-0.10.5/pychemstation/control/controllers/comm.py → pychemstation-0.10.7/pychemstation/control/controllers/abc_tables/abc_comm.py +19 -110
  9. pychemstation-0.10.7/pychemstation/control/controllers/abc_tables/device.py +20 -0
  10. pychemstation-0.10.5/pychemstation/control/controllers/tables/table.py → pychemstation-0.10.7/pychemstation/control/controllers/abc_tables/run.py +58 -201
  11. pychemstation-0.10.7/pychemstation/control/controllers/abc_tables/table.py +230 -0
  12. pychemstation-0.10.7/pychemstation/control/controllers/comm.py +171 -0
  13. {pychemstation-0.10.5/pychemstation/control/controllers/tables → pychemstation-0.10.7/pychemstation/control/controllers/data_aq}/method.py +12 -15
  14. {pychemstation-0.10.5/pychemstation/control/controllers/tables → pychemstation-0.10.7/pychemstation/control/controllers/data_aq}/sequence.py +168 -119
  15. pychemstation-0.10.7/pychemstation/control/controllers/devices/__init__.py +3 -0
  16. pychemstation-0.10.7/pychemstation/control/controllers/devices/injector.py +106 -0
  17. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/hplc.py +42 -26
  18. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/injector_types.py +22 -2
  19. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/macro.py +11 -0
  20. pychemstation-0.10.7/pychemstation/utils/mocking/mock_comm.py +5 -0
  21. pychemstation-0.10.7/pychemstation/utils/mocking/mock_hplc.py +2 -0
  22. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/sequence_types.py +22 -2
  23. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/table_types.py +6 -0
  24. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/tray_types.py +36 -1
  25. {pychemstation-0.10.5 → pychemstation-0.10.7}/pyproject.toml +2 -2
  26. pychemstation-0.10.7/tests/__init__.py +0 -0
  27. pychemstation-0.10.7/tests/cmd +1 -0
  28. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/constants.py +10 -6
  29. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/out.txt +8672 -0
  30. pychemstation-0.10.7/tests/reply +0 -0
  31. pychemstation-0.10.7/tests/test_abc.py +45 -0
  32. pychemstation-0.10.7/tests/test_comm.py +30 -0
  33. pychemstation-0.10.7/tests/test_injector.py +39 -0
  34. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/test_integration.py +7 -7
  35. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/test_method.py +75 -14
  36. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/test_offline.py +31 -13
  37. pychemstation-0.10.7/tests/test_online.py +79 -0
  38. pychemstation-0.10.7/tests/test_sequence.py +207 -0
  39. {pychemstation-0.10.5 → pychemstation-0.10.7}/uv.lock +2 -2
  40. pychemstation-0.10.5/pychemstation/analysis/__init__.py +0 -4
  41. pychemstation-0.10.5/pychemstation/control/controllers/devices/device.py +0 -74
  42. pychemstation-0.10.5/pychemstation/control/controllers/devices/injector.py +0 -73
  43. pychemstation-0.10.5/tests/test_online.py +0 -303
  44. pychemstation-0.10.5/tests/test_sequence.py +0 -91
  45. {pychemstation-0.10.5 → pychemstation-0.10.7}/.gitlab-ci.yml +0 -0
  46. {pychemstation-0.10.5 → pychemstation-0.10.7}/.pre-commit-config.yaml +0 -0
  47. {pychemstation-0.10.5 → pychemstation-0.10.7}/CHANGELOG.md +0 -0
  48. {pychemstation-0.10.5 → pychemstation-0.10.7}/CONTRIBUTING.md +0 -0
  49. {pychemstation-0.10.5 → pychemstation-0.10.7}/LICENSE +0 -0
  50. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/index.html +0 -0
  51. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/analysis/base_spectrum.html +0 -0
  52. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/analysis/spec_utils.html +0 -0
  53. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/analysis/utils.html +0 -0
  54. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/analysis.html +0 -0
  55. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/control/chromatogram.html +0 -0
  56. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/control/hplc.html +0 -0
  57. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/control.html +0 -0
  58. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/generated.html +0 -0
  59. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/utils/chemstation.html +0 -0
  60. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/utils/constants.html +0 -0
  61. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/utils/hplc_param_types.html +0 -0
  62. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/utils.html +0 -0
  63. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation.html +0 -0
  64. {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/search.js +0 -0
  65. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/__init__.py +0 -0
  66. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/analysis/base_spectrum.py +0 -0
  67. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/analysis/chromatogram.py +0 -0
  68. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/analysis/process_report.py +0 -0
  69. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/__init__.py +0 -0
  70. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/controllers/README.md +0 -0
  71. {pychemstation-0.10.5/pychemstation/control/controllers/devices → pychemstation-0.10.7/pychemstation/control/controllers/abc_tables}/__init__.py +0 -0
  72. {pychemstation-0.10.5/pychemstation/control/controllers/tables → pychemstation-0.10.7/pychemstation/control/controllers/data_aq}/__init__.py +0 -0
  73. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/generated/__init__.py +0 -0
  74. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/generated/dad_method.py +0 -0
  75. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/generated/pump_method.py +0 -0
  76. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/__init__.py +0 -0
  77. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/method_types.py +0 -0
  78. {pychemstation-0.10.5/tests → pychemstation-0.10.7/pychemstation/utils/mocking}/__init__.py +0 -0
  79. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/num_utils.py +0 -0
  80. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/parsing.py +0 -0
  81. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/pump_types.py +0 -0
  82. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/spec_utils.py +0 -0
  83. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/PKG-INFO +0 -0
  84. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/SOURCES.txt +0 -0
  85. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/dependency_links.txt +0 -0
  86. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/requires.txt +0 -0
  87. {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/top_level.txt +0 -0
  88. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/0_2025-03-15 19-14-35.PDF +0 -0
  89. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/ACQRES.REG +0 -0
  90. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/CSlbk.ini +0 -0
  91. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DA.M/DAMETHOD.REG +0 -0
  92. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DA.M/INFO.MTH +0 -0
  93. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DA.M/RECALIB.MTH +0 -0
  94. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DA.M/rpthead.txt +0 -0
  95. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1.UV +0 -0
  96. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1A.ch +0 -0
  97. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1A.npz +0 -0
  98. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1B.ch +0 -0
  99. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1B.npz +0 -0
  100. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1C.ch +0 -0
  101. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1C.npz +0 -0
  102. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1D.ch +0 -0
  103. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1D.npz +0 -0
  104. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1E.ch +0 -0
  105. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1E.npz +0 -0
  106. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DiagResults.REG +0 -0
  107. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/PMP1.AnalyticalResults.drvml +0 -0
  108. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT01.CSV +0 -0
  109. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT02.CSV +0 -0
  110. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT03.CSV +0 -0
  111. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT04.CSV +0 -0
  112. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT05.CSV +0 -0
  113. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/RUN.LOG +0 -0
  114. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/Report.TXT +0 -0
  115. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/Report00.CSV +0 -0
  116. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/Report01.xls +0 -0
  117. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML +0 -0
  118. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML.bak +0 -0
  119. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/WLS1.Sampler.scml +0 -0
  120. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/acq.macaml +0 -0
  121. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/acq.txt +0 -0
  122. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/acq_MethHist.txt +0 -0
  123. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/acq_damethod.reg +0 -0
  124. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/da.macaml +0 -0
  125. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/lcdiag.reg +0 -0
  126. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/sample.acaml +0 -0
  127. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/single.B +0 -0
  128. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/ACQRES.REG +0 -0
  129. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT01.CSV +0 -0
  130. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT02.CSV +0 -0
  131. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT03.CSV +0 -0
  132. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT04.CSV +0 -0
  133. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT05.CSV +0 -0
  134. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report.TXT +0 -0
  135. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report00.CSV +0 -0
  136. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/CSlbk.ini +0 -0
  137. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/DAMETHOD.REG +0 -0
  138. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/INFO.MTH +0 -0
  139. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/RECALIB.MTH +0 -0
  140. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/rpthead.txt +0 -0
  141. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1.UV +0 -0
  142. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.ch +0 -0
  143. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.npz +0 -0
  144. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.ch +0 -0
  145. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.npz +0 -0
  146. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.ch +0 -0
  147. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.npz +0 -0
  148. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.ch +0 -0
  149. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.npz +0 -0
  150. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.ch +0 -0
  151. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.npz +0 -0
  152. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.ch +0 -0
  153. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.npz +0 -0
  154. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.ch +0 -0
  155. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.npz +0 -0
  156. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.ch +0 -0
  157. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.npz +0 -0
  158. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DiagResults.REG +0 -0
  159. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Limsinf.xml +0 -0
  160. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/PMP1.AnalyticalResults.drvml +0 -0
  161. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/RUN.LOG +0 -0
  162. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML +0 -0
  163. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML.bak +0 -0
  164. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/WLS1.Sampler.scml +0 -0
  165. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.macaml +0 -0
  166. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.txt +0 -0
  167. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_MethHist.txt +0 -0
  168. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_damethod.reg +0 -0
  169. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/da.macaml +0 -0
  170. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/lcdiag.reg +0 -0
  171. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/sample.acaml +0 -0
  172. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/single.B +0 -0
  173. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_talk.mac +0 -0
  174. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/CSlbk.ini +0 -0
  175. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/ACQ.MS +0 -0
  176. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.ConfigXML.xml +0 -0
  177. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodMetaData.xml +0 -0
  178. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodXML.xml +0 -0
  179. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.ConfigXML.xml +0 -0
  180. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodMetaData.xml +0 -0
  181. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodXML.xml +0 -0
  182. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.ConfigXML.xml +0 -0
  183. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodMetaData.xml +0 -0
  184. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodXML.xml +0 -0
  185. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.ConfigXML.xml +0 -0
  186. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodMetaData.xml +0 -0
  187. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodXML.xml +0 -0
  188. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.PretreatXML.xml +0 -0
  189. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/DAMETHOD.REG +0 -0
  190. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/FIA.REG +0 -0
  191. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INFO.MTH +0 -0
  192. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INJECTOR.MTH +0 -0
  193. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/MassHunterIntegration.ini +0 -0
  194. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RECALIB.MTH +0 -0
  195. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RapidControl.InstrumentConfig.xml +0 -0
  196. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/rpthead.txt +0 -0
  197. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/smpl_pur.mth +0 -0
  198. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/Methods.Reg +0 -0
  199. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.B +0 -0
  200. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.LOG +0 -0
  201. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.S +0 -0
  202. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.Start +0 -0
  203. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/ACQRES.REG +0 -0
  204. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/CSlbk.ini +0 -0
  205. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/DAMETHOD.REG +0 -0
  206. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/INFO.MTH +0 -0
  207. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/RECALIB.MTH +0 -0
  208. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/rpthead.txt +0 -0
  209. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1.UV +0 -0
  210. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.ch +0 -0
  211. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.npz +0 -0
  212. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.ch +0 -0
  213. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.npz +0 -0
  214. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.ch +0 -0
  215. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.npz +0 -0
  216. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.ch +0 -0
  217. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.npz +0 -0
  218. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.ch +0 -0
  219. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.npz +0 -0
  220. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DiagResults.REG +0 -0
  221. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Limsinf.xml +0 -0
  222. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/PMP1.AnalyticalResults.drvml +0 -0
  223. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT01.CSV +0 -0
  224. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT02.CSV +0 -0
  225. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT03.CSV +0 -0
  226. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT04.CSV +0 -0
  227. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT05.CSV +0 -0
  228. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/RUN.LOG +0 -0
  229. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report.TXT +0 -0
  230. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report00.CSV +0 -0
  231. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report01.xls +0 -0
  232. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML +0 -0
  233. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML.bak +0 -0
  234. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/WLS1.Sampler.scml +0 -0
  235. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.macaml +0 -0
  236. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.txt +0 -0
  237. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_MethHist.txt +0 -0
  238. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_damethod.reg +0 -0
  239. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/da.macaml +0 -0
  240. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
  241. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/lcdiag.reg +0 -0
  242. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/sequence.acam_ +0 -0
  243. {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/sequence.acaml +0 -0
  244. {pychemstation-0.10.5 → pychemstation-0.10.7}/update-lib.sh +0 -0
@@ -6,4 +6,4 @@
6
6
  target
7
7
  .DS_Store
8
8
  env
9
- venv
9
+ venv
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pychemstation
3
- Version: 0.10.5
3
+ Version: 0.10.7
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
@@ -18,7 +18,7 @@ Requires-Dist: matplotlib>=3.7.5
18
18
  Requires-Dist: pandas>=2.0.3
19
19
  Requires-Dist: pdoc>=14.7.0
20
20
  Requires-Dist: polling>=0.3.2
21
- Requires-Dist: pre-commit>=4.2.0
21
+ Requires-Dist: pre-commit>=3.5.0
22
22
  Requires-Dist: pytest>=7.3.5
23
23
  Requires-Dist: rainbow-api>=1.0.10
24
24
  Requires-Dist: result>=0.17.0
@@ -90,7 +90,7 @@ DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data"
90
90
  DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data"
91
91
 
92
92
  # Initialize HPLC Controller
93
- hplc_controller = HPLCController(data_dirs=[DATA_DIR_2, DATA_DIR_3],
93
+ hplc_controller = HPLCController(extra_data_dirs=[DATA_DIR_2, DATA_DIR_3],
94
94
  comm_dir=DEFAULT_COMMAND_PATH,
95
95
  method_dir=DEFAULT_METHOD_DIR,
96
96
  sequence_dir=SEQUENCE_DIR)
@@ -59,7 +59,7 @@ DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data"
59
59
  DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data"
60
60
 
61
61
  # Initialize HPLC Controller
62
- hplc_controller = HPLCController(data_dirs=[DATA_DIR_2, DATA_DIR_3],
62
+ hplc_controller = HPLCController(extra_data_dirs=[DATA_DIR_2, DATA_DIR_3],
63
63
  comm_dir=DEFAULT_COMMAND_PATH,
64
64
  method_dir=DEFAULT_METHOD_DIR,
65
65
  sequence_dir=SEQUENCE_DIR)
@@ -375,3 +375,137 @@ LoadMethod "D:\Chemstation\1\Methods\", "GENERAL-POROSHELL-OPT.M"
375
375
  response$ = _MethFile$
376
376
  Rows = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
377
377
  response_num = TabHdrVal(RCPMP1Method[1], "Timetable", "NumberOfRows")
378
+ response$ = AcqStatus$
379
+ Local Rows
380
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
381
+ SaveSequence _SeqPath$, _SeqFile$
382
+ LIDoOperation "TURN_ON"
383
+ PrepRun
384
+ _SeqFile$ = "hplc_testing.S"
385
+ _SeqPath$ = "C:\1\Sequence\"
386
+ LoadSequence _SeqPath$, _SeqFile$
387
+ response$ = _SeqFile$
388
+ Rows = TabHdrVal(_sequence[1], "SeqTable1", "NumberOfRows")
389
+ response_num = TabHdrVal(_sequence[1], "SeqTable1", "NumberOfRows")
390
+ Sleep 0.1
391
+ Print Rows
392
+ response$ = _SeqFile$
393
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "SampleName")
394
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "Vial")
395
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "Method")
396
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "InjVial")
397
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "InjVolume")
398
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "InjectionSource")
399
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "SampleType")
400
+ Rows = TabHdrVal(_sequence[1], "SeqTable1", "NumberOfRows")
401
+ response_num = TabHdrVal(_sequence[1], "SeqTable1", "NumberOfRows")
402
+ Sleep 0.1
403
+ Print Rows
404
+ response$ = _SeqFile$
405
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "SampleName")
406
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "Vial")
407
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "Method")
408
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "InjVial")
409
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "InjVolume")
410
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "InjectionSource")
411
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "SampleType")
412
+ response$ = AcqStatus$
413
+ Local Rows
414
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
415
+ SaveSequence _SeqPath$, _SeqFile$
416
+ LIDoOperation "TURN_ON"
417
+ PrepRun
418
+ _SeqFile$ = "hplc_testing.S"
419
+ _SeqPath$ = "C:\1\Sequence\"
420
+ LoadSequence _SeqPath$, _SeqFile$
421
+ response$ = _SeqFile$
422
+ Rows = TabHdrVal(_sequence[1], "SeqTable1", "NumberOfRows")
423
+ response_num = TabHdrVal(_sequence[1], "SeqTable1", "NumberOfRows")
424
+ Sleep 0.1
425
+ Print Rows
426
+ response$ = _SeqFile$
427
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "SampleName")
428
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "Vial")
429
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "Method")
430
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "InjVial")
431
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "InjVolume")
432
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "InjectionSource")
433
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "SampleType")
434
+ PrepRun
435
+ SaveMethod _MethPath$, _MethFile$, "{commit_msg}"
436
+ SaveSequence _SeqPath$, _SeqFile$
437
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PostTime_Time")
438
+ response_num = ObjHdrVal("RCPMP1Method[1]", "StopTime_Time")
439
+ response$ = _MethFile$
440
+ RunSequence
441
+ response$ = AcqStatus$
442
+ response$ = AcqStatus$
443
+ response$ = AcqStatus$
444
+ response$ = AcqStatus$
445
+ response$ = AcqStatus$
446
+ response$ = AcqStatus$
447
+ response$ = AcqStatus$
448
+ response$ = AcqStatus$
449
+ response$ = AcqStatus$
450
+ response$ = AcqStatus$
451
+ response$ = AcqStatus$
452
+ response$ = AcqStatus$
453
+ response$ = AcqStatus$
454
+ response$ = AcqStatus$
455
+ response$ = AcqStatus$
456
+ response$ = AcqStatus$
457
+ response$ = AcqStatus$
458
+ response$ = AcqStatus$
459
+ response$ = AcqStatus$
460
+ response$ = AcqStatus$
461
+ response$ = AcqStatus$
462
+ response$ = AcqStatus$
463
+ Local Rows
464
+ SaveMethod _MethPath$, _MethFile$, "method saved by pychemstation"
465
+ SaveSequence _SeqPath$, _SeqFile$
466
+ LIDoOperation "TURN_ON"
467
+ PrepRun
468
+ _SeqFile$ = "hplc_testing.S"
469
+ _SeqPath$ = "C:\1\Sequence\"
470
+ LoadSequence _SeqPath$, _SeqFile$
471
+ response$ = _SeqFile$
472
+ Rows = TabHdrVal(_sequence[1], "SeqTable1", "NumberOfRows")
473
+ response_num = TabHdrVal(_sequence[1], "SeqTable1", "NumberOfRows")
474
+ Sleep 0.1
475
+ Print Rows
476
+ response$ = _SeqFile$
477
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "SampleName")
478
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "Vial")
479
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "Method")
480
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "InjVial")
481
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "InjVolume")
482
+ response$ = TabText$("_sequence[1]", "SeqTable1", 1, "InjectionSource")
483
+ response_num = TabVal("_sequence[1]", "SeqTable1", 1, "SampleType")
484
+ PrepRun
485
+ SaveMethod _MethPath$, _MethFile$, "{commit_msg}"
486
+ SaveSequence _SeqPath$, _SeqFile$
487
+ response_num = ObjHdrVal("RCPMP1Method[1]", "PostTime_Time")
488
+ response_num = ObjHdrVal("RCPMP1Method[1]", "StopTime_Time")
489
+ response$ = _MethFile$
490
+ RunSequence
491
+ response$ = AcqStatus$
492
+ response$ = AcqStatus$
493
+ response$ = AcqStatus$
494
+ response$ = AcqStatus$
495
+ response$ = AcqStatus$
496
+ response$ = AcqStatus$
497
+ response$ = AcqStatus$
498
+ response$ = AcqStatus$
499
+ response$ = AcqStatus$
500
+ response$ = AcqStatus$
501
+ response$ = AcqStatus$
502
+ response$ = AcqStatus$
503
+ response$ = AcqStatus$
504
+ response$ = AcqStatus$
505
+ response$ = AcqStatus$
506
+ response$ = AcqStatus$
507
+ response$ = AcqStatus$
508
+ response$ = AcqStatus$
509
+ response$ = AcqStatus$
510
+ response$ = AcqStatus$
511
+ response$ = AcqStatus$
@@ -0,0 +1,11 @@
1
+ from .process_report import CSVProcessor
2
+ from .process_report import TXTProcessor
3
+ from .chromatogram import AgilentChannelChromatogramData
4
+ from .chromatogram import AgilentHPLCChromatogram
5
+
6
+ __all__ = [
7
+ "CSVProcessor",
8
+ "TXTProcessor",
9
+ "AgilentChannelChromatogramData",
10
+ "AgilentHPLCChromatogram",
11
+ ]
@@ -10,7 +10,7 @@ DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data"
10
10
  DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data"
11
11
 
12
12
  # Initialize HPLC Controller
13
- hplc_controller = HPLCController(data_dirs=[DATA_DIR_2, DATA_DIR_3],
13
+ hplc_controller = HPLCController(extra_data_dirs=[DATA_DIR_2, DATA_DIR_3],
14
14
  comm_dir=DEFAULT_COMMAND_PATH,
15
15
  method_dir=DEFAULT_METHOD_DIR,
16
16
  sequence_dir=SEQUENCE_DIR)
@@ -3,6 +3,6 @@
3
3
  """
4
4
 
5
5
  from .comm import CommunicationController
6
- from . import tables
6
+ from . import data_aq
7
7
 
8
- __all__ = ["CommunicationController", "tables"]
8
+ __all__ = ["CommunicationController", "data_aq"]
@@ -10,25 +10,20 @@ been processed.
10
10
  Authors: Alexander Hammer, Hessam Mehr, Lucy Hao
11
11
  """
12
12
 
13
+ import abc
13
14
  import os
14
15
  import time
15
- from typing import Optional, Union
16
+ from abc import abstractmethod
17
+ from typing import Union
16
18
 
17
19
  from result import Err, Ok, Result
18
20
 
19
- from ...utils.macro import (
20
- str_to_status,
21
- HPLCAvailStatus,
22
- HPLCErrorStatus,
23
- Command,
24
- Status,
25
- Response,
26
- )
21
+ from ....utils.macro import Status, HPLCAvailStatus, Command, Response
27
22
 
28
23
 
29
- class CommunicationController:
24
+ class ABCCommunicationController(abc.ABC):
30
25
  """
31
- Class that communicates with Agilent using Macros
26
+ Abstract class representing the communication controller.
32
27
  """
33
28
 
34
29
  # maximum command number
@@ -62,51 +57,28 @@ class CommunicationController:
62
57
  open(self.reply_file, "a").close()
63
58
 
64
59
  self.reset_cmd_counter()
65
-
66
- # Initialize row counter for table operations
67
60
  self._most_recent_hplc_status: Status = self.get_status()
68
61
  self.send("Local Rows")
69
62
 
63
+ @abstractmethod
70
64
  def get_num_val(self, cmd: str) -> Union[int, float]:
71
- tries = 10
72
- for _ in range(tries):
73
- self.send(Command.GET_NUM_VAL_CMD.value.format(cmd=cmd))
74
- res = self.receive()
75
- if res.is_ok():
76
- return res.ok_value.num_response
77
- raise RuntimeError("Failed to get number.")
65
+ pass
78
66
 
67
+ @abstractmethod
79
68
  def get_text_val(self, cmd: str) -> str:
80
- tries = 10
81
- for _ in range(tries):
82
- self.send(Command.GET_TEXT_VAL_CMD.value.format(cmd=cmd))
83
- res = self.receive()
84
- if res.is_ok():
85
- return res.ok_value.string_response
86
- raise RuntimeError("Failed to get string")
69
+ pass
87
70
 
71
+ @abstractmethod
88
72
  def get_status(self) -> Status:
89
- """Get device status(es).
73
+ pass
90
74
 
91
- :return: list of ChemStation's current status
92
- """
93
- self.send(Command.GET_STATUS_CMD)
94
- time.sleep(1)
95
-
96
- try:
97
- res = self.receive()
98
- if res.is_err():
99
- return HPLCErrorStatus.NORESPONSE
100
- if res.is_ok():
101
- parsed_response = self.receive().value.string_response
102
- self._most_recent_hplc_status = str_to_status(parsed_response)
103
- return self._most_recent_hplc_status
104
- else:
105
- raise RuntimeError("Failed to get status")
106
- except IOError:
107
- return HPLCErrorStatus.NORESPONSE
108
- except IndexError:
109
- return HPLCErrorStatus.MALFORMED
75
+ @abstractmethod
76
+ def _send(self, cmd: str, cmd_no: int, num_attempts=5) -> None:
77
+ pass
78
+
79
+ @abstractmethod
80
+ def _receive(self, cmd_no: int, num_attempts=100) -> Result[str, str]:
81
+ pass
110
82
 
111
83
  def set_status(self):
112
84
  """Updates current status of HPLC machine"""
@@ -123,69 +95,6 @@ class CommunicationController:
123
95
  hplc_actually_avail = isinstance(self._most_recent_hplc_status, HPLCAvailStatus)
124
96
  return hplc_avail and hplc_actually_avail
125
97
 
126
- def _send(self, cmd: str, cmd_no: int, num_attempts=5) -> None:
127
- """Low-level execution primitive. Sends a command string to HPLC.
128
-
129
- :param cmd: string to be sent to HPLC
130
- :param cmd_no: Command number
131
- :param num_attempts: Number of attempts to send the command before raising exception.
132
- :raises IOError: Could not write to command file.
133
- """
134
- err = None
135
- for _ in range(num_attempts):
136
- time.sleep(1)
137
- try:
138
- with open(self.cmd_file, "w", encoding="utf8") as cmd_file:
139
- cmd_file.write(f"{cmd_no} {cmd}")
140
- except IOError as e:
141
- err = e
142
- continue
143
- else:
144
- return
145
- else:
146
- raise IOError(f"Failed to send command #{cmd_no}: {cmd}.") from err
147
-
148
- def _receive(self, cmd_no: int, num_attempts=100) -> Result[str, str]:
149
- """Low-level execution primitive. Recives a response from HPLC.
150
-
151
- :param cmd_no: Command number
152
- :param num_attempts: Number of retries to open reply file
153
- :raises IOError: Could not read reply file.
154
- :return: Potential ChemStation response
155
- """
156
- err: Optional[Union[OSError, IndexError, ValueError]] = None
157
- err_msg = ""
158
- for _ in range(num_attempts):
159
- time.sleep(1)
160
-
161
- try:
162
- with open(self.reply_file, "r", encoding="utf_16") as reply_file:
163
- response = reply_file.read()
164
- except OSError as e:
165
- err = e
166
- continue
167
-
168
- try:
169
- first_line = response.splitlines()[0]
170
- try:
171
- response_no = int(first_line.split()[0])
172
- except ValueError as e:
173
- err = e
174
- err_msg = f"Caused by {first_line}"
175
- except IndexError as e:
176
- err = e
177
- continue
178
-
179
- # check that response corresponds to sent command
180
- if response_no == cmd_no:
181
- return Ok(response)
182
- else:
183
- continue
184
- else:
185
- return Err(
186
- f"Failed to receive reply to command #{cmd_no} due to {err} caused by {err_msg}."
187
- )
188
-
189
98
  def sleepy_send(self, cmd: Union[Command, str]):
190
99
  self.send("Sleep 0.1")
191
100
  self.send(cmd)
@@ -0,0 +1,20 @@
1
+ from __future__ import annotations
2
+
3
+ from abc import ABC
4
+
5
+ from ....control.controllers import CommunicationController
6
+ from ....utils.table_types import Table
7
+ from .table import ABCTableController
8
+
9
+
10
+ class DeviceController(ABCTableController, ABC):
11
+ def __init__(
12
+ self, controller: CommunicationController, table: Table, offline: bool
13
+ ):
14
+ super().__init__(controller=controller, table=table)
15
+ self.offline = offline
16
+
17
+ def __new__(cls, *args, **kwargs):
18
+ if cls is ABCTableController:
19
+ raise TypeError(f"only children of '{cls.__name__}' may be instantiated")
20
+ return object.__new__(cls)