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.
- {pychemstation-0.10.5 → pychemstation-0.10.7}/.gitignore +1 -1
- {pychemstation-0.10.5 → pychemstation-0.10.7}/PKG-INFO +3 -3
- {pychemstation-0.10.5 → pychemstation-0.10.7}/README.md +1 -1
- {pychemstation-0.10.5 → pychemstation-0.10.7}/out.txt +134 -0
- pychemstation-0.10.7/pychemstation/analysis/__init__.py +11 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/README.md +1 -1
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/controllers/__init__.py +2 -2
- pychemstation-0.10.5/pychemstation/control/controllers/comm.py → pychemstation-0.10.7/pychemstation/control/controllers/abc_tables/abc_comm.py +19 -110
- pychemstation-0.10.7/pychemstation/control/controllers/abc_tables/device.py +20 -0
- pychemstation-0.10.5/pychemstation/control/controllers/tables/table.py → pychemstation-0.10.7/pychemstation/control/controllers/abc_tables/run.py +58 -201
- pychemstation-0.10.7/pychemstation/control/controllers/abc_tables/table.py +230 -0
- pychemstation-0.10.7/pychemstation/control/controllers/comm.py +171 -0
- {pychemstation-0.10.5/pychemstation/control/controllers/tables → pychemstation-0.10.7/pychemstation/control/controllers/data_aq}/method.py +12 -15
- {pychemstation-0.10.5/pychemstation/control/controllers/tables → pychemstation-0.10.7/pychemstation/control/controllers/data_aq}/sequence.py +168 -119
- pychemstation-0.10.7/pychemstation/control/controllers/devices/__init__.py +3 -0
- pychemstation-0.10.7/pychemstation/control/controllers/devices/injector.py +106 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/hplc.py +42 -26
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/injector_types.py +22 -2
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/macro.py +11 -0
- pychemstation-0.10.7/pychemstation/utils/mocking/mock_comm.py +5 -0
- pychemstation-0.10.7/pychemstation/utils/mocking/mock_hplc.py +2 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/sequence_types.py +22 -2
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/table_types.py +6 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/tray_types.py +36 -1
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pyproject.toml +2 -2
- pychemstation-0.10.7/tests/__init__.py +0 -0
- pychemstation-0.10.7/tests/cmd +1 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/constants.py +10 -6
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/out.txt +8672 -0
- pychemstation-0.10.7/tests/reply +0 -0
- pychemstation-0.10.7/tests/test_abc.py +45 -0
- pychemstation-0.10.7/tests/test_comm.py +30 -0
- pychemstation-0.10.7/tests/test_injector.py +39 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/test_integration.py +7 -7
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/test_method.py +75 -14
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/test_offline.py +31 -13
- pychemstation-0.10.7/tests/test_online.py +79 -0
- pychemstation-0.10.7/tests/test_sequence.py +207 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/uv.lock +2 -2
- pychemstation-0.10.5/pychemstation/analysis/__init__.py +0 -4
- pychemstation-0.10.5/pychemstation/control/controllers/devices/device.py +0 -74
- pychemstation-0.10.5/pychemstation/control/controllers/devices/injector.py +0 -73
- pychemstation-0.10.5/tests/test_online.py +0 -303
- pychemstation-0.10.5/tests/test_sequence.py +0 -91
- {pychemstation-0.10.5 → pychemstation-0.10.7}/.gitlab-ci.yml +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/.pre-commit-config.yaml +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/CHANGELOG.md +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/CONTRIBUTING.md +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/LICENSE +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/index.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/analysis/base_spectrum.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/analysis/spec_utils.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/analysis/utils.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/analysis.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/control/chromatogram.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/control/hplc.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/control.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/generated.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/utils/chemstation.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/utils/constants.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/utils/hplc_param_types.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation/utils.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/pychemstation.html +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/doc/search.js +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/__init__.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/analysis/base_spectrum.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/analysis/chromatogram.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/analysis/process_report.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/__init__.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/control/controllers/README.md +0 -0
- {pychemstation-0.10.5/pychemstation/control/controllers/devices → pychemstation-0.10.7/pychemstation/control/controllers/abc_tables}/__init__.py +0 -0
- {pychemstation-0.10.5/pychemstation/control/controllers/tables → pychemstation-0.10.7/pychemstation/control/controllers/data_aq}/__init__.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/generated/__init__.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/generated/dad_method.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/generated/pump_method.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/__init__.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/method_types.py +0 -0
- {pychemstation-0.10.5/tests → pychemstation-0.10.7/pychemstation/utils/mocking}/__init__.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/num_utils.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/parsing.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/pump_types.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation/utils/spec_utils.py +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/PKG-INFO +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/SOURCES.txt +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/dependency_links.txt +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/requires.txt +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/pychemstation.egg-info/top_level.txt +0 -0
- {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
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/ACQRES.REG +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/CSlbk.ini +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DA.M/DAMETHOD.REG +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DA.M/INFO.MTH +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DA.M/RECALIB.MTH +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DA.M/rpthead.txt +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1.UV +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1A.ch +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1A.npz +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1B.ch +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1B.npz +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1C.ch +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1C.npz +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1D.ch +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1D.npz +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1E.ch +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DAD1E.npz +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/DiagResults.REG +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/PMP1.AnalyticalResults.drvml +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT01.CSV +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT02.CSV +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT03.CSV +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT04.CSV +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/REPORT05.CSV +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/RUN.LOG +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/Report.TXT +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/Report00.CSV +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/Report01.xls +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML.bak +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/WLS1.Sampler.scml +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/acq.macaml +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/acq.txt +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/acq_MethHist.txt +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/acq_damethod.reg +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/da.macaml +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/lcdiag.reg +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/sample.acaml +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/0_2025-03-15 19-14-35.D/single.B +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_talk.mac +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/CSlbk.ini +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/Methods.Reg +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.B +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.LOG +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.S +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.Start +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {pychemstation-0.10.5 → pychemstation-0.10.7}/tests/hplc_testing 2025-03-27 17-13-47/sequence.acaml +0 -0
- {pychemstation-0.10.5 → pychemstation-0.10.7}/update-lib.sh +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pychemstation
|
3
|
-
Version: 0.10.
|
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>=
|
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(
|
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(
|
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(
|
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)
|
@@ -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
|
16
|
+
from abc import abstractmethod
|
17
|
+
from typing import Union
|
16
18
|
|
17
19
|
from result import Err, Ok, Result
|
18
20
|
|
19
|
-
from
|
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
|
24
|
+
class ABCCommunicationController(abc.ABC):
|
30
25
|
"""
|
31
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
73
|
+
pass
|
90
74
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
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)
|