pychemstation 0.9.0__tar.gz → 0.9.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. {pychemstation-0.9.0 → pychemstation-0.9.1}/PKG-INFO +3 -2
  2. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/analysis/process_report.py +25 -8
  3. {pychemstation-0.9.0 → pychemstation-0.9.1}/pyproject.toml +3 -2
  4. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/ACQRES.REG +0 -0
  5. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT01.CSV +0 -0
  6. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT02.CSV +0 -0
  7. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT03.CSV +0 -0
  8. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT04.CSV +0 -0
  9. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT05.CSV +0 -0
  10. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report.TXT +0 -0
  11. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report00.CSV +0 -0
  12. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/CSlbk.ini +5 -0
  13. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/DAMETHOD.REG +0 -0
  14. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/INFO.MTH +0 -0
  15. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1.UV +0 -0
  16. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.ch +0 -0
  17. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.npz +0 -0
  18. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.ch +0 -0
  19. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.npz +0 -0
  20. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.ch +0 -0
  21. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.npz +0 -0
  22. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.ch +0 -0
  23. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.npz +0 -0
  24. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.ch +0 -0
  25. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.npz +0 -0
  26. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.ch +0 -0
  27. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.npz +0 -0
  28. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.ch +0 -0
  29. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.npz +0 -0
  30. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.ch +0 -0
  31. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.npz +0 -0
  32. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DiagResults.REG +0 -0
  33. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/PMP1.AnalyticalResults.drvml +15 -0
  34. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/RUN.LOG +0 -0
  35. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML +0 -0
  36. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML.bak +0 -0
  37. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/WLS1.Sampler.scml +22 -0
  38. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.macaml +1135 -0
  39. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.txt +0 -0
  40. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_MethHist.txt +0 -0
  41. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_damethod.reg +0 -0
  42. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/da.macaml +1053 -0
  43. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/lcdiag.reg +0 -0
  44. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/sample.acaml +2294 -0
  45. pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/single.B +0 -0
  46. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/constants.py +2 -0
  47. pychemstation-0.9.1/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/RECALIB.MTH +0 -0
  48. pychemstation-0.9.1/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/rpthead.txt +63 -0
  49. pychemstation-0.9.1/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Limsinf.xml +0 -0
  50. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/out.txt +6566 -0
  51. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/test_method.py +4 -2
  52. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/test_offline_integration.py +5 -0
  53. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/test_online_integration.py +14 -6
  54. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/test_runs_integration.py +20 -17
  55. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/test_sequence.py +4 -2
  56. {pychemstation-0.9.0 → pychemstation-0.9.1}/uv.lock +2 -2
  57. pychemstation-0.9.0/out.txt +0 -377
  58. {pychemstation-0.9.0 → pychemstation-0.9.1}/.gitignore +0 -0
  59. {pychemstation-0.9.0 → pychemstation-0.9.1}/.gitlab-ci.yml +0 -0
  60. {pychemstation-0.9.0 → pychemstation-0.9.1}/.pre-commit-config.yaml +0 -0
  61. {pychemstation-0.9.0 → pychemstation-0.9.1}/CHANGELOG.md +0 -0
  62. {pychemstation-0.9.0 → pychemstation-0.9.1}/CONTRIBUTING.md +0 -0
  63. {pychemstation-0.9.0 → pychemstation-0.9.1}/LICENSE +0 -0
  64. {pychemstation-0.9.0 → pychemstation-0.9.1}/README.md +0 -0
  65. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/index.html +0 -0
  66. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/analysis/base_spectrum.html +0 -0
  67. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/analysis/spec_utils.html +0 -0
  68. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/analysis/utils.html +0 -0
  69. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/analysis.html +0 -0
  70. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/control/chromatogram.html +0 -0
  71. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/control/hplc.html +0 -0
  72. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/control.html +0 -0
  73. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/generated.html +0 -0
  74. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/utils/chemstation.html +0 -0
  75. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/utils/constants.html +0 -0
  76. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/utils/hplc_param_types.html +0 -0
  77. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation/utils.html +0 -0
  78. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/pychemstation.html +0 -0
  79. {pychemstation-0.9.0 → pychemstation-0.9.1}/doc/search.js +0 -0
  80. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/__init__.py +0 -0
  81. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/analysis/__init__.py +0 -0
  82. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/analysis/base_spectrum.py +0 -0
  83. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/analysis/chromatogram.py +0 -0
  84. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/README.md +0 -0
  85. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/__init__.py +0 -0
  86. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/README.md +0 -0
  87. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/__init__.py +0 -0
  88. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/comm.py +0 -0
  89. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/devices/__init__.py +0 -0
  90. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/devices/device.py +0 -0
  91. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/devices/injector.py +0 -0
  92. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/tables/__init__.py +0 -0
  93. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/tables/method.py +0 -0
  94. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/tables/ms.py +0 -0
  95. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/tables/sequence.py +0 -0
  96. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/controllers/tables/table.py +0 -0
  97. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/control/hplc.py +0 -0
  98. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/generated/__init__.py +0 -0
  99. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/generated/dad_method.py +0 -0
  100. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/generated/pump_method.py +0 -0
  101. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/__init__.py +0 -0
  102. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/injector_types.py +0 -0
  103. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/macro.py +0 -0
  104. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/method_types.py +0 -0
  105. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/num_utils.py +0 -0
  106. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/parsing.py +0 -0
  107. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/pump_types.py +0 -0
  108. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/sequence_types.py +0 -0
  109. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/spec_utils.py +0 -0
  110. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/table_types.py +0 -0
  111. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation/utils/tray_types.py +0 -0
  112. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation.egg-info/PKG-INFO +0 -0
  113. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation.egg-info/SOURCES.txt +0 -0
  114. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation.egg-info/dependency_links.txt +0 -0
  115. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation.egg-info/requires.txt +0 -0
  116. {pychemstation-0.9.0 → pychemstation-0.9.1}/pychemstation.egg-info/top_level.txt +0 -0
  117. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/0_2025-03-15 19-14-35.PDF +0 -0
  118. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/ACQRES.REG +0 -0
  119. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/CSlbk.ini +0 -0
  120. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DA.M/DAMETHOD.REG +0 -0
  121. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DA.M/INFO.MTH +0 -0
  122. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DA.M/RECALIB.MTH +0 -0
  123. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DA.M/rpthead.txt +0 -0
  124. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1.UV +0 -0
  125. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1A.ch +0 -0
  126. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1A.npz +0 -0
  127. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1B.ch +0 -0
  128. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1B.npz +0 -0
  129. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1C.ch +0 -0
  130. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1C.npz +0 -0
  131. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1D.ch +0 -0
  132. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1D.npz +0 -0
  133. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1E.ch +0 -0
  134. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DAD1E.npz +0 -0
  135. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/DiagResults.REG +0 -0
  136. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/PMP1.AnalyticalResults.drvml +0 -0
  137. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/REPORT01.CSV +0 -0
  138. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/REPORT02.CSV +0 -0
  139. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/REPORT03.CSV +0 -0
  140. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/REPORT04.CSV +0 -0
  141. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/REPORT05.CSV +0 -0
  142. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/RUN.LOG +0 -0
  143. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/Report.TXT +0 -0
  144. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/Report00.CSV +0 -0
  145. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/Report01.xls +0 -0
  146. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML +0 -0
  147. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/SAMPLE.XML.bak +0 -0
  148. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/WLS1.Sampler.scml +0 -0
  149. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/acq.macaml +0 -0
  150. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/acq.txt +0 -0
  151. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/acq_MethHist.txt +0 -0
  152. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/acq_damethod.reg +0 -0
  153. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/da.macaml +0 -0
  154. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/lcdiag.reg +0 -0
  155. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/sample.acaml +0 -0
  156. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/0_2025-03-15 19-14-35.D/single.B +0 -0
  157. {pychemstation-0.9.0/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M → pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M}/RECALIB.MTH +0 -0
  158. {pychemstation-0.9.0/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M → pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M}/rpthead.txt +0 -0
  159. {pychemstation-0.9.0/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D → pychemstation-0.9.1/tests/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D}/Limsinf.xml +0 -0
  160. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/__init__.py +0 -0
  161. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_talk.mac +0 -0
  162. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/CSlbk.ini +0 -0
  163. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/ACQ.MS +0 -0
  164. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.ConfigXML.xml +0 -0
  165. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodMetaData.xml +0 -0
  166. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodXML.xml +0 -0
  167. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.ConfigXML.xml +0 -0
  168. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodMetaData.xml +0 -0
  169. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodXML.xml +0 -0
  170. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.ConfigXML.xml +0 -0
  171. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodMetaData.xml +0 -0
  172. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodXML.xml +0 -0
  173. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.ConfigXML.xml +0 -0
  174. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodMetaData.xml +0 -0
  175. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodXML.xml +0 -0
  176. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.PretreatXML.xml +0 -0
  177. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/DAMETHOD.REG +0 -0
  178. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/FIA.REG +0 -0
  179. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INFO.MTH +0 -0
  180. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INJECTOR.MTH +0 -0
  181. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/MassHunterIntegration.ini +0 -0
  182. {pychemstation-0.9.0/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M → pychemstation-0.9.1/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M}/RECALIB.MTH +0 -0
  183. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RapidControl.InstrumentConfig.xml +0 -0
  184. {pychemstation-0.9.0/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M → pychemstation-0.9.1/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M}/rpthead.txt +0 -0
  185. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/smpl_pur.mth +0 -0
  186. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/Methods.Reg +0 -0
  187. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.B +0 -0
  188. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.LOG +0 -0
  189. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.S +0 -0
  190. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/hplc_testing.Start +0 -0
  191. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/ACQRES.REG +0 -0
  192. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/CSlbk.ini +0 -0
  193. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/DAMETHOD.REG +0 -0
  194. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/INFO.MTH +0 -0
  195. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1.UV +0 -0
  196. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.ch +0 -0
  197. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.npz +0 -0
  198. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.ch +0 -0
  199. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.npz +0 -0
  200. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.ch +0 -0
  201. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.npz +0 -0
  202. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.ch +0 -0
  203. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.npz +0 -0
  204. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.ch +0 -0
  205. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.npz +0 -0
  206. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DiagResults.REG +0 -0
  207. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/PMP1.AnalyticalResults.drvml +0 -0
  208. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT01.CSV +0 -0
  209. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT02.CSV +0 -0
  210. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT03.CSV +0 -0
  211. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT04.CSV +0 -0
  212. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT05.CSV +0 -0
  213. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/RUN.LOG +0 -0
  214. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report.TXT +0 -0
  215. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report00.CSV +0 -0
  216. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report01.xls +0 -0
  217. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML +0 -0
  218. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML.bak +0 -0
  219. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/WLS1.Sampler.scml +0 -0
  220. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.macaml +0 -0
  221. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.txt +0 -0
  222. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_MethHist.txt +0 -0
  223. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_damethod.reg +0 -0
  224. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/da.macaml +0 -0
  225. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
  226. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/lcdiag.reg +0 -0
  227. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/sequence.acam_ +0 -0
  228. {pychemstation-0.9.0 → pychemstation-0.9.1}/tests/hplc_testing 2025-03-27 17-13-47/sequence.acaml +0 -0
  229. {pychemstation-0.9.0 → pychemstation-0.9.1}/update-lib.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pychemstation
