sl-shared-assets 4.0.0__tar.gz → 4.0.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.

Potentially problematic release.


This version of sl-shared-assets might be problematic. Click here for more details.

Files changed (45) hide show
  1. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/PKG-INFO +6 -5
  2. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/envs/slsa_dev_lin.yml +5 -4
  3. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/envs/slsa_dev_lin_spec.txt +5 -3
  4. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/pyproject.toml +9 -10
  5. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/cli.py +1 -0
  6. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/surgery_data.py +6 -6
  7. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/surgery_data.pyi +6 -6
  8. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/.gitignore +0 -0
  9. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/LICENSE +0 -0
  10. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/README.md +0 -0
  11. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/docs/Makefile +0 -0
  12. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/docs/make.bat +0 -0
  13. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/docs/source/api.rst +0 -0
  14. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/docs/source/conf.py +0 -0
  15. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/docs/source/index.rst +0 -0
  16. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/docs/source/welcome.rst +0 -0
  17. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/__init__.py +0 -0
  18. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/__init__.pyi +0 -0
  19. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/cli.pyi +0 -0
  20. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/__init__.py +0 -0
  21. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/__init__.pyi +0 -0
  22. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/configuration_data.py +0 -0
  23. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/configuration_data.pyi +0 -0
  24. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/runtime_data.py +11 -11
  25. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/runtime_data.pyi +4 -4
  26. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/session_data.py +0 -0
  27. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/data_classes/session_data.pyi +0 -0
  28. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/py.typed +0 -0
  29. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/server/__init__.py +0 -0
  30. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/server/__init__.pyi +0 -0
  31. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/server/job.py +0 -0
  32. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/server/job.pyi +0 -0
  33. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/server/server.py +0 -0
  34. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/server/server.pyi +0 -0
  35. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/__init__.py +0 -0
  36. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/__init__.pyi +0 -0
  37. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/ascension_tools.py +0 -0
  38. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/ascension_tools.pyi +0 -0
  39. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/packaging_tools.py +0 -0
  40. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/packaging_tools.pyi +0 -0
  41. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/project_management_tools.py +0 -0
  42. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/project_management_tools.pyi +0 -0
  43. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/transfer_tools.py +0 -0
  44. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/src/sl_shared_assets/tools/transfer_tools.pyi +0 -0
  45. {sl_shared_assets-4.0.0 → sl_shared_assets-4.0.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sl-shared-assets
3
- Version: 4.0.0
3
+ Version: 4.0.1
4
4
  Summary: Provides data acquisition and processing assets shared between Sun (NeuroAI) lab libraries.
5
5
  Project-URL: Homepage, https://github.com/Sun-Lab-NBB/sl-shared-assets
6
6
  Project-URL: Documentation, https://sl-shared-assets-api-docs.netlify.app/
@@ -713,16 +713,21 @@ Requires-Dist: ruff==0.12.7; extra == 'conda'
713
713
  Requires-Dist: sphinx-autodoc-typehints==3.2.0; extra == 'conda'
714
714
  Requires-Dist: sphinx-click==6.0.0; extra == 'conda'
715
715
  Requires-Dist: sphinx==8.2.3; extra == 'conda'
716
+ Requires-Dist: tox-uv==1.26.2; extra == 'conda'
717
+ Requires-Dist: tox==4.28.4; extra == 'conda'
716
718
  Requires-Dist: twine==6.1.0; extra == 'conda'
717
719
  Requires-Dist: types-appdirs==1.4.3.5; extra == 'conda'
718
720
  Requires-Dist: types-filelock==3.2.7; extra == 'conda'
719
721
  Requires-Dist: types-paramiko==3.5.0.20250801; extra == 'conda'
722
+ Requires-Dist: types-pytz==2025.2.0.20250516; extra == 'conda'
720
723
  Requires-Dist: types-tqdm==4.67.0.20250516; extra == 'conda'
724
+ Requires-Dist: uv==0.8.4; extra == 'conda'
721
725
  Provides-Extra: condarun
722
726
  Requires-Dist: appdirs==1.4.4; extra == 'condarun'
723
727
  Requires-Dist: filelock==3.18.0; extra == 'condarun'
724
728
  Requires-Dist: natsort==8.4.0; extra == 'condarun'
725
729
  Requires-Dist: numpy==2.2.6; extra == 'condarun'
730
+ Requires-Dist: polars==1.32.0; extra == 'condarun'
726
731
  Requires-Dist: pyarrow==21.0.0; extra == 'condarun'
727
732
  Requires-Dist: pytz==2025.2; extra == 'condarun'
728
733
  Requires-Dist: tqdm==4.67.1; extra == 'condarun'
@@ -752,10 +757,6 @@ Requires-Dist: ataraxis-automation==5.0.0; extra == 'noconda'
752
757
  Requires-Dist: build==1.3.0; extra == 'noconda'
753
758
  Requires-Dist: sphinx-rtd-dark-mode==1.3.0; extra == 'noconda'
754
759
  Requires-Dist: sphinx-rtd-theme==3.0.2; extra == 'noconda'
755
- Requires-Dist: tox-uv==1.26.2; extra == 'noconda'
756
- Requires-Dist: tox==4.28.4; extra == 'noconda'
757
- Requires-Dist: types-pytz==2025.2.0.20250516; extra == 'noconda'
758
- Requires-Dist: uv==0.8.4; extra == 'noconda'
759
760
  Description-Content-Type: text/markdown
760
761
 
761
762
  # sl-shared-assets
@@ -135,6 +135,8 @@ dependencies:
135
135
  - pip=25.2=pyh145f28c_0
136
136
  - platformdirs=4.3.8=pyhe01879c_0
137
137
  - pluggy=1.6.0=pyhd8ed1ab_0
138
+ - polars=1.32.0=default_h9382660_0
139
+ - polars-default=1.32.0=py39hf521cc8_0
138
140
  - prometheus-cpp=1.3.0=ha5d0236_0
139
141
  - psutil=7.0.0=py313h536fd9c_0
140
142
  - pyarrow=21.0.0=py313h78bf25f_0
@@ -145,6 +147,7 @@ dependencies:
145
147
  - pysocks=1.7.1=pyha55dd90_7
146
148
  - python=3.13.5=hec9711d_102_cp313
147
149
  - python-gil=3.13.5=h4df99d1_102
150
+ - python-uv=0.8.4=pyhe01879c_0
148
151
  - python_abi=3.13=8_cp313
149
152
  - pytz=2025.2=pyhd8ed1ab_0
150
153
  - re2=2025.07.22=h5a314c3_0
@@ -172,12 +175,14 @@ dependencies:
172
175
  - tk=8.6.13=noxft_hd72426e_102
173
176
  - tomli=2.2.1=pyhe01879c_2
174
177
  - tox=4.28.4=pyhe01879c_0
178
+ - tox-uv=1.26.2=pyhd8ed1ab_0
175
179
  - tqdm=4.67.1=pyhd8ed1ab_1
176
180
  - trove-classifiers=2025.5.9.12=pyhd8ed1ab_0
177
181
  - twine=6.1.0=pyh29332c3_0
178
182
  - types-appdirs=1.4.3.5=pyhd8ed1ab_1
179
183
  - types-filelock=3.2.7=pyhd8ed1ab_1
180
184
  - types-paramiko=3.5.0.20250801=pyhd8ed1ab_0
185
+ - types-pytz=2025.2.0.20250516=pyhd8ed1ab_0
181
186
  - types-requests=2.32.4.20250611=pyhd8ed1ab_0
182
187
  - types-tqdm=4.67.0.20250516=pyhd8ed1ab_0
183
188
  - typing_extensions=4.14.1=pyhe01879c_0
@@ -202,7 +207,6 @@ dependencies:
202
207
  - invoke==2.2.0
203
208
  - loguru==0.7.3
204
209
  - paramiko==4.0.0
205
- - polars==1.32.0
206
210
  - pyarrow==21.0.0
207
211
  - pyproject_hooks==1.2.0
208
212
  - simple_slurm==0.3.6
@@ -210,8 +214,5 @@ dependencies:
210
214
  - sphinx-rtd-dark-mode==1.3.0
211
215
  - sphinx-rtd-theme==3.0.2
212
216
  - sphinxcontrib-jquery==4.1
213
- - tox-uv==1.26.2
214
- - types-pytz==2025.2.0.20250516
215
- - uv==0.8.4
216
217
  - xxhash==3.5.0
217
218
 
@@ -145,7 +145,8 @@ https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.45-hc749103_0.conda
145
145
  https://conda.anaconda.org/conda-forge/noarch/pip-25.2-pyh145f28c_0.conda
146
146
  https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda
147
147
  https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda
148
-
148
+ https://conda.anaconda.org/conda-forge/linux-64/polars-1.32.0-default_h9382660_0.conda
149
+ https://conda.anaconda.org/conda-forge/linux-64/polars-default-1.32.0-py39hf521cc8_0.conda
149
150
  https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda
150
151
  https://conda.anaconda.org/conda-forge/linux-64/psutil-7.0.0-py313h536fd9c_0.conda
151
152
  https://conda.anaconda.org/conda-forge/linux-64/pyarrow-21.0.0-py313h78bf25f_0.conda
@@ -157,6 +158,7 @@ https://conda.anaconda.org/conda-forge/noarch/pyproject-api-1.9.1-pyhe01879c_0.c
157
158
  https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
158
159
  https://conda.anaconda.org/conda-forge/linux-64/python-3.13.5-hec9711d_102_cp313.conda
159
160
  https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.5-h4df99d1_102.conda
161
+ https://conda.anaconda.org/conda-forge/noarch/python-uv-0.8.4-pyhe01879c_0.conda
160
162
  https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
161
163
  https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda
162
164
  https://conda.anaconda.org/conda-forge/linux-64/re2-2025.07.22-h5a314c3_0.conda
@@ -189,14 +191,14 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.
189
191
  https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda
190
192
  https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda
191
193
  https://conda.anaconda.org/conda-forge/noarch/tox-4.28.4-pyhe01879c_0.conda
192
-
194
+ https://conda.anaconda.org/conda-forge/noarch/tox-uv-1.26.2-pyhd8ed1ab_0.conda
193
195
  https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda
194
196
  https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2025.5.9.12-pyhd8ed1ab_0.conda
195
197
  https://conda.anaconda.org/conda-forge/noarch/twine-6.1.0-pyh29332c3_0.conda
196
198
  https://conda.anaconda.org/conda-forge/noarch/types-appdirs-1.4.3.5-pyhd8ed1ab_1.conda
197
199
  https://conda.anaconda.org/conda-forge/noarch/types-filelock-3.2.7-pyhd8ed1ab_1.conda
198
200
  https://conda.anaconda.org/conda-forge/noarch/types-paramiko-3.5.0.20250801-pyhd8ed1ab_0.conda
199
-
201
+ https://conda.anaconda.org/conda-forge/noarch/types-pytz-2025.2.0.20250516-pyhd8ed1ab_0.conda
200
202
  https://conda.anaconda.org/conda-forge/noarch/types-requests-2.32.4.20250611-pyhd8ed1ab_0.conda
201
203
  https://conda.anaconda.org/conda-forge/noarch/types-tqdm-4.67.0.20250516-pyhd8ed1ab_0.conda
202
204
  https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.14.1-pyhe01879c_0.conda
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
8
8
  # Project metdata section. Provides the genral ID information about the project.
9
9
  [project]
10
10
  name = "sl-shared-assets"
11
- version = "4.0.0"
11
+ version = "4.0.1"
12
12
  description = "Provides data acquisition and processing assets shared between Sun (NeuroAI) lab libraries."
13
13
  readme = "README.md"
14
14
  license = { file = "LICENSE" }
@@ -74,6 +74,7 @@ condarun = [
74
74
  "appdirs==1.4.4",
75
75
  "tqdm==4.67.1",
76
76
  "natsort==8.4.0",
77
+ "polars==1.32.0",
77
78
  "pyarrow==21.0.0",
78
79
  "filelock==3.18.0",
79
80
  "pytz==2025.2",
@@ -81,6 +82,11 @@ condarun = [
81
82
 
82
83
  # Dependencies known to be installable with conda for all development platforms (OSX ARM64, WIN AMD64, LIN AMD64).
83
84
  conda = [
85
+ # Tox
86
+ "tox==4.28.4",
87
+ "tox-uv==1.26.2",
88
+ "uv==0.8.4",
89
+
84
90
  # Documentation
85
91
  "sphinx==8.2.3",
86
92
  "importlib_metadata==8.7.0",
@@ -101,20 +107,13 @@ conda = [
101
107
  "types-appdirs==1.4.3.5",
102
108
  "types-tqdm==4.67.0.20250516",
103
109
  "types-paramiko==3.5.0.20250801",
104
- "types-filelock==3.2.7"
110
+ "types-filelock==3.2.7",
111
+ "types-pytz==2025.2.0.20250516",
105
112
  ]
106
113
 
107
114
  # Dependencies known to not be installable with conda for at least one supported development platform
108
115
  # (OSX ARM64, WIN AMD64, LIN AMD64).
109
116
  noconda = [
110
- # Tox
111
- "tox==4.28.4",
112
- "tox-uv==1.26.2",
113
- "uv==0.8.4",
114
-
115
- # Types
116
- "types-pytz==2025.2.0.20250516",
117
-
118
117
  # Documentation
119
118
  "sphinx-rtd-dark-mode==1.3.0",
120
119
  "sphinx-rtd-theme==3.0.2",
@@ -21,6 +21,7 @@ from .data_classes import SessionData, TrackerFileNames, get_processing_tracker
21
21
  @click.option(
22
22
  "-id",
23
23
  "--manager_id",
24
+ type=int,
24
25
  required=True,
25
26
  default=0,
26
27
  show_default=True,
@@ -65,7 +65,7 @@ class ImplantData:
65
65
  """The descriptive name of the implant."""
66
66
  implant_target: str
67
67
  """The name of the brain region or cranium section targeted by the implant."""
68
- implant_code: int
68
+ implant_code: str
69
69
  """The manufacturer code or internal reference code for the implant. This code is used to identify the implant in
70
70
  additional datasheets and lab ordering documents."""
71
71
  implant_ap_coordinate_mm: float
@@ -89,7 +89,7 @@ class InjectionData:
89
89
  """The name of the brain region targeted by the injection."""
90
90
  injection_volume_nl: float
91
91
  """The volume of substance, in nanoliters, delivered during the injection."""
92
- injection_code: int
92
+ injection_code: str
93
93
  """The manufacturer code or internal reference code for the injected substance. This code is used to identify the
94
94
  substance in additional datasheets and lab ordering documents."""
95
95
  injection_ap_coordinate_mm: float
@@ -108,22 +108,22 @@ class DrugData:
108
108
 
109
109
  lactated_ringers_solution_volume_ml: float
110
110
  """Stores the volume of Lactated Ringer's Solution (LRS) administered during surgery, in ml."""
111
- lactated_ringers_solution_code: int
111
+ lactated_ringers_solution_code: str
112
112
  """Stores the manufacturer code or internal reference code for Lactated Ringer's Solution (LRS). This code is used
113
113
  to identify the LRS batch in additional datasheets and lab ordering documents."""
114
114
  ketoprofen_volume_ml: float
115
115
  """Stores the volume of ketoprofen diluted with saline administered during surgery, in ml."""
116
- ketoprofen_code: int
116
+ ketoprofen_code: str
117
117
  """Stores the manufacturer code or internal reference code for ketoprofen. This code is used to identify the
118
118
  ketoprofen batch in additional datasheets and lab ordering documents."""
119
119
  buprenorphine_volume_ml: float
120
120
  """Stores the volume of buprenorphine diluted with saline administered during surgery, in ml."""
121
- buprenorphine_code: int
121
+ buprenorphine_code: str
122
122
  """Stores the manufacturer code or internal reference code for buprenorphine. This code is used to identify the
123
123
  buprenorphine batch in additional datasheets and lab ordering documents."""
124
124
  dexamethasone_volume_ml: float
125
125
  """Stores the volume of dexamethasone diluted with saline administered during surgery, in ml."""
126
- dexamethasone_code: int
126
+ dexamethasone_code: str
127
127
  """Stores the manufacturer code or internal reference code for dexamethasone. This code is used to identify the
128
128
  dexamethasone batch in additional datasheets and lab ordering documents."""
129
129
 
@@ -37,7 +37,7 @@ class ImplantData:
37
37
 
38
38
  implant: str
39
39
  implant_target: str
40
- implant_code: int
40
+ implant_code: str
41
41
  implant_ap_coordinate_mm: float
42
42
  implant_ml_coordinate_mm: float
43
43
  implant_dv_coordinate_mm: float
@@ -52,7 +52,7 @@ class InjectionData:
52
52
  injection: str
53
53
  injection_target: str
54
54
  injection_volume_nl: float
55
- injection_code: int
55
+ injection_code: str
56
56
  injection_ap_coordinate_mm: float
57
57
  injection_ml_coordinate_mm: float
58
58
  injection_dv_coordinate_mm: float
@@ -64,13 +64,13 @@ class DrugData:
64
64
  """
65
65
 
66
66
  lactated_ringers_solution_volume_ml: float
67
- lactated_ringers_solution_code: int
67
+ lactated_ringers_solution_code: str
68
68
  ketoprofen_volume_ml: float
69
- ketoprofen_code: int
69
+ ketoprofen_code: str
70
70
  buprenorphine_volume_ml: float
71
- buprenorphine_code: int
71
+ buprenorphine_code: str
72
72
  dexamethasone_volume_ml: float
73
- dexamethasone_code: int
73
+ dexamethasone_code: str
74
74
 
75
75
  @dataclass
76
76
  class SurgeryData(YamlConfig):
@@ -104,9 +104,6 @@ class LickTrainingDescriptor(YamlConfig):
104
104
  dispensed during the paused (idle) state."""
105
105
  pause_dispensed_water_volume_ml: float = 0.0
106
106
  """Stores the total water volume, in milliliters, dispensed during the paused (idle) state."""
107
- experimenter_notes: str = "Replace this with your notes."
108
- """This field is not set during runtime. It is expected that each experimenter replaces this field with their
109
- notes made during runtime."""
110
107
  experimenter_given_water_volume_ml: float = 0.0
111
108
  """The additional volume of water, in milliliters, administered by the experimenter to the animal after the session.
112
109
  """
@@ -116,6 +113,9 @@ class LickTrainingDescriptor(YamlConfig):
116
113
  incomplete: bool = False
117
114
  """If this field is set to True, the session is marked as 'incomplete' and automatically excluded from all further
118
115
  Sun lab automated processing and analysis."""
116
+ experimenter_notes: str = "Replace this with your notes."
117
+ """This field is not set during runtime. It is expected that each experimenter replaces this field with their
118
+ notes made during runtime."""
119
119
 
120
120
 
121
121
  @dataclass()
@@ -160,9 +160,6 @@ class RunTrainingDescriptor(YamlConfig):
160
160
  dispensed during the paused (idle) state."""
161
161
  pause_dispensed_water_volume_ml: float = 0.0
162
162
  """Stores the total water volume, in milliliters, dispensed during the paused (idle) state."""
163
- experimenter_notes: str = "Replace this with your notes."
164
- """This field is not set during runtime. It is expected that each experimenter will replace this field with their
165
- notes made during runtime."""
166
163
  experimenter_given_water_volume_ml: float = 0.0
167
164
  """The additional volume of water, in milliliters, administered by the experimenter to the animal after the session.
168
165
  """
@@ -172,6 +169,9 @@ class RunTrainingDescriptor(YamlConfig):
172
169
  incomplete: bool = False
173
170
  """If this field is set to True, the session is marked as 'incomplete' and automatically excluded from all further
174
171
  Sun lab automated processing and analysis."""
172
+ experimenter_notes: str = "Replace this with your notes."
173
+ """This field is not set during runtime. It is expected that each experimenter will replace this field with their
174
+ notes made during runtime."""
175
175
 
176
176
 
177
177
  @dataclass()
@@ -191,9 +191,6 @@ class MesoscopeExperimentDescriptor(YamlConfig):
191
191
  dispensed during the paused (idle) state."""
192
192
  pause_dispensed_water_volume_ml: float = 0.0
193
193
  """Stores the total water volume, in milliliters, dispensed during the paused (idle) state."""
194
- experimenter_notes: str = "Replace this with your notes."
195
- """This field is not set during runtime. It is expected that each experimenter will replace this field with their
196
- notes made during runtime."""
197
194
  experimenter_given_water_volume_ml: float = 0.0
198
195
  """The additional volume of water, in milliliters, administered by the experimenter to the animal after the session.
199
196
  """
@@ -203,6 +200,9 @@ class MesoscopeExperimentDescriptor(YamlConfig):
203
200
  incomplete: bool = False
204
201
  """If this field is set to True, the session is marked as 'incomplete' and automatically excluded from all further
205
202
  Sun lab automated processing and analysis."""
203
+ experimenter_notes: str = "Replace this with your notes."
204
+ """This field is not set during runtime. It is expected that each experimenter will replace this field with their
205
+ notes made during runtime."""
206
206
 
207
207
 
208
208
  @dataclass()
@@ -217,14 +217,14 @@ class WindowCheckingDescriptor(YamlConfig):
217
217
 
218
218
  experimenter: str
219
219
  """The ID of the experimenter running the session."""
220
- experimenter_notes: str = "Replace this with your notes."
221
- """The notes on the quality of the cranial window and animal's suitability for the target project."""
222
220
  surgery_quality: int = 0
223
221
  """The quality of the cranial window and surgical intervention on a scale from 0 (non-usable) to
224
222
  3 (high-tier publication grade) inclusive."""
225
223
  incomplete: bool = True
226
224
  """Window checking sessions are always considered 'incomplete', as they do not contain the full range of
227
225
  information collected as part of a 'standard' behavior training or experiment session."""
226
+ experimenter_notes: str = "Replace this with your notes."
227
+ """The notes on the quality of the cranial window and animal's suitability for the target project."""
228
228
 
229
229
 
230
230
  @dataclass()
@@ -56,10 +56,10 @@ class LickTrainingDescriptor(YamlConfig):
56
56
  maximum_unconsumed_rewards: int = ...
57
57
  dispensed_water_volume_ml: float = ...
58
58
  pause_dispensed_water_volume_ml: float = ...
59
- experimenter_notes: str = ...
60
59
  experimenter_given_water_volume_ml: float = ...
61
60
  preferred_session_water_volume_ml: float = ...
62
61
  incomplete: bool = ...
62
+ experimenter_notes: str = ...
63
63
 
64
64
  @dataclass()
65
65
  class RunTrainingDescriptor(YamlConfig):
@@ -80,10 +80,10 @@ class RunTrainingDescriptor(YamlConfig):
80
80
  maximum_idle_time_s: float = ...
81
81
  dispensed_water_volume_ml: float = ...
82
82
  pause_dispensed_water_volume_ml: float = ...
83
- experimenter_notes: str = ...
84
83
  experimenter_given_water_volume_ml: float = ...
85
84
  preferred_session_water_volume_ml: float = ...
86
85
  incomplete: bool = ...
86
+ experimenter_notes: str = ...
87
87
 
88
88
  @dataclass()
89
89
  class MesoscopeExperimentDescriptor(YamlConfig):
@@ -94,10 +94,10 @@ class MesoscopeExperimentDescriptor(YamlConfig):
94
94
  maximum_unconsumed_rewards: int = ...
95
95
  dispensed_water_volume_ml: float = ...
96
96
  pause_dispensed_water_volume_ml: float = ...
97
- experimenter_notes: str = ...
98
97
  experimenter_given_water_volume_ml: float = ...
99
98
  preferred_session_water_volume_ml: float = ...
100
99
  incomplete: bool = ...
100
+ experimenter_notes: str = ...
101
101
 
102
102
  @dataclass()
103
103
  class WindowCheckingDescriptor(YamlConfig):
@@ -110,9 +110,9 @@ class WindowCheckingDescriptor(YamlConfig):
110
110
  """
111
111
 
112
112
  experimenter: str
113
- experimenter_notes: str = ...
114
113
  surgery_quality: int = ...
115
114
  incomplete: bool = ...
115
+ experimenter_notes: str = ...
116
116
 
117
117
  @dataclass()
118
118
  class ZaberPositions(YamlConfig):