pychemstation 0.8.4__py3-none-any.whl → 0.9.1__py3-none-any.whl

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 (33) hide show
  1. pychemstation/__init__.py +1 -1
  2. pychemstation/analysis/__init__.py +4 -1
  3. pychemstation/analysis/base_spectrum.py +4 -4
  4. pychemstation/{utils → analysis}/chromatogram.py +4 -7
  5. pychemstation/analysis/process_report.py +137 -73
  6. pychemstation/control/README.md +22 -46
  7. pychemstation/control/__init__.py +5 -0
  8. pychemstation/control/controllers/__init__.py +2 -0
  9. pychemstation/control/controllers/comm.py +39 -18
  10. pychemstation/control/controllers/devices/device.py +27 -14
  11. pychemstation/control/controllers/devices/injector.py +33 -89
  12. pychemstation/control/controllers/tables/method.py +266 -111
  13. pychemstation/control/controllers/tables/ms.py +7 -4
  14. pychemstation/control/controllers/tables/sequence.py +171 -82
  15. pychemstation/control/controllers/tables/table.py +192 -116
  16. pychemstation/control/hplc.py +117 -83
  17. pychemstation/generated/__init__.py +0 -2
  18. pychemstation/generated/dad_method.py +1 -1
  19. pychemstation/generated/pump_method.py +15 -19
  20. pychemstation/utils/injector_types.py +1 -1
  21. pychemstation/utils/macro.py +12 -11
  22. pychemstation/utils/method_types.py +3 -2
  23. pychemstation/{analysis/utils.py → utils/num_utils.py} +2 -2
  24. pychemstation/utils/parsing.py +1 -11
  25. pychemstation/utils/sequence_types.py +4 -5
  26. pychemstation/{analysis → utils}/spec_utils.py +1 -2
  27. pychemstation/utils/table_types.py +10 -9
  28. pychemstation/utils/tray_types.py +48 -38
  29. {pychemstation-0.8.4.dist-info → pychemstation-0.9.1.dist-info}/METADATA +64 -24
  30. pychemstation-0.9.1.dist-info/RECORD +37 -0
  31. pychemstation-0.8.4.dist-info/RECORD +0 -37
  32. {pychemstation-0.8.4.dist-info → pychemstation-0.9.1.dist-info}/WHEEL +0 -0
  33. {pychemstation-0.8.4.dist-info → pychemstation-0.9.1.dist-info}/licenses/LICENSE +0 -0
@@ -7,28 +7,30 @@ from typing import TypeVar
7
7
 
8
8
  class TableOperation(Enum):
9
9
  def __str__(self):
10
- return '%s' % self.value
10
+ return "%s" % self.value
11
11
 
12
12
  DELETE_TABLE = 'DelTab {register}, "{table_name}"'
13
13
  CREATE_TABLE = 'NewTab {register}, "{table_name}"'
14
14
  NEW_ROW = 'InsTabRow {register}, "{table_name}"'
15
15
  DELETE_ROW = 'DelTabRow {register}, "{table_name}", {row}'
16
16
  EDIT_ROW_VAL = 'SetTabVal "{register}", "{table_name}", {row}, "{col_name}", {val}'
17
- EDIT_ROW_TEXT = 'SetTabText "{register}", "{table_name}", {row}, "{col_name}", "{val}"'
17
+ EDIT_ROW_TEXT = (
18
+ 'SetTabText "{register}", "{table_name}", {row}, "{col_name}", "{val}"'
19
+ )
18
20
  GET_ROW_VAL = 'TabVal("{register}", "{table_name}", {row}, "{col_name}")'
19
21
  GET_ROW_TEXT = 'TabText$("{register}", "{table_name}", {row}, "{col_name}")'
20
22
  GET_NUM_ROWS = 'Rows = TabHdrVal({register}, "{table_name}", "{col_name}")'
21
23
  GET_OBJ_HDR_VAL = 'ObjHdrVal("{register}", "{register_flag}")'