3
- Version: 0.9.0
3
+ Version: 0.9.1
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
@@ -8,10 +8,11 @@ Author-email: lucyhao <hao.lucyy@gmail.com>
8
8
  License-File: LICENSE
9
9
  Classifier: License :: OSI Approved :: MIT License
10
10
  Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3.9
11
12
  Classifier: Programming Language :: Python :: 3.10
12
13
  Classifier: Programming Language :: Python :: 3.11
13
14
  Classifier: Programming Language :: Python :: 3.12
14
- Requires-Python: >=3.9
15
+ Requires-Python: ~=3.9
15
16
  Requires-Dist: aghplctools==4.8.6
16
17
  Requires-Dist: coverage>=7.6.1
17
18
  Requires-Dist: matplotlib>=3.7.5
@@ -15,6 +15,7 @@ from aghplctools.ingestion.text import (
15
15
  _signal_table_re,
16
16
  chunk_string,
17
17
  )
18
+ from pandas._libs.parsers import EmptyDataError
18
19
  from result import Err, Ok, Result
19
20
 
20
21
  from ..analysis.chromatogram import AgilentHPLCChromatogram
@@ -69,6 +70,16 @@ class CSVProcessor(ReportProcessor):
69
70
  """
70
71
  super().__init__(path)
71
72
 
73
+ def find_csv_prefix(self) -> str:
74
+ files = [f for f in os.listdir(self.path) if os.path.isfile(os.path.join(self.path, f))]
75
+ for file in files:
76
+ if "00" in file:
77
+ name, _, file_extension = file.partition(".")
78
+ if "00" in name and file_extension.lower() == "csv":
79
+ prefix, _, _ = name.partition("00")
80
+ return prefix
81
+ raise FileNotFoundError("Couldn't find the prefix for CSV")
82
+
72
83
  def process_report(self) -> Result[AgilentReport, AnyStr]:
73
84
  """