22
24
  GET_OBJ_HDR_TEXT = 'ObjHdrText$("{register}", "{register_flag}")'
23
- UPDATE_OBJ_HDR_VAL = 'SetObjHdrVal {register}, {register_flag}, {val}'
24
- UPDATE_OBJ_HDR_TEXT = 'SetObjHdrText {register}, {register_flag}, {val}'
25
+ UPDATE_OBJ_HDR_VAL = "SetObjHdrVal {register}, {register_flag}, {val}"
26
+ UPDATE_OBJ_HDR_TEXT = "SetObjHdrText {register}, {register_flag}, {val}"
25
27
  NEW_COL_TEXT = 'NewColText {register}, "{table_name}", "{col_name}", "{val}"'
26
28
  NEW_COL_VAL = 'NewColVal {register}, "{table_name}", "{col_name}", {val}'
27
29
 
28
30
 
29
31
  class RegisterFlag(Enum):
30
32
  def __str__(self):
31
- return '%s' % self.value
33
+ return "%s" % self.value
32
34
 
33
35
  # for table
34
36
  NUM_ROWS = "NumberOfRows"
@@ -40,7 +42,7 @@ class RegisterFlag(Enum):
40
42
  SOLVENT_D_COMPOSITION = "PumpChannel4_CompositionPercentage"
41
43
  FLOW = "Flow"
42
44
  MAX_TIME = "StopTime_Time"
43
- POST_TIME = "PostTime_Time" #TODO: check
45
+ POST_TIME = "PostTime_Time" # TODO: check
44
46
  COLUMN_OVEN_TEMP1 = "TemperatureControl_Temperature"
45
47
  COLUMN_OVEN_TEMP2 = "TemperatureControl2_Temperature"
46
48
  STOPTIME_MODE = "StopTime_Mode"
@@ -55,7 +57,6 @@ class RegisterFlag(Enum):
55
57
  EXTERNAL_CONTACT = "ExternalContact"
56
58
  FUNCTION = "Function"
57
59
 
58
-
59
60
  # for Sequence
60
61
  VIAL_LOCATION = "Vial"
61
62
  NAME = "SampleName"
@@ -86,10 +87,10 @@ class RegisterFlag(Enum):
86
87
  REMOTE_DUR = "RemoteDuration"
87
88
 
88
89
 
89
-
90
90
  @dataclass
91
91
  class Table:
92
92
  register: str
93
93
  name: str
94
94
 
95
- T = TypeVar('T')
95
+
96
+ T = TypeVar("T")
@@ -19,16 +19,16 @@ class Num(Enum):
19
19
  @classmethod
20
20
  def from_num(cls, num: int):
21
21
  num_mapping = {
22
- 1: Num.ONE,
23
- 2: Num.TWO,
24
- 3: Num.THREE,
25
- 4: Num.FOUR,
26
- 5: Num.FIVE,
27
- 6: Num.SIX,
28
- 7: Num.SEVEN,
29
- 8: Num.EIGHT,
30
- 9: Num.NINE
31
- }
22
+ 1: Num.ONE,
23
+ 2: Num.TWO,
24
+ 3: Num.THREE,
25
+ 4: Num.FOUR,
26
+ 5: Num.FIVE,
27
+ 6: Num.SIX,
28
+ 7: Num.SEVEN,
29
+ 8: Num.EIGHT,
30
+ 9: Num.NINE,
31
+ }
32
32
 
33
33
  if num in num_mapping:
34
34
  return num_mapping[num]
@@ -58,13 +58,13 @@ class Letter(Enum):
58
58
  @classmethod
59
59
  def from_str(cls, let: str) -> Letter:
60
60
  letter_mapping = {
61
- "A": Letter.A,
62
- "B": Letter.B,
63
- "C": Letter.C,
64
- "D": Letter.D,
65
- "E": Letter.E,
66
- "F": Letter.F
67
- }
61
+ "A": Letter.A,
62
+ "B": Letter.B,
63
+ "C": Letter.C,
64
+ "D": Letter.D,
65
+ "E": Letter.E,
66
+ "F": Letter.F,
67
+ }
68
68
 
69
69
  if let in letter_mapping:
70
70
  return letter_mapping[let]
@@ -83,6 +83,7 @@ class FiftyFourVialPlate:
83
83
  valid vial locations: P1-A2, P2-F9
84
84
  invalid vial locations: P3-A1, P1-Z3, P2-B10
85
85
  """
86
+
86
87
  plate: Plate
87
88
  letter: Letter
88
89
  num: Num
@@ -94,21 +95,28 @@ class FiftyFourVialPlate:
94
95
  def from_str(cls, loc: str):
95
96
  """
96
97
  Converts a string representing the vial location into numerical representation for Chemstation.
98
+
97
99
  :param loc: vial location
98
- :returns: `FiftyFourVialPlate` object representing the vial location
100
+ :return: `FiftyFourVialPlate` object representing the vial location
99
101
  :raises: ValueError if string is invalid tray location
100
102
  """
101
103
  if len(loc) != 5:
102
- raise ValueError("Plate locations must be PX-LY, where X is either 1 or 2 and Y is 1 to 9")
104
+ raise ValueError(
105
+ "Plate locations must be PX-LY, where X is either 1 or 2 and Y is 1 to 9"
106
+ )
103
107
  try:
104
108
  plate = int(loc[1])
105
109
  letter = loc[3]
106
110
  num = int(loc[4])
107
- return FiftyFourVialPlate(plate=Plate.from_num(plate),
108
- letter=Letter.from_str(letter),
109
- num=Num.from_num(num))
110
- except Exception as e:
111
- raise ValueError("Plate locations must be PX-LY, where X is either 1 or 2 and Y is 1 to 9")
111
+ return FiftyFourVialPlate(
112
+ plate=Plate.from_num(plate),
113
+ letter=Letter.from_str(letter),
114
+ num=Num.from_num(num),
115
+ )
116
+ except Exception:
117
+ raise ValueError(
118
+ "Plate locations must be PX-LY, where X is either 1 or 2 and Y is 1 to 9"
119
+ )
112
120
 
113
121
  @classmethod
114
122
  def from_int(cls, num: int) -> Tray:
@@ -116,7 +124,7 @@ class FiftyFourVialPlate:
116
124
  Converts an integer representation of a vial location to a `FiftyFourVialPlate` or `TenVialColumn` object
117
125
 
118
126
  :param num: numerical representation of a vial location
119
- :returns: the proper vial location object
127
+ :return: the proper vial location object
120
128
  :raises: ValueError no matching can be made
121
129
  """
122
130
  if num in range(1, 11):
@@ -124,19 +132,19 @@ class FiftyFourVialPlate:
124
132
 
125
133
  row_starts = [
126
134
  # plate 1
127
- FiftyFourVialPlate.from_str('P1-F1'),
128
- FiftyFourVialPlate.from_str('P1-E1'),
129
- FiftyFourVialPlate.from_str('P1-D1'),
130
- FiftyFourVialPlate.from_str('P1-C1'),
131
- FiftyFourVialPlate.from_str('P1-B1'),
132
- FiftyFourVialPlate.from_str('P1-A1'),
135
+ FiftyFourVialPlate.from_str("P1-F1"),
136
+ FiftyFourVialPlate.from_str("P1-E1"),
137
+ FiftyFourVialPlate.from_str("P1-D1"),
138
+ FiftyFourVialPlate.from_str("P1-C1"),
139
+ FiftyFourVialPlate.from_str("P1-B1"),
140
+ FiftyFourVialPlate.from_str("P1-A1"),
133
141
  # plate 2
134
- FiftyFourVialPlate.from_str('P2-F1'),
135
- FiftyFourVialPlate.from_str('P2-E1'),
136
- FiftyFourVialPlate.from_str('P2-D1'),
137
- FiftyFourVialPlate.from_str('P2-C1'),
138
- FiftyFourVialPlate.from_str('P2-B1'),
139
- FiftyFourVialPlate.from_str('P2-A1'),
142
+ FiftyFourVialPlate.from_str("P2-F1"),
143
+ FiftyFourVialPlate.from_str("P2-E1"),
144
+ FiftyFourVialPlate.from_str("P2-D1"),
145
+ FiftyFourVialPlate.from_str("P2-C1"),
146
+ FiftyFourVialPlate.from_str("P2-B1"),
147
+ FiftyFourVialPlate.from_str("P2-A1"),
140
148
  ]
141
149
 
142
150
  # find which row
@@ -160,7 +168,8 @@ class FiftyFourVialPlate:
160
168
  return FiftyFourVialPlate(
161
169
  plate=starting_loc.plate,
162
170
  letter=starting_loc.letter,
163
- num=Num.from_num(i))
171
+ num=Num.from_num(i),
172
+ )
164
173
  raise ValueError("Number didn't match any location. " + str(num))
165
174
 
166
175
 
@@ -168,6 +177,7 @@ class TenVialColumn(Enum):
168
177
  """
169
178
  Class to represent the 10 vial locations.
170
179
  """
180
+
171
181
  ONE = 1
172
182
  TWO = 2
173
183
  THREE = 3
@@ -1,16 +1,25 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pychemstation
3
- Version: 0.8.4
4
- Summary: Library to interact with Chemstation software, primarily used in Hein lab.
3
+ Version: 0.9.1
4
+ Summary: Library to interact with Chemstation software, primarily used in Hein lab
5
+ Project-URL: Documentation, https://pychemstation-e5a086.gitlab.io/pychemstation.html
6
+ Project-URL: Repository, https://gitlab.com/heingroup/device-api/pychemstation
5
7
  Author-email: lucyhao <hao.lucyy@gmail.com>
6
8
  License-File: LICENSE
7
- Requires-Python: >=3.8
8
- Requires-Dist: aghplctools>=4.8.8
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Requires-Python: ~=3.9
16
+ Requires-Dist: aghplctools==4.8.6
9
17
  Requires-Dist: coverage>=7.6.1
10
18
  Requires-Dist: matplotlib>=3.7.5
11
19
  Requires-Dist: pandas>=2.0.3
12
20
  Requires-Dist: pdoc>=14.7.0
13
21
  Requires-Dist: polling>=0.3.2
22
+ Requires-Dist: pre-commit>=4.2.0
14
23
  Requires-Dist: pytest>=7.3.5
15
24
  Requires-Dist: rainbow-api>=1.0.10
16
25
  Requires-Dist: result>=0.17.0
@@ -27,8 +36,12 @@ Description-Content-Type: text/markdown
27
36
 