74
85
  Method to parse details from CSV report.
@@ -76,8 +87,11 @@ class CSVProcessor(ReportProcessor):
76
87
  :return: subset of complete report details, specifically the sample location, solvents in pumps,
77
88
  and list of peaks at each wavelength channel.
78
89
  """
79
- labels = os.path.join(self.path, "REPORT00.CSV")
80
- if os.path.exists(labels):
90
+ prefix = self.find_csv_prefix()
91
+ labels = os.path.join(self.path, f"{prefix}00.CSV")
92
+ if not os.path.exists(labels):
93
+ raise ValueError("CSV reports do not exist, make sure to turn on the post run CSV report option!")
94
+ elif os.path.exists(labels):
81
95
  df_labels: Dict[int, Dict[int:AnyStr]] = pd.read_csv(
82
96
  labels, encoding="utf-16", header=None
83
97
  ).to_dict()
@@ -93,12 +107,15 @@ class CSVProcessor(ReportProcessor):
93
107
  elif val == "Number of Signals":
94
108
  num_signals = int(df_labels[1][pos])
95
109
  for s in range(1, num_signals + 1):
96
- df = pd.read_csv(
97
- os.path.join(self.path, f"REPORT0{s}.CSV"),
98
- encoding="utf-16",
99
- header=None,
100
- )
101
- peaks = df.apply(lambda row: AgilentPeak(*row), axis=1)
110
+ try:
111
+ df = pd.read_csv(
112
+ os.path.join(self.path, f"{prefix}0{s}.CSV"),
113
+ encoding="utf-16",
114
+ header=None,
115
+ )
116
+ peaks = df.apply(lambda row: AgilentPeak(*row), axis=1)
117
+ except EmptyDataError:
118
+ peaks = []
102
119
  try:
103
120
  wavelength = df_labels[1][pos + s].partition(",4 Ref=off")[0][
104
121
  -3:
@@ -4,10 +4,10 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pychemstation"
7
- version = "0.9.0"
7
+ version = "0.9.1"
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
- requires-python = ">=3.9"
10
+ requires-python = "~=3.9"
11
11
  readme = "README.md"
12
12
  dependencies = [
13
13
  "aghplctools==4.8.6",
@@ -27,6 +27,7 @@ dependencies = [
27
27
  "xsdata>=24.9",
28
28
  ]
29
29
  classifiers=[
30
+ "Programming Language :: Python :: 3.9",
30
31
  "Programming Language :: Python :: 3.10",
31
32
  "Programming Language :: Python :: 3.11",
32
33
  "Programming Language :: Python :: 3.12",
@@ -0,0 +1,5 @@
1
+ [RUN.LOG]
2
+ MDT=310031002F0032002F003200300032003500200032003A00330037003A00350000000000FEFFFFFF1B
3
+ CS=49289336
4
+ [CSlbk.ini]
5
+ CS=461895
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0"?>
2
+ <AnalyticalResultsModuleData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ModuleId="PMP1" SchemaVersion="1.0.0" xmlns="file://GenericAnalyticalResultData.xsd">
3
+ <ModuleInfo>
4
+ <SerialNumber>DEBAA04191</SerialNumber>
5
+ <PartNumber>G4220A</PartNumber>
6
+ <FirmwareRevision>B.07.38 [0002]</FirmwareRevision>
7
+ <Vendor>Agilent</Vendor>
8
+ <DisplayName>Binary Pump</DisplayName>
9
+ </ModuleInfo>
10
+ <DataChannels>
11
+ <AnalyticalResultsDataChannel Id="Generic" Name="G4220A:Generic file data" Description="Generic file data">
12
+ <DataRecords />
13
+ </AnalyticalResultsDataChannel>
14
+ </DataChannels>
15
+ </AnalyticalResultsModuleData>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0"?>
2
+ <SampleContainerInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SchemaVersion="1.0.0" xmlns="file://SampleContainerInfo.xsd">
3
+ <ActiveSampleContainer ContainerId="{CCED90BB-0208-427E-EB73-D3378CD6639A}" ContainerName="*54VialPlate*" />
4
+ <ActiveSampleLocation LocationString="P1-F2" LocationId="P1" />
5
+ <ContainerDeviceInfo ModuleId="WLS1">
6
+ <SerialNumber>DEBAP02845</SerialNumber>
7
+ <PartNumber>G4226A</PartNumber>
8
+ <Vendor>Agilent</Vendor>
9
+ <DisplayName>HiP Sampler</DisplayName>
10
+ <SampleContainerDevice ContentType="GZipCompressedBase64Xml" Id="{AB0E860B-D6E0-4B33-9FF0-98DC7E874822}" Name="2 Plates 10 Vials">
11
+ <XmlContent>H4sIAAAAAAAEAO1dbU8cORL255PuP7CctJ9g6Ha3+yXLsYIBtDmxJxSibPa+ETIkXMgGMWQ3q9X99ys/VXa7e7pnhskML6E1Iky3y3a5/Lj8lG2cbXWiTtVHdaUu1UgN1Sf1m7qhNxf0e6Su1T79+zs9ndHvNfWFJC8pZaye0fcxvf+nWlfvKccNlfBMbdHnD3wG9JPQv5+ojHf0VquIPjF9e61+VkdU6xnlG1F5p2oTtY1R72+oab2lrrdLqcuW/Aots9rb1tpSY8qt6SfCz7raUduwxUf6WBn7/Jw0GME6F+qcfmwZO+ovtav2KM+BKlRGv/eoNfv07YC+b6qUnhP6bKpSHdInwreCJIYqR56cZAqqW6v/UR1bHbVsU44L0tj20qn6U/0bfTaiFE3tOcbbG3oe01NMtdg2XtC7S3pjS+3KvU3fP9P3yX4/ojdnKPVCLJCgpPnlt4EdlrmEZlt4uzVh2Rdo8VuUY8t7h7fcdzvqe8p9o35QPwoi1giPbf0XoW9HQNAnKo1LsqmfKf85Wb6g7z9See9Q3t/V33zZ4Ri4btFnTdD+jJ4+eftZi54CryHCmpawGswqfyAIb8P9KsdYmyXXaxZao4+z0mvCui3XpX8vrfpB0l8Br3+oN1TaF8r3Cz2/pZT3KLkg3XLSNgPqbe0/kfQFlWXbZiVSkjAYiSl91n39lUUmLTEO2jimvB/hq65JgzH9nJPkAHj4CKtZG5xTec5WGX37glZc0rcrymd7dSTYdj3Ypontm1Vqsx5Yt94b3CN1yw/Rq7+j1q+3+7Sauz5Njb4jxG1Cl2PC4Zb/3ZQ7JguckrbNOteQfxmaHKMn31PKCf22ffGB2v+S3ti++QD/NRZsadgnlLNv/0E6Wi1j+snp53xC6gR4uaZ/j8Qj2h65Qu4XJPMZ472Z6wBvb5PDyf6Lni9kxNalD+FtLwO9z0jvM9iYW7cPe5xC4pDS1mhMr1FaTPiwGMiojRtApPUtFj12jjnCzFLinQaSNvDMuLG/WSahtxm8cUrvrUwCmQTY6pIx8mwwdx3Noc9/SPutHqlPEKkptSwDonJCwwZhxnq3GE+MnaZEDomCPhUCLRoHQFUMBKbgfynyVCgtIaNFJgECS6S011TXpcfoU8VoDkQNgAcjHq4AdkqPwZxQU0LGej/GoMVSHnjTZWB9li49Sp8qSkMPpwMPZxHo5vx2BEbA7nQcZ3h2MilKjoFMlkkFp2FNBvky+FsjuhQB/ygEuYkguRROYDVfFkdZdDQsgtM6b39JvzliPaP0Z4Ri7r1FtHl4Y7Qfq8tkPYtxGoPRNMCILcGqNUaLQfksk2Fc2HKMMO8YeXitar45ZfbM1D3rLBPde1if+UBvXkhkf401j7cPBPHViLcrCtcNHdeRexIxI7L3iOw6IqsvCzHRHIgp5kBM9s0g5oTsa9frzrCy+jARM27o2IUYa9k38IxR72Nu0Q+rQdZ7WX279KtwDxFbk1p2ocv2zxm44/L80beMrq/prW7GWPHFUGZALRlh5dlKGd9HdZmXxFGuZP0/g49otqupx1athGXEbF9X4v3Eq9b/XoFZWsTbfZg+gr3rCLYtkrN7qi4iNIhnOcqNxGMYxKKRX2028B8D+BL2KgnGegJPNH3V2kalZadMXZ/lrbX0+FjWCkc4o+TBjGJ3xUrVxFDsWXCK2SLz5Sy2qrCKVYO4XzXo8S+cK5U9i1j8WilnJZKZvs/6t25sm+DZ7djxLnIuY01j/Li6HaOars/9cKomug/RM/YMwNNcN/hWMLMqTDzFlYFvBRP35UceA2aWH/E/FdQsAz3TI/t4RmSfoE+mRfbWssUTieynM+SXX8mQHxY77pnxYsw4kyjPSERXwO/o2vof+xkrm4pMKv7DrS6Ea40mWGvM4Rvn3/3OsV/OPi2T6NGthbp1zQJrFgPZcedySjxnfqc9FR1j2UVPxA9qPLfLaNkjj4O12EmZQuouVXj6qVQD0cvK8HMSRM6z7Lz6mfo2fvblTD+bwZLT/axW8Z342bv3xavQqD819Lg8p5aTOZnS3nvk8AzM2IaQSeEtEngN9kIJvFsGz6DFu6Xgaxue4eVI4fQE+Y2kazljVMLTDWsyGp7XyVj/lDfSWYcEOml4zTA9xbqfSzfwr8068loZheLTzC49BSfl9Bhek/8Kp0pnz+/SE9mJCuvIAj1jqSML0gvMIpyuxcvmgS355FOVnsmO2DCQMZhfKplSTly79BL9wOmJsHAj6W4tM0y3GhdBHQZ6Jr4dicw8haTzblrSqCPxfZ7JbFbUdNQ1W9VlYt/nRnDH9k8xQyYSFUSi5yzsft1aQu/ZHrdnS4WXxcATIzAFeiqv41CZ+vMwpcSimaBYi4eIhDPyvrKLMWPhYzE+zBcZwaUfrW0yeTCiY+GB1Y5F7PXWks4cNPWcNBFuafxI0uKBE2mHkVg4h3dMZKTFGGPM25xOWmzFu+FavI6WuL3yOinqG8g+OssUwv2SDnvHonc5R38syh37sdyP5WGrDMd7BjhtS8/ljIhpxWeK3WIel3FHHSn+fsnN9lW6kbWtVOLJVJiSG0OljCGXXmLOcnXwuwzfNlB/BBnevU4kBuPZkNuRydg1SNfQu/QsJ/P+o/R+Tws7ioWRsYyWmdOlR5DgdPZRzMaqmdrNzAbPkcScQ5EpPAPbQI9pKaOU9EgYRiH+xARsSsOLDqQfmB04hlH5PT5Dnvl2cJ8Z8Z0aNuB0t0bItkyEKfXs97Gy31BPPg+WSZ8nMn6KGjONxA9U7DgX7Drmqj2u3N8dZL4/YsF3CnvyevYA+HLrMu4EQRLM6dx/Fe4KrK7UeUGK9Z5KJsGaShtvKGQ8adiyLd2txUSd3COTtSoDW0ymuzN6XXVM8ptZHGkWx1qcF/Qz/7c/889iv/xXQlpGp2PQLk40tZVLRlleG9FxbSV1Ogs+mkOfaSz2fvD6okfsne9FtCEtklhr2CoTCSfQEo9NpkfiU9vS3dzBvNPVkXt+ldfmh0L4MJ+ATpU7e12I32V+1b1nUM1hbTJGeEfZmu7muBy+vXvvouIUbTKlzPd5S7qbi43n9V17KMa3w8h8H3ke6PakC+iZC68shANq4f2l9Ff3Xo7x8+SkTCYxOXO4yXQ+yej6dDK9VO7vJ52tMrFfJhyN97GY2ySKT0cyH3ardrFwuBi2SGXfygA1zPtzxSuNUYBdLbbJgzgqQ7/wPlshZTC/KqS/SukvI965HmdFqgxiICO8L0MZLs7SKhfsGs9/c0lPhEvFLZ48jKmqOlK/CupiNSPcKFftsV4ittAd6bHolKiumJRtVXh7t8esHGu0cyM+81DFcl3rLpn0Wde6TSy2aJv1MuF4RdAfidg/FZlU8eqvCfo8R15OZx14HM/yiavdN5xvTl0LTvjcZn59hdu4+jn2bllhnfHFsgaSYhS2M77mHDmNFTpcdrFLt7sSd8g09bmLGKbH7+PB73zYnM6/pp3Z0DIXTz+zUQQRVKLcOZdI8JvK/Jup+TA+z5ib7edvf8JhMkf95rrJkxtOrnkDXvOGvOe4583eDWgx8SelXMrZkV1l7/m7FMTGMqfb/r72py3rMlr4ZAKprc46T4Aem+u1l+EVMsvlKt3b5LrL+rVWVtRazq+d5cy+H/IENrqR+w/HsFRdwt2yaG3B53KatTUtf6j4HkwnZ/vgM5VQ6d4m1dR9awHt2+6UtJZiHHXd+uhybfsbG/l+zPb7MIfiwUa4r9EifLae44Vz2ny7pMNb+euCsdqTHvpAVtyndNsnVtvpUu4e1Ssp+41qv2d27GXb3nfdvbpPXmKXcnH0Yu9etbex2kjE3sJ6iLeb9LSLCGiTsLwLj7Wv+D4DGyvskp+ffvdqGyJYr+rm1Un7nSu+f3WEEqZJVneiLmqlh2kj+/6A/Km9E/MUOB7Rb27bjh+dNm+3FN8ie44yq7d127ZJdN+Y627GXcNf5F/PuB93a+HRs5pRd7yCUTcNm2Ev3R+Gh/Q5oJZZbrAHDEeKzx5tgifYu5Q36WcPyN0EdjlyHuI25gxY3p2BYcvUbmqtisQfN9/fNd7DvO1on9SmqfUJeu4quB12Bzwk6mjNPPm7R5nD6WMaWbofWf3IegQjS69sZC2Wc9wyuire2jWeGJUhk3QjrFn+z8pG3ldBmU0Jm9PdL/9cuPMXj7LwjX2eXX63F5ivRcdLaVFVTntqva3xvbVVL6mteu626pW0tZla5bM1/VfxX2/aW172IXGG+OzK13eEEXkzFwrDEmeheXbNbKOf8G5Xuf/14TZ5lxXtLYe9LmemntcCYb/Vo/bp/x/Kjvo/BAZ4UD5lAAA=</XmlContent>
12
+ </SampleContainerDevice>
13
+ </ContainerDeviceInfo>
14
+ <SampleContainerCatalog>
15
+ <SampleContainer ContentType="GZipCompressedBase64Xml" Id="{CCED90BB-0208-427E-EB73-D3378CD6639A}" Name="*54VialPlate*">
16
+ <XmlContent>H4sIAAAAAAAEAM1ZW2/bNhQ+rx2w/xDkYViLJI4t27EzTUASpxcgWwenTbtHxVYSY0qcWdrabNh/33cOSZESJdlF/VAIjiie71x4bhKZkC4ppnt6pJQSOqMlPVCOmQXuCa1ohz6DmuIpo2OMM1B+pl26AyoH1zF1cH2S6wC/AH+X4LvFbI8OcXUx+ki/0AU0zcCXQF5M+6IhE10PmE8g09c134oulnwlq2HreYUstQvuw+K3SxGFsv57XIzh5zewIBGPLOgGP5YR0b/AndE5TWgMzlNc+7izBSOM+hgdgbqP3ylGAUYT/A0wHoFvQkNcAXhP6D/o6DRoCYFcwGKOTExP9KvEKQHlBQ2g5QrUGLTfhJ6D8kKkNXGFGP+F8QVWNxOOhV4nS2POJnpIU0iIYSU/p5AagboCOhE+n8q2JzqPUlizA5TyZ+bYW5ZSpfFcNR5T8dNcPMT5cyuzKuIR/QDunH76BrKY5R9jZln4nyMSC8Llr/qabfKtnwj/TNb8WGAPdIXsYt23su7v6Tt6VnjB5EdWofuIS9gTQ3IC2xe65mYYrfA3lTVVJVgZE6BieExFw8Xt6KuMP8c9lXVkoi+THFjSH3j6INpzWMMWcF0OxJ8uhr2TSmwYwxG6ph8RnR6we7gH4OP7AL/nwn0jOZg2cPaB2xP0HurT8MzgW2PDoZ55qsysNGaImb62dKVRdq7T6BPjkc4aH5axfszWRfeV5M1ce2Il3rS9Yym56uZfjtEjMjMBPterWsK6TK9MeYN9yd3iQc+PHeSlznW1HtVrA4+vGTUXOxPQXLvuJHYL+qeoj1Rnh/HEl+St8YrqeddORylb6dNZy4Mzmzkrr0en0gvzAm1zQtnkW/euFAMTLc5g9sFcZKs+uaOzsCvvs5HY8qRnOFcDLwfr88n4w88+H5u1oN7CA7lU+IN0rbZsLmNt7ynPt3eAa3ljzEBZX+v8Lt6Dj3rSIQ5Roc+dHHnmVKdbq3bW2D3VuRlLhFOx/VOpd3XlG8DEg7v9Akh+2zB1hM5woCvJdJXdIpKHtV2jHLWyh9pitj4eBnuB9XDmtr0xLMZG63VNXbqy1selK513T+5Hch/DQ6Z7K6kv5T26kO8L5o1Fp+kBBvW64ulA+/9EPHALzL3+0lK9Qo25Lhn3dwNOdcS2bvIO6M8YmRgOdOWZ+PZ0LhgJXSdChndz6V3IapffWyu/mt1NugLpK226gq3p6uNq19Xfmq6B1GebrsHWdB0VnbhJ13Brukby7dqm62hrusbyndOma7Q1Xdyvx2u0jTeoKouwPcpgdkpv47aep3aT/HUyq+1332rHS52vuqZuV+6KX9KV6r49DP/JV3Y8N+pBRfZpi+zmL6xmDUGR10bK2das7xdZbPgnW5M9lIpwZZ9vTfZR8U4z/C+/stpM/ddhMqcmGWcx/u7YlRcWu/SoOJnwzwte4XkpOZ/Ljk2d/MRS0Ynsh/jLztfEuPcY834pazkf6rae6kxlp/AWczeyB86FQ9WLstmnh7qPqD1JlVd9+ZvzknqU0atOh+x5RSS7LqvXp5d1N/O3o8pSePe6kE4UYeVVbpdqTq2meg8aIcvtWZWdNTglh2fGDs7O8mnRB8mxVKyMdR6o6HBt9nQWNaNC+n0jGW2osKCdwjbeHXJGXsp3dCK9fyZzNp82x1vZfKZ2SX/CB7HsqCN4Ve3gkpJMH2dluG+YSHqjy1mmhs6KEzmrusNsT8eijmY5rooMUFk1kHM3l6+MCLXViawoQbVVV+fTQ7yH5rhWUueZ7gmn8obmPeQbQSl/b4JkXLkjfCxiEhW7wKHOKEvhDLJPZj+ocsZFdTbuS53arla3Bp636zBdzO1azWfF2drT4szpNW5N+x0g1yszmpuoRprP4c+H6HoryUdeK3fGqDhFeY+cexR/nWONtzpHfLyVXLW/U/FbfY4oSvt/VSL6Hx/TG2V4GQAA</XmlContent>
17
+ </SampleContainer>
18
+ <SampleContainer ContentType="GZipCompressedBase64Xml" Id="{D4AC688B-AB83-DF88-3A39-2A73D39869AE}" Name="**10Vials**">
19
+ <XmlContent>H4sIAAAAAAAEAM1Y227bRhCd1xboPwh+KJpCjizFiiWXJWDXzgVwG0NqnfSpoCXaFspIrsg0cYr+e8+c3eXyLhfoQ0FIJGfOzM7ObUcKZC6RvJd7SSSWH2Qja8lAWeEey1Z68gncBG+pHOM5Bed72ZM7oDJIHcsA10deT/F5hu8N5G5BHckBriGe3smPcoGVFpCLoS+Sfa6Qcq016DF01tda/idrqeYr7kat1x2q1iGkD/LPnoQScP/vcSlG31/DgpgeWckNPqojlL/kTA7lBOjnMsF1it2c4HsCi/bBe0HqPt5O8JniaYSnIzyf8X0CuSko5/I31hi0rBIAvYLFGplIHuQnxikG51tcQ9h8BX4EbkqKamqTCPD8Ac8X2NkC1Mz6IaQelWzjBzKDhggW6nsCrSG4W6BjytW5andsc0ht6wFlfJnKJS3LaNONtT22PihzlVaNxoxeWtI/mj23pJp4h/I1pDP57n+Qw6r/GJRNHgGNSUREUb7qbbWpbv0Z5Rfc832OfWrrYw/7vuW+v5Iv5YvcCz43yvw6Yg57ImiOYfvKVtwCT1t8J9xTVYPXcQZUBI+ZaBRxPXuV8ee4J9xHyvVS5tJGfsfbW66ewRpTnXsVvnomYVyUr9G5lm+AG8lY+rg/Q5z0PsbnCaVvmIFJi+QhcH2i+6hNJ7OAXxXluoJSHiqUrcUcgXIEDYb2UKENWv3hvDHY4b8yth6vXZF9yZxZWk9s6U3Hu4Q/NE+LuXeNJ62IDTtBDKnM7m0DG1MbF+cV9an2jHXO8di5zXezL8N9Ds9o76tK78IuaXsMRNHWO8ZzJZ/zeklsxjjv/Js8NlWXcpUPXOdPPJueeF3oNz18V2m6TmKrNQK1GvnySj9jpfvcuy4aur7uZ0k9pgf2bJYNmXkmy0yOTfA+gX+aVqrni8uCenbVsWkH6g0943bahGzD+r5SpndX+DVPgwU4u2tZz9Y+fDJiBzhAbT+pxdtXoLNyZrMqYhyTgs99rVdr/2OpS41s1mtHX0GHnigmZhPi6z2gHKOyP7oitNv7DnuB/Wh+dvV+j/GxedVQUUVdu6MwZB/t837E+xR563qx0fqCJ+KKs4LKRlzTVa9Dvar4c5z7/w5zU0Lemifr2iIW9jlmBfZQv824Yo9ryxB3+ZqNkRdZR0XqjqcFfcNC5Jx0e6V6L1ftacL4qPaI85j67FDUF+QzTJhPbvVp6iXeN/RYxjPNTMUapYx5t2K11FdS3C941hMl7Zidh50T74ynxxvQbtiNM0qM4G2dm43VdURg89GcJ1XpIbvlOJ8om3FubTNB+4kuLJxGfv06qmzDLi3d2LIuPe9XPC1CO6u3cd2UP7PndXW693SHNJrSPC5Vqk7Xb5l1Ce2MbGaYeE2xo5HNq3ZUIL8+SkcXKsh5p4X6nbNbxewpC9J8hj0e73Xrb5C5/AEfRJw4qr9R2nFeR7Fzhcjaw5JkmRsUdhxztr8DdWQzvYnnJa7yHDDZNebvlKJcGRFYq2PuKEb9Nf0CK/MD9NAlri0rP7Vd4pSdX8/l10QZfz8Gqbhyj3iXx0T3bep8bDPKczSD/Jv22kMghzZrirjBo3vVoLHTNe1C6X4nrrMVO1n77+t6DTYhAlD9/Kjvc9q7tR1MpYuUIO8Z2rmv7cSq2i6p2VSN/mY2c/ZvpfnU/0+wWz5Al9wyY1Vee2mYz64X7CaKPIcPbm0W1fEBT6/y/gYVjzbnT2h33vX/VCj/AN11+mXCEgAA</XmlContent>
20
+ </SampleContainer>
21
+ </SampleContainerCatalog>
22
+ </SampleContainerInfo>