28
37
  [![PyPI Latest Release](https://img.shields.io/pypi/v/pychemstation.svg)](https://pypi.org/project/pychemstation/)
29
38
 
39
+ > **_NOTE:_** If you are running Python **3.8**, use versions 0.**8**.x. If you are running Python **3.9** use versions 0.**8**.x.
40
+ > If you are running Python **>=3.10**, use version 0.**10**.x. You are welcome to use newer pychemstation versions with older Python versions, but functionality
41
+ > is not guaranteed!
42
+
30
43
  Unofficial Python package to control Agilent Chemstation; we are not affiliated with Agilent.
31
- Check out the [docs](https://hein-analytical-control-5e6e85.gitlab.io/) for usage instructions. This project is under
44
+ Check out the [docs](https://pychemstation-e5a086.gitlab.io/pychemstation.html) for usage instructions. This project is under
32
45
  active development, and breaking changes may occur at any moment.
33
46
 
34
47
  ## Getting started
@@ -68,29 +81,55 @@ HPLCTalk_Run
68
81
 
69
82
  ```python
70
83
  from pychemstation.control import HPLCController
84
+ from pychemstation.utils.method_types import *
71
85
  import pandas as pd
72
86
 
73
- # these paths will be unique to your Chemstation setup
74
- DEFAULT_METHOD = "GENERAL-POROSHELL"
75
- DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
76
87
  DEFAULT_METHOD_DIR = "C:\\ChemStation\\1\\Methods\\"
77
- DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data\\"
78
- DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data\\"
79
- SEQUENCE_DIR = "C:\\USERS\\PUBLIC\\DOCUMENTS\\CHEMSTATION\\2\\Sequence\\"
88
+ SEQUENCE_DIR = "C:\\USERS\\PUBLIC\\DOCUMENTS\\CHEMSTATION\\3\\Sequence"
89
+ DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
90
+ DATA_DIR_2 = "C:\\Users\\Public\\Documents\\ChemStation\\2\\Data"
91
+ DATA_DIR_3 = "C:\\Users\\Public\\Documents\\ChemStation\\3\\Data"
80
92
 
93
+ # Initialize HPLC Controller
81
94
  hplc_controller = HPLCController(data_dirs=[DATA_DIR_2, DATA_DIR_3],
82
95
  comm_dir=DEFAULT_COMMAND_PATH,
83
- sequence_dir=SEQUENCE_DIR,
84
- method_dir=DEFAULT_METHOD_DIR)
85
-
86
- hplc_controller.preprun()
87
- hplc_controller.switch_method(method_name=DEFAULT_METHOD)
88
- hplc_controller.run_method(experiment_name="Run 10")
96
+ method_dir=DEFAULT_METHOD_DIR,
97
+ sequence_dir=SEQUENCE_DIR)
98
+
99
+ # Switching a method
100
+ hplc_controller.switch_method("General-Poroshell")
101
+
102
+ # Editing a method
103
+ new_method = MethodDetails(
104
+ name="General-Poroshell",
105
+ params=HPLCMethodParams(
106
+ organic_modifier=7,
107
+ flow=0.44),
108
+ timetable=[
109
+ TimeTableEntry(
110
+ start_time=0.10,
111
+ organic_modifer=7,
112
+ flow=0.34
113
+ ),
114
+ TimeTableEntry(
115
+ start_time=4,
116
+ organic_modifer=99,
117
+ flow=0.55
118
+ )
119
+ ],
120
+ stop_time=5,
121
+ post_time=2
122
+ )
123
+ hplc_controller.edit_method(new_method)
124
+
125
+ # Run a method and get a report or data from last run method
126
+ hplc_controller.run_method(experiment_name="test_experiment")
127
+ report = hplc_controller.get_last_run_method_report()
128
+ vial_location = report.vial_location
129
+
130
+ # Save, analyze or plot the data!
89
131
  chrom = hplc_controller.get_last_run_method_data()
90
-
91
- # afterwards, save, analyze or plot the data!
92
- values = {"x": chrom.A.x, "y": chrom.A.y}
93
- chromatogram_data = pd.DataFrame.from_dict(values)
132
+ chromatogram_data = pd.DataFrame.from_dict({"x": chrom.A.x, "y": chrom.A.y})
94
133
  chromatogram_data.to_csv("Run 10.csv", index=False)
95
134
  ```
96
135
 
@@ -110,6 +149,7 @@ Lucy Hao, Maria Politi
110
149
 
111
150
  - Adapted from [**AnalyticalLabware**](https://github.com/croningp/analyticallabware), created by members in the Cronin
112
151
  Group. Copyright © Cronin Group, used under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) license.
113
- - Adapted from the [MACROS](https://github.com/Bourne-Group/HPLCMethodOptimisationGUI)
114
- used in [**Operator-free HPLC automated method development guided by Bayesian optimization**](https://pubs.rsc.org/en/content/articlelanding/2024/dd/d4dd00062e),
115
- created by members in the Bourne Group. Copyright © Bourne Group, used under the [MIT](https://opensource.org/license/mit) license.
152
+ - Adapted from the [MACROS](https://github.com/Bourne-Group/HPLCMethodOptimisationGUI) used in [**Operator-free HPLC
153
+ automated method development guided by Bayesian optimization**](https://pubs.rsc.org/en/content/articlelanding/2024/dd/d4dd00062e),
154
+ created by members in the Bourne Group. Copyright © Bourne Group, used under
155
+ the [MIT](https://opensource.org/license/mit) license.
@@ -0,0 +1,37 @@
1
+ pychemstation/__init__.py,sha256=Sc4z8LRVFMwJUoc_DPVUriSXTZ6PO9MaJ80PhRbKyB8,34
2
+ pychemstation/analysis/__init__.py,sha256=dcX7OeHoKdyrECHRCSXgKZN81nOXSAmZRxXzRT0jpDc,126
3
+ pychemstation/analysis/base_spectrum.py,sha256=t_VoxAtBph1V7S4fOsziERHiOBkYP0_nH7LTwbTEvcE,16529
4
+ pychemstation/analysis/chromatogram.py,sha256=cBfLh58PrBZMg9-u5o_Q-FCuu3MlB0q0ZFm9_2uaciU,3270
5
+ pychemstation/analysis/process_report.py,sha256=uW5sqAIw_YR3-MHaid1dDEF8qdys-ZEZfa-1vqV-nms,13363
6
+ pychemstation/control/README.md,sha256=_7ITj4hD17YIwci6UY6xBebC9gPCBpzBFTB_Gx0eJBc,3124
7
+ pychemstation/control/__init__.py,sha256=uzfsVAGDhMP6SyV10KAH264ytDLMsMRZXRK5XhWS-rc,102
8
+ pychemstation/control/hplc.py,sha256=mV-IO-6wdzB7MuV5LcZYwb4yZibBgEKX2LtbJ9WiKNw,12304
9
+ pychemstation/control/controllers/README.md,sha256=S5cd4NJmPjs6TUH98BtPJJhiS1Lu-mxLCNS786ogOrQ,32
10
+ pychemstation/control/controllers/__init__.py,sha256=XXTKee3bQpDJ2EO0k-ekJoZuq1h6WeO_DsOafxkBgTo,247
11
+ pychemstation/control/controllers/comm.py,sha256=t5QSua6B9OTimJbTpeF9grPHpLKNb8yznEZmKolLtWY,8184
12
+ pychemstation/control/controllers/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ pychemstation/control/controllers/devices/device.py,sha256=XYOTehPYapL40GmcrtkRtdaZU2yvS4KwkLPRs9RB04U,1492
14
+ pychemstation/control/controllers/devices/injector.py,sha256=C8HOxV2s1jvgum57DQ-bRTbJmb644TmZmGybxEoNN3Y,2109
15
+ pychemstation/control/controllers/tables/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ pychemstation/control/controllers/tables/method.py,sha256=SDchncXgoFmzE9MLdVFTKs1-2Mx1EflG8pj5ALiq7Ck,19837
17
+ pychemstation/control/controllers/tables/ms.py,sha256=ywrSa60H_5de32jxL2U5n464dIS_NXCC1M89mSiq-fY,723
18
+ pychemstation/control/controllers/tables/sequence.py,sha256=SCLPj0c3kU9yApBGM7UbwzaJ5-NgRUj1SPZzSqV4f9Y,14175
19
+ pychemstation/control/controllers/tables/table.py,sha256=OGpCS_FKsvl1WNWWWk6ooX1TGNHrGroTjlGqNPE6YNM,12632
20
+ pychemstation/generated/__init__.py,sha256=xnEs0QTjeuGYO3tVUIy8GDo95GqTV1peEjosGckpOu0,977
21
+ pychemstation/generated/dad_method.py,sha256=xTUiSCvkXcxBUhjVm1YZKu-tHs16k23pF-0xYrQSwWA,8408
22
+ pychemstation/generated/pump_method.py,sha256=s3MckKDw2-nZUC5lHrJVvXYdneWP8-9UvblNuGryPHY,12092
23
+ pychemstation/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ pychemstation/utils/injector_types.py,sha256=PXwJK1uXs8hlQ6dWIEbAGfk2BpQJQmN3SlUbL4ntZz0,822
25
+ pychemstation/utils/macro.py,sha256=0Kd86_xDB_99R5qcnCpD-FEm1mdGuPMuCaFoYIUkfhc,2937
26
+ pychemstation/utils/method_types.py,sha256=dRf12UaWerqPkycFq4nNXZk6HnOKq0ZIyROIuKDKiSI,1639
27
+ pychemstation/utils/num_utils.py,sha256=dDs8sLZ_SdtvDKhyhF3IkljiVf16IYqpMTO5tEk9vMk,2079
28
+ pychemstation/utils/parsing.py,sha256=mzdpxrH5ux4-_i4CwZvnIYnIwAnRnOptKb3fZyYJcx0,9307
29
+ pychemstation/utils/pump_types.py,sha256=HWQHxscGn19NTrfYBwQRCO2VcYfwyko7YfBO5uDhEm4,93
30
+ pychemstation/utils/sequence_types.py,sha256=T0IP2iMqorUrdzH4at9Vsmmb3SCAEmN4z1cUlFaeTXw,1089
31
+ pychemstation/utils/spec_utils.py,sha256=lS27Xi4mFNDWBfmBqOoxTcVchPAkLK2mSdoaWDOfaPI,10211
32
+ pychemstation/utils/table_types.py,sha256=inOVpwSsic31VdVdJkfuq35QfKd7PoNoXY1QnOxZ6Sw,3235
33
+ pychemstation/utils/tray_types.py,sha256=9yLRIBn3IPVMbhrFqJQJ5gCQJI7H9DD2cdIFQDp2-8k,5184
34
+ pychemstation-0.9.1.dist-info/METADATA,sha256=ypplz0GWS-erPPVfmLxVQXR6vm7__Mo8UIoSs1VD24o,5981
35
+ pychemstation-0.9.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
36
+ pychemstation-0.9.1.dist-info/licenses/LICENSE,sha256=9bdF75gIf1MecZ7oymqWgJREVz7McXPG-mjqrTmzzD8,18658
37
+ pychemstation-0.9.1.dist-info/RECORD,,
@@ -1,37 +0,0 @@
1
- pychemstation/__init__.py,sha256=SpTl-Tg1B1HTyjNOE-8ue-N2wGnXN_2zl7RFUSxlkiM,33
2
- pychemstation/analysis/__init__.py,sha256=EWoU47iyn9xGS-b44zK9eq50bSjOV4AC5dvt420YMI4,44
3
- pychemstation/analysis/base_spectrum.py,sha256=dPULGlr-sMHNMDIdyzlvX8taw_nkBliKTb00lNI8cwk,16517
4
- pychemstation/analysis/process_report.py,sha256=JPjFw8QqQg8i36LmQ0W3PracEmSPhaw5d4jvsrFXMR0,11848
5
- pychemstation/analysis/spec_utils.py,sha256=UOo9hJR3evJfmaohEEsyb7aq6X996ofuUfu-GKjiDi8,10201
6
- pychemstation/analysis/utils.py,sha256=rgpTJTrpsiBANbtsfys9xj0sqlTe__3J0OSeoygaQTM,2081
7
- pychemstation/control/README.md,sha256=7Q0rY014y7Qq8wfL7GSQG0l2P1PXfmgB0qZ2YkkE7n0,3350
8
- pychemstation/control/__init__.py,sha256=4xTy8X-mkn_PPZKr7w9rnj1wZhtmTesbQptPhpYmKXs,64
9
- pychemstation/control/hplc.py,sha256=E_QFMOqUabiqCO6Pu4lZYTsiWhdQULw4AqyKPwiQx90,12628
10
- pychemstation/control/controllers/README.md,sha256=S5cd4NJmPjs6TUH98BtPJJhiS1Lu-mxLCNS786ogOrQ,32
11
- pychemstation/control/controllers/__init__.py,sha256=LuFEsVGN5sXuHW_DG61DWBDJ_fU4dMls4bQJ5XNRaok,166
12
- pychemstation/control/controllers/comm.py,sha256=fRCFh3Ye-HnoGaur69NRdkLHNtdlMoJjIOTqeJe1tAk,7720
13
- pychemstation/control/controllers/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- pychemstation/control/controllers/devices/device.py,sha256=d9SwasjXTXplkRK5eH3asrNPo3BBZmAz6CKBYAuKSIc,1249
15
- pychemstation/control/controllers/devices/injector.py,sha256=ynPQtvMFt1iK0LQBf4ZEYdxJCyavmashXwyCQbmRjuw,5542
16
- pychemstation/control/controllers/tables/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- pychemstation/control/controllers/tables/method.py,sha256=sX83sHlnaAm8Wop_d28RDAk4DBPvQWduH3Atodtmw4A,17714
18
- pychemstation/control/controllers/tables/ms.py,sha256=JFD-tOhu8uRyKdl-E3-neRssii8MNqVRIlsrnFhNY_M,682
19
- pychemstation/control/controllers/tables/sequence.py,sha256=1bZdoVK877KuAwKTjo-NWvOU8rHxx8cQBL4I71ZN4EM,13105
20
- pychemstation/control/controllers/tables/table.py,sha256=Adis9584LJqP4yjLj5XrIxqq1jzdBiDieOG4vc90EIU,12327
21
- pychemstation/generated/__init__.py,sha256=GAoZFAYbPVEJDkcOw3e1rgOqd7TCW0HyKNPM8OMehMg,1005
22
- pychemstation/generated/dad_method.py,sha256=zfS9op450CRSGPKkUr9qUyPBbND06b9N8SUU9j4cosM,8408
23
- pychemstation/generated/pump_method.py,sha256=c_FB14rgODZyH5eDb3kxZAI77xRj1HMpQkE2R6MypNA,12180
24
- pychemstation/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- pychemstation/utils/chromatogram.py,sha256=s6mqru88E9YQGLbdr2Thm2plf8urCFoHHkMqW6_1Rz4,3338
26
- pychemstation/utils/injector_types.py,sha256=hTgC-4xnO-EXOLOsCZ0L6TX4KUsB14Q-5jU4_hCzmfM,822
27
- pychemstation/utils/macro.py,sha256=WgXGR8fgyR_QhRML9NUD3oZZBT4LLSI9uwuragHEe2k,2904
28
- pychemstation/utils/method_types.py,sha256=5FK7RThLhaQcLrzRi_qLnlPqZuGPtwwipP6eMoq0kpE,1638
29
- pychemstation/utils/parsing.py,sha256=bnFIsZZwFy9NKzVUf517yN-ogzQbm0hp_aho3KUD6Is,9317
30
- pychemstation/utils/pump_types.py,sha256=HWQHxscGn19NTrfYBwQRCO2VcYfwyko7YfBO5uDhEm4,93
31
- pychemstation/utils/sequence_types.py,sha256=x2EClcq6ROdzeLZg63XcXXTknwl2aZ48Vuyru0xZjgA,1086
32
- pychemstation/utils/table_types.py,sha256=7txqW_oNpkh4venSkGEtreVe6UV9dzNB1DTrIeTkQHA,3217
33
- pychemstation/utils/tray_types.py,sha256=eOO-muUjadyvCM8JnYAZVyxJeyYBlENP1zXiFskAFbs,5049
34
- pychemstation-0.8.4.dist-info/METADATA,sha256=-L8JybimWKlIvfGPZq8xWz2VIcN7A0p3bHMdWSoBa_s,4575
35
- pychemstation-0.8.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
36
- pychemstation-0.8.4.dist-info/licenses/LICENSE,sha256=9bdF75gIf1MecZ7oymqWgJREVz7McXPG-mjqrTmzzD8,18658
37
- pychemstation-0.8.4.dist-info/RECORD,,