sl-shared-assets 1.0.0rc27__tar.gz → 1.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.
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/PKG-INFO +10 -7
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/README.md +9 -6
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/docs/source/welcome.rst +2 -2
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/envs/slsa_dev_lin.yml +31 -31
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/envs/slsa_dev_lin_spec.txt +428 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/pyproject.toml +1 -1
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/cli.py +13 -5
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/cli.pyi +3 -1
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/configuration_data.py +3 -3
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/configuration_data.pyi +3 -3
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/session_data.py +6 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/session_data.pyi +1 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/server.py +3 -2
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/server.pyi +1 -1
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/packaging_tools.py +1 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/project_management_tools.py +22 -15
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/project_management_tools.pyi +3 -6
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/.gitignore +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/LICENSE +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/docs/Makefile +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/docs/make.bat +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/docs/source/api.rst +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/docs/source/conf.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/docs/source/index.rst +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/__init__.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/__init__.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/__init__.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/__init__.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/runtime_data.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/runtime_data.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/surgery_data.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/surgery_data.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/py.typed +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/__init__.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/__init__.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/job.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/job.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/__init__.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/__init__.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/ascension_tools.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/ascension_tools.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/packaging_tools.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/transfer_tools.py +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/transfer_tools.pyi +0 -0
- {sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sl-shared-assets
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: Stores assets shared between multiple Sun (NeuroAI) lab data pipelines.
|
|
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/
|
|
@@ -768,16 +768,16 @@ ___
|
|
|
768
768
|
|
|
769
769
|
## Detailed Description
|
|
770
770
|
|
|
771
|
-
Primarily, this library is designed to make the two main Sun lab libraries used
|
|
771
|
+
Primarily, this library is designed to make the two main Sun lab libraries used for data acquisition
|
|
772
772
|
([sl-experiment](https://github.com/Sun-Lab-NBB/sl-experiment)) and processing
|
|
773
773
|
([sl-forgery](https://github.com/Sun-Lab-NBB/sl-forgery)) independent of each other. This is beneficial, as both
|
|
774
|
-
libraries feature an extensive and
|
|
774
|
+
libraries feature an extensive and largely incompatible set of runtime dependencies. Moreover, having a shared
|
|
775
775
|
repository of classes and tools reused across Sun lab pipelines streamlines the maintenance of these tools.
|
|
776
776
|
|
|
777
777
|
The library broadly stores two types of assets. First, it stores various dataclasses used to save the data acquired
|
|
778
|
-
during experiments in the lab
|
|
779
|
-
|
|
780
|
-
|
|
778
|
+
during experiments in the lab and the dataclasses used to configure data acquisition and processing runtimes. Secondly,
|
|
779
|
+
it stores the tools used to safely move the data between the machines (computers) used in the data acquisition and
|
|
780
|
+
processing, and provides the API for running various data processing jobs on remote compute servers.
|
|
781
781
|
|
|
782
782
|
---
|
|
783
783
|
|
|
@@ -819,7 +819,10 @@ Use the following command to install the library using pip: ```pip install sl-sh
|
|
|
819
819
|
## Usage
|
|
820
820
|
|
|
821
821
|
All library components are intended to be used via other Sun lab libraries. Developers should study the API and CLI
|
|
822
|
-
documentation below to learn how to use library components in other Sun lab libraries.
|
|
822
|
+
documentation below to learn how to use library components in other Sun lab libraries. For notes on using shared
|
|
823
|
+
assets for data acquisition, see the [sl-experiment](https://github.com/Sun-Lab-NBB/sl-experiment) library ReadMe.
|
|
824
|
+
For notes on using shared assets for data processing, see the [sl-forgery](https://github.com/Sun-Lab-NBB/sl-forgery)
|
|
825
|
+
library ReadMe.
|
|
823
826
|
|
|
824
827
|
---
|
|
825
828
|
|
|
@@ -13,16 +13,16 @@ ___
|
|
|
13
13
|
|
|
14
14
|
## Detailed Description
|
|
15
15
|
|
|
16
|
-
Primarily, this library is designed to make the two main Sun lab libraries used
|
|
16
|
+
Primarily, this library is designed to make the two main Sun lab libraries used for data acquisition
|
|
17
17
|
([sl-experiment](https://github.com/Sun-Lab-NBB/sl-experiment)) and processing
|
|
18
18
|
([sl-forgery](https://github.com/Sun-Lab-NBB/sl-forgery)) independent of each other. This is beneficial, as both
|
|
19
|
-
libraries feature an extensive and
|
|
19
|
+
libraries feature an extensive and largely incompatible set of runtime dependencies. Moreover, having a shared
|
|
20
20
|
repository of classes and tools reused across Sun lab pipelines streamlines the maintenance of these tools.
|
|
21
21
|
|
|
22
22
|
The library broadly stores two types of assets. First, it stores various dataclasses used to save the data acquired
|
|
23
|
-
during experiments in the lab
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
during experiments in the lab and the dataclasses used to configure data acquisition and processing runtimes. Secondly,
|
|
24
|
+
it stores the tools used to safely move the data between the machines (computers) used in the data acquisition and
|
|
25
|
+
processing, and provides the API for running various data processing jobs on remote compute servers.
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
@@ -64,7 +64,10 @@ Use the following command to install the library using pip: ```pip install sl-sh
|
|
|
64
64
|
## Usage
|
|
65
65
|
|
|
66
66
|
All library components are intended to be used via other Sun lab libraries. Developers should study the API and CLI
|
|
67
|
-
documentation below to learn how to use library components in other Sun lab libraries.
|
|
67
|
+
documentation below to learn how to use library components in other Sun lab libraries. For notes on using shared
|
|
68
|
+
assets for data acquisition, see the [sl-experiment](https://github.com/Sun-Lab-NBB/sl-experiment) library ReadMe.
|
|
69
|
+
For notes on using shared assets for data processing, see the [sl-forgery](https://github.com/Sun-Lab-NBB/sl-forgery)
|
|
70
|
+
library ReadMe.
|
|
68
71
|
|
|
69
72
|
---
|
|
70
73
|
|
|
@@ -4,8 +4,8 @@ Welcome to sl-shared-assets API documentation page
|
|
|
4
4
|
sl-shared-assets is a Python library that stores assets shared between multiple Sun (NeuroAI) lab data pipelines.
|
|
5
5
|
|
|
6
6
|
This library is developed in the `Sun lab <https://neuroai.github.io/sunlab/>`_ at Cornell University. The main purpose
|
|
7
|
-
of this library is to provide the tools used by multiple other data acquisition and processing libraries in
|
|
8
|
-
|
|
7
|
+
of this library is to provide the tools adn assets used by multiple other data acquisition and processing libraries in
|
|
8
|
+
the lab to avoid cross-dependency issues.
|
|
9
9
|
|
|
10
10
|
This website only contains the API documentation for the classes and methods offered by this library. See the project
|
|
11
11
|
GitHub repository for installation instructions and library usage examples:
|
|
@@ -7,19 +7,19 @@ dependencies:
|
|
|
7
7
|
- _python_abi3_support=1.0=hd8ed1ab_2
|
|
8
8
|
- alabaster=1.0.0=pyhd8ed1ab_1
|
|
9
9
|
- appdirs=1.4.4=pyhd8ed1ab_1
|
|
10
|
-
- aws-c-auth=0.9.0=
|
|
11
|
-
- aws-c-cal=0.9.
|
|
10
|
+
- aws-c-auth=0.9.0=h3318fae_10
|
|
11
|
+
- aws-c-cal=0.9.1=h5e3027f_0
|
|
12
12
|
- aws-c-common=0.12.3=hb9d3cd8_0
|
|
13
13
|
- aws-c-compression=0.3.1=hafb2847_5
|
|
14
|
-
- aws-c-event-stream=0.5.4=
|
|
15
|
-
- aws-c-http=0.10.1=
|
|
16
|
-
- aws-c-io=0.19.
|
|
17
|
-
- aws-c-mqtt=0.13.0=
|
|
18
|
-
- aws-c-s3=0.
|
|
19
|
-
- aws-c-sdkutils=0.2.
|
|
14
|
+
- aws-c-event-stream=0.5.4=haaa725d_10
|
|
15
|
+
- aws-c-http=0.10.1=hd7992d4_3
|
|
16
|
+
- aws-c-io=0.19.1=h93b6419_1
|
|
17
|
+
- aws-c-mqtt=0.13.0=h7b3935a_4
|
|
18
|
+
- aws-c-s3=0.8.0=h365f71b_1
|
|
19
|
+
- aws-c-sdkutils=0.2.4=hafb2847_0
|
|
20
20
|
- aws-checksums=0.2.7=hafb2847_1
|
|
21
|
-
- aws-crt-cpp=0.32.
|
|
22
|
-
- aws-sdk-cpp=1.11.510=
|
|
21
|
+
- aws-crt-cpp=0.32.6=h96107e3_3
|
|
22
|
+
- aws-sdk-cpp=1.11.510=hf282fd2_9
|
|
23
23
|
- azure-core-cpp=1.14.0=h5cfcd09_0
|
|
24
24
|
- azure-identity-cpp=1.10.0=h113e628_0
|
|
25
25
|
- azure-storage-blobs-cpp=12.13.0=h3cf044e_1
|
|
@@ -34,7 +34,7 @@ dependencies:
|
|
|
34
34
|
- bzip2=1.0.8=h4bc722e_7
|
|
35
35
|
- c-ares=1.34.5=hb9d3cd8_0
|
|
36
36
|
- ca-certificates=2025.4.26=hbd8a1cb_0
|
|
37
|
-
- cachetools=
|
|
37
|
+
- cachetools=6.0.0=pyhd8ed1ab_0
|
|
38
38
|
- certifi=2025.4.26=pyhd8ed1ab_0
|
|
39
39
|
- cffi=1.17.1=py313hfab6e84_0
|
|
40
40
|
- chardet=5.2.0=pyhd8ed1ab_3
|
|
@@ -44,7 +44,7 @@ dependencies:
|
|
|
44
44
|
- colorama=0.4.6=pyhd8ed1ab_1
|
|
45
45
|
- conda-souschef=2.2.3=pyhd8ed1ab_0
|
|
46
46
|
- cpython=3.13.3=py313hd8ed1ab_101
|
|
47
|
-
- cryptography=45.0.
|
|
47
|
+
- cryptography=45.0.3=py313h6556f6e_0
|
|
48
48
|
- dbus=1.16.2=h3c4dab8_0
|
|
49
49
|
- distlib=0.3.9=pyhd8ed1ab_1
|
|
50
50
|
- docutils=0.21.2=pyhd8ed1ab_1
|
|
@@ -61,8 +61,8 @@ dependencies:
|
|
|
61
61
|
- id=1.5.0=pyh29332c3_0
|
|
62
62
|
- idna=3.10=pyhd8ed1ab_1
|
|
63
63
|
- imagesize=1.4.1=pyhd8ed1ab_0
|
|
64
|
-
- importlib-metadata=8.7.0=
|
|
65
|
-
- importlib_metadata=8.7.0=
|
|
64
|
+
- importlib-metadata=8.7.0=pyhe01879c_1
|
|
65
|
+
- importlib_metadata=8.7.0=h40b2b14_1
|
|
66
66
|
- importlib_resources=6.5.2=pyhd8ed1ab_0
|
|
67
67
|
- jaraco.classes=3.4.0=pyhd8ed1ab_2
|
|
68
68
|
- jaraco.context=6.0.1=pyhd8ed1ab_0
|
|
@@ -74,17 +74,17 @@ dependencies:
|
|
|
74
74
|
- krb5=1.21.3=h659f571_0
|
|
75
75
|
- ld_impl_linux-64=2.43=h712a8e2_4
|
|
76
76
|
- libabseil=20250127.1=cxx17_hbbce691_0
|
|
77
|
-
- libarrow=20.0.0=
|
|
78
|
-
- libarrow-acero=20.0.0=
|
|
79
|
-
- libarrow-dataset=20.0.0=
|
|
80
|
-
- libarrow-substrait=20.0.0=
|
|
77
|
+
- libarrow=20.0.0=h9b1bdb9_4_cpu
|
|
78
|
+
- libarrow-acero=20.0.0=hcb10f89_4_cpu
|
|
79
|
+
- libarrow-dataset=20.0.0=hcb10f89_4_cpu
|
|
80
|
+
- libarrow-substrait=20.0.0=h1bed206_4_cpu
|
|
81
81
|
- libblas=3.9.0=31_h59b9bed_openblas
|
|
82
82
|
- libbrotlicommon=1.1.0=hb9d3cd8_2
|
|
83
83
|
- libbrotlidec=1.1.0=hb9d3cd8_2
|
|
84
84
|
- libbrotlienc=1.1.0=hb9d3cd8_2
|
|
85
85
|
- libcblas=3.9.0=31_he106b2a_openblas
|
|
86
86
|
- libcrc32c=1.1.2=h9c3ff4c_0
|
|
87
|
-
- libcurl=8.
|
|
87
|
+
- libcurl=8.14.0=h332b0f4_0
|
|
88
88
|
- libedit=3.1.20250104=pl5321h7949ede_0
|
|
89
89
|
- libev=4.33=hd590300_2
|
|
90
90
|
- libevent=2.1.12=hf998b51_1
|
|
@@ -102,21 +102,21 @@ dependencies:
|
|
|
102
102
|
- libiconv=1.18=h4ce23a2_1
|
|
103
103
|
- liblapack=3.9.0=31_h7ac8fdf_openblas
|
|
104
104
|
- liblzma=5.8.1=hb9d3cd8_1
|
|
105
|
-
- libmpdec=4.0.0=
|
|
105
|
+
- libmpdec=4.0.0=hb9d3cd8_0
|
|
106
106
|
- libnghttp2=1.64.0=h161d5f1_0
|
|
107
107
|
- libopenblas=0.3.29=pthreads_h94d23a6_0
|
|
108
108
|
- libopentelemetry-cpp=1.20.0=hd1b1c89_0
|
|
109
109
|
- libopentelemetry-cpp-headers=1.20.0=ha770c72_0
|
|
110
|
-
- libparquet=20.0.0=
|
|
110
|
+
- libparquet=20.0.0=h081d1f1_4_cpu
|
|
111
111
|
- libprotobuf=5.29.3=h501fc15_1
|
|
112
112
|
- libre2-11=2024.07.02=hba17884_3
|
|
113
113
|
- libsodium=1.0.20=h4ab18f5_0
|
|
114
|
-
- libsqlite=3.
|
|
114
|
+
- libsqlite=3.50.0=hee588c1_0
|
|
115
115
|
- libssh2=1.11.1=hcf80075_0
|
|
116
116
|
- libstdcxx=15.1.0=h8f9b012_2
|
|
117
117
|
- libstdcxx-ng=15.1.0=h4852527_2
|
|
118
118
|
- libthrift=0.21.0=h0e7cc3e_0
|
|
119
|
-
- libutf8proc=2.10.0=
|
|
119
|
+
- libutf8proc=2.10.0=h202a827_0
|
|
120
120
|
- libuuid=2.38.1=h0b41bf4_0
|
|
121
121
|
- libxml2=2.13.8=h4bc477f_0
|
|
122
122
|
- libzlib=1.3.1=hb9d3cd8_2
|
|
@@ -125,7 +125,7 @@ dependencies:
|
|
|
125
125
|
- markupsafe=3.0.2=py313h8060acc_1
|
|
126
126
|
- mdurl=0.1.2=pyhd8ed1ab_1
|
|
127
127
|
- more-itertools=10.7.0=pyhd8ed1ab_0
|
|
128
|
-
- mypy=1.
|
|
128
|
+
- mypy=1.16.0=py313h536fd9c_0
|
|
129
129
|
- mypy_extensions=1.1.0=pyha770c72_0
|
|
130
130
|
- natsort=8.4.0=pyh29332c3_1
|
|
131
131
|
- ncurses=6.5=h2d0b736_3
|
|
@@ -142,6 +142,7 @@ dependencies:
|
|
|
142
142
|
- pkginfo=1.12.1.2=pyhd8ed1ab_0
|
|
143
143
|
- platformdirs=4.3.8=pyhe01879c_0
|
|
144
144
|
- pluggy=1.6.0=pyhd8ed1ab_0
|
|
145
|
+
- polars=1.30.0=default_h1443d73_0
|
|
145
146
|
- polars-default=1.30.0=py39hfac2b71_0
|
|
146
147
|
- progressbar2=4.5.0=pyhd8ed1ab_1
|
|
147
148
|
- prometheus-cpp=1.3.0=ha5d0236_0
|
|
@@ -166,11 +167,11 @@ dependencies:
|
|
|
166
167
|
- rfc3986=2.0.0=pyhd8ed1ab_1
|
|
167
168
|
- rich=14.0.0=pyh29332c3_0
|
|
168
169
|
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
|
|
169
|
-
- ruamel.yaml=0.18.
|
|
170
|
+
- ruamel.yaml=0.18.11=py313h536fd9c_0
|
|
170
171
|
- ruamel.yaml.clib=0.2.8=py313h536fd9c_1
|
|
171
172
|
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
|
|
172
|
-
- ruff=0.11.
|
|
173
|
-
- s2n=1.5.
|
|
173
|
+
- ruff=0.11.12=py313h67f39b2_0
|
|
174
|
+
- s2n=1.5.19=h763c568_0
|
|
174
175
|
- secretstorage=3.3.3=py313h78bf25f_3
|
|
175
176
|
- setuptools=80.8.0=pyhff2d567_0
|
|
176
177
|
- six=1.17.0=pyhd8ed1ab_0
|
|
@@ -190,7 +191,7 @@ dependencies:
|
|
|
190
191
|
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
|
|
191
192
|
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
|
|
192
193
|
- stdlib-list=0.11.1=pyhd8ed1ab_0
|
|
193
|
-
- tk=8.6.13=
|
|
194
|
+
- tk=8.6.13=noxft_hd72426e_102
|
|
194
195
|
- tomli=2.2.1=pyhd8ed1ab_1
|
|
195
196
|
- tomli-w=1.2.0=pyhd8ed1ab_0
|
|
196
197
|
- tox=4.26.0=pyhe01879c_0
|
|
@@ -206,7 +207,7 @@ dependencies:
|
|
|
206
207
|
- tzdata=2025b=h78e105d_0
|
|
207
208
|
- urllib3=2.4.0=pyhd8ed1ab_0
|
|
208
209
|
- virtualenv=20.31.2=pyhd8ed1ab_0
|
|
209
|
-
- zipp=3.
|
|
210
|
+
- zipp=3.22.0=pyhd8ed1ab_0
|
|
210
211
|
- zlib=1.3.1=hb9d3cd8_2
|
|
211
212
|
- zstandard=0.23.0=py313h536fd9c_2
|
|
212
213
|
- zstd=1.5.7=hb8e6e7a_2
|
|
@@ -218,12 +219,11 @@ dependencies:
|
|
|
218
219
|
- build==1.2.2.post1
|
|
219
220
|
- dacite==1.9.2
|
|
220
221
|
- loguru==0.7.3
|
|
221
|
-
- polars==1.29.0
|
|
222
222
|
- pyarrow==20.0.0
|
|
223
223
|
- pyproject-hooks==1.2.0
|
|
224
224
|
- pyyaml==6.0.2
|
|
225
225
|
- simple-slurm==0.3.5
|
|
226
|
-
- sl-shared-assets==1.0.
|
|
226
|
+
- sl-shared-assets==1.0.0rc28
|
|
227
227
|
- sphinx-rtd-dark-mode==1.3.0
|
|
228
228
|
- tox-uv==1.25.0
|
|
229
229
|
- uv==0.6.14
|
|
@@ -1381,3 +1381,431 @@
|
|
|
1381
1381
|
+zstandard-0.23.0 (conda-forge/linux-64)
|
|
1382
1382
|
+zstd-1.5.7 (conda-forge/linux-64)
|
|
1383
1383
|
|
|
1384
|
+
2025-05-30 12:58:07 (rev 14)
|
|
1385
|
+
-_libgcc_mutex-0.1 (conda-forge/linux-64)
|
|
1386
|
+
-_openmp_mutex-4.5 (conda-forge/linux-64)
|
|
1387
|
+
-_python_abi3_support-1.0 (conda-forge/noarch)
|
|
1388
|
+
-alabaster-1.0.0 (conda-forge/noarch)
|
|
1389
|
+
-appdirs-1.4.4 (conda-forge/noarch)
|
|
1390
|
+
-aws-c-auth-0.9.0 (conda-forge/linux-64)
|
|
1391
|
+
-aws-c-cal-0.9.0 (conda-forge/linux-64)
|
|
1392
|
+
-aws-c-common-0.12.3 (conda-forge/linux-64)
|
|
1393
|
+
-aws-c-compression-0.3.1 (conda-forge/linux-64)
|
|
1394
|
+
-aws-c-event-stream-0.5.4 (conda-forge/linux-64)
|
|
1395
|
+
-aws-c-http-0.10.1 (conda-forge/linux-64)
|
|
1396
|
+
-aws-c-io-0.19.0 (conda-forge/linux-64)
|
|
1397
|
+
-aws-c-mqtt-0.13.0 (conda-forge/linux-64)
|
|
1398
|
+
-aws-c-s3-0.7.17 (conda-forge/linux-64)
|
|
1399
|
+
-aws-c-sdkutils-0.2.3 (conda-forge/linux-64)
|
|
1400
|
+
-aws-checksums-0.2.7 (conda-forge/linux-64)
|
|
1401
|
+
-aws-crt-cpp-0.32.5 (conda-forge/linux-64)
|
|
1402
|
+
-aws-sdk-cpp-1.11.510 (conda-forge/linux-64)
|
|
1403
|
+
-azure-core-cpp-1.14.0 (conda-forge/linux-64)
|
|
1404
|
+
-azure-identity-cpp-1.10.0 (conda-forge/linux-64)
|
|
1405
|
+
-azure-storage-blobs-cpp-12.13.0 (conda-forge/linux-64)
|
|
1406
|
+
-azure-storage-common-cpp-12.8.0 (conda-forge/linux-64)
|
|
1407
|
+
-azure-storage-files-datalake-cpp-12.12.0 (conda-forge/linux-64)
|
|
1408
|
+
-babel-2.17.0 (conda-forge/noarch)
|
|
1409
|
+
-backports-1.0 (conda-forge/noarch)
|
|
1410
|
+
-backports.tarfile-1.2.0 (conda-forge/noarch)
|
|
1411
|
+
-bcrypt-4.3.0 (conda-forge/linux-64)
|
|
1412
|
+
-beautifulsoup4-4.13.4 (conda-forge/noarch)
|
|
1413
|
+
-brotli-python-1.1.0 (conda-forge/linux-64)
|
|
1414
|
+
-bzip2-1.0.8 (conda-forge/linux-64)
|
|
1415
|
+
-c-ares-1.34.5 (conda-forge/linux-64)
|
|
1416
|
+
-ca-certificates-2025.4.26 (conda-forge/noarch)
|
|
1417
|
+
-cachetools-5.5.2 (conda-forge/noarch)
|
|
1418
|
+
-certifi-2025.4.26 (conda-forge/noarch)
|
|
1419
|
+
-cffi-1.17.1 (conda-forge/linux-64)
|
|
1420
|
+
-chardet-5.2.0 (conda-forge/noarch)
|
|
1421
|
+
-charset-normalizer-3.4.2 (conda-forge/noarch)
|
|
1422
|
+
-click-8.2.1 (conda-forge/noarch)
|
|
1423
|
+
-cmarkgfm-2024.11.20 (conda-forge/linux-64)
|
|
1424
|
+
-colorama-0.4.6 (conda-forge/noarch)
|
|
1425
|
+
-conda-souschef-2.2.3 (conda-forge/noarch)
|
|
1426
|
+
-cpython-3.13.3 (conda-forge/noarch)
|
|
1427
|
+
-cryptography-45.0.2 (conda-forge/linux-64)
|
|
1428
|
+
-dbus-1.16.2 (conda-forge/linux-64)
|
|
1429
|
+
-distlib-0.3.9 (conda-forge/noarch)
|
|
1430
|
+
-docutils-0.21.2 (conda-forge/noarch)
|
|
1431
|
+
-editables-0.5 (conda-forge/noarch)
|
|
1432
|
+
-filelock-3.18.0 (conda-forge/noarch)
|
|
1433
|
+
-gflags-2.2.2 (conda-forge/linux-64)
|
|
1434
|
+
-glog-0.7.1 (conda-forge/linux-64)
|
|
1435
|
+
-grayskull-2.9.1 (conda-forge/noarch)
|
|
1436
|
+
-h2-4.2.0 (conda-forge/noarch)
|
|
1437
|
+
-hatchling-1.27.0 (conda-forge/noarch)
|
|
1438
|
+
-hpack-4.1.0 (conda-forge/noarch)
|
|
1439
|
+
-hyperframe-6.1.0 (conda-forge/noarch)
|
|
1440
|
+
-icu-75.1 (conda-forge/linux-64)
|
|
1441
|
+
-id-1.5.0 (conda-forge/noarch)
|
|
1442
|
+
-idna-3.10 (conda-forge/noarch)
|
|
1443
|
+
-imagesize-1.4.1 (conda-forge/noarch)
|
|
1444
|
+
-importlib-metadata-8.7.0 (conda-forge/noarch)
|
|
1445
|
+
-importlib_metadata-8.7.0 (conda-forge/noarch)
|
|
1446
|
+
-importlib_resources-6.5.2 (conda-forge/noarch)
|
|
1447
|
+
-jaraco.classes-3.4.0 (conda-forge/noarch)
|
|
1448
|
+
-jaraco.context-6.0.1 (conda-forge/noarch)
|
|
1449
|
+
-jaraco.functools-4.1.0 (conda-forge/noarch)
|
|
1450
|
+
-jeepney-0.9.0 (conda-forge/noarch)
|
|
1451
|
+
-jinja2-3.1.6 (conda-forge/noarch)
|
|
1452
|
+
-keyring-25.6.0 (conda-forge/noarch)
|
|
1453
|
+
-keyutils-1.6.1 (conda-forge/linux-64)
|
|
1454
|
+
-krb5-1.21.3 (conda-forge/linux-64)
|
|
1455
|
+
-ld_impl_linux-64-2.43 (conda-forge/linux-64)
|
|
1456
|
+
-libabseil-20250127.1 (conda-forge/linux-64)
|
|
1457
|
+
-libarrow-20.0.0 (conda-forge/linux-64)
|
|
1458
|
+
-libarrow-acero-20.0.0 (conda-forge/linux-64)
|
|
1459
|
+
-libarrow-dataset-20.0.0 (conda-forge/linux-64)
|
|
1460
|
+
-libarrow-substrait-20.0.0 (conda-forge/linux-64)
|
|
1461
|
+
-libblas-3.9.0 (conda-forge/linux-64)
|
|
1462
|
+
-libbrotlicommon-1.1.0 (conda-forge/linux-64)
|
|
1463
|
+
-libbrotlidec-1.1.0 (conda-forge/linux-64)
|
|
1464
|
+
-libbrotlienc-1.1.0 (conda-forge/linux-64)
|
|
1465
|
+
-libcblas-3.9.0 (conda-forge/linux-64)
|
|
1466
|
+
-libcrc32c-1.1.2 (conda-forge/linux-64)
|
|
1467
|
+
-libcurl-8.13.0 (conda-forge/linux-64)
|
|
1468
|
+
-libedit-3.1.20250104 (conda-forge/linux-64)
|
|
1469
|
+
-libev-4.33 (conda-forge/linux-64)
|
|
1470
|
+
-libevent-2.1.12 (conda-forge/linux-64)
|
|
1471
|
+
-libexpat-2.7.0 (conda-forge/linux-64)
|
|
1472
|
+
-libffi-3.4.6 (conda-forge/linux-64)
|
|
1473
|
+
-libgcc-15.1.0 (conda-forge/linux-64)
|
|
1474
|
+
-libgcc-ng-15.1.0 (conda-forge/linux-64)
|
|
1475
|
+
-libgfortran-15.1.0 (conda-forge/linux-64)
|
|
1476
|
+
-libgfortran5-15.1.0 (conda-forge/linux-64)
|
|
1477
|
+
-libglib-2.84.2 (conda-forge/linux-64)
|
|
1478
|
+
-libgomp-15.1.0 (conda-forge/linux-64)
|
|
1479
|
+
-libgoogle-cloud-2.36.0 (conda-forge/linux-64)
|
|
1480
|
+
-libgoogle-cloud-storage-2.36.0 (conda-forge/linux-64)
|
|
1481
|
+
-libgrpc-1.71.0 (conda-forge/linux-64)
|
|
1482
|
+
-libiconv-1.18 (conda-forge/linux-64)
|
|
1483
|
+
-liblapack-3.9.0 (conda-forge/linux-64)
|
|
1484
|
+
-liblzma-5.8.1 (conda-forge/linux-64)
|
|
1485
|
+
-libmpdec-4.0.0 (conda-forge/linux-64)
|
|
1486
|
+
-libnghttp2-1.64.0 (conda-forge/linux-64)
|
|
1487
|
+
-libopenblas-0.3.29 (conda-forge/linux-64)
|
|
1488
|
+
-libopentelemetry-cpp-1.20.0 (conda-forge/linux-64)
|
|
1489
|
+
-libopentelemetry-cpp-headers-1.20.0 (conda-forge/linux-64)
|
|
1490
|
+
-libparquet-20.0.0 (conda-forge/linux-64)
|
|
1491
|
+
-libprotobuf-5.29.3 (conda-forge/linux-64)
|
|
1492
|
+
-libre2-11-2024.07.02 (conda-forge/linux-64)
|
|
1493
|
+
-libsodium-1.0.20 (conda-forge/linux-64)
|
|
1494
|
+
-libsqlite-3.49.2 (conda-forge/linux-64)
|
|
1495
|
+
-libssh2-1.11.1 (conda-forge/linux-64)
|
|
1496
|
+
-libstdcxx-15.1.0 (conda-forge/linux-64)
|
|
1497
|
+
-libstdcxx-ng-15.1.0 (conda-forge/linux-64)
|
|
1498
|
+
-libthrift-0.21.0 (conda-forge/linux-64)
|
|
1499
|
+
-libutf8proc-2.10.0 (conda-forge/linux-64)
|
|
1500
|
+
-libuuid-2.38.1 (conda-forge/linux-64)
|
|
1501
|
+
-libxml2-2.13.8 (conda-forge/linux-64)
|
|
1502
|
+
-libzlib-1.3.1 (conda-forge/linux-64)
|
|
1503
|
+
-lz4-c-1.10.0 (conda-forge/linux-64)
|
|
1504
|
+
-markdown-it-py-3.0.0 (conda-forge/noarch)
|
|
1505
|
+
-markupsafe-3.0.2 (conda-forge/linux-64)
|
|
1506
|
+
-mdurl-0.1.2 (conda-forge/noarch)
|
|
1507
|
+
-more-itertools-10.7.0 (conda-forge/noarch)
|
|
1508
|
+
-mypy-1.15.0 (conda-forge/linux-64)
|
|
1509
|
+
-mypy_extensions-1.1.0 (conda-forge/noarch)
|
|
1510
|
+
-natsort-8.4.0 (conda-forge/noarch)
|
|
1511
|
+
-ncurses-6.5 (conda-forge/linux-64)
|
|
1512
|
+
-nh3-0.2.21 (conda-forge/linux-64)
|
|
1513
|
+
-nlohmann_json-3.12.0 (conda-forge/linux-64)
|
|
1514
|
+
-numpy-2.2.6 (conda-forge/linux-64)
|
|
1515
|
+
-openssl-3.5.0 (conda-forge/linux-64)
|
|
1516
|
+
-orc-2.1.2 (conda-forge/linux-64)
|
|
1517
|
+
-packaging-25.0 (conda-forge/noarch)
|
|
1518
|
+
-paramiko-3.5.1 (conda-forge/noarch)
|
|
1519
|
+
-pathspec-0.12.1 (conda-forge/noarch)
|
|
1520
|
+
-pcre2-10.45 (conda-forge/linux-64)
|
|
1521
|
+
-pip-25.1.1 (conda-forge/noarch)
|
|
1522
|
+
-pkginfo-1.12.1.2 (conda-forge/noarch)
|
|
1523
|
+
-platformdirs-4.3.8 (conda-forge/noarch)
|
|
1524
|
+
-pluggy-1.6.0 (conda-forge/noarch)
|
|
1525
|
+
-polars-1.30.0 (conda-forge/linux-64)
|
|
1526
|
+
-polars-default-1.30.0 (conda-forge/linux-64)
|
|
1527
|
+
-progressbar2-4.5.0 (conda-forge/noarch)
|
|
1528
|
+
-prometheus-cpp-1.3.0 (conda-forge/linux-64)
|
|
1529
|
+
-psutil-7.0.0 (conda-forge/linux-64)
|
|
1530
|
+
-pyarrow-20.0.0 (conda-forge/linux-64)
|
|
1531
|
+
-pyarrow-core-20.0.0 (conda-forge/linux-64)
|
|
1532
|
+
-pycparser-2.22 (conda-forge/noarch)
|
|
1533
|
+
-pygments-2.19.1 (conda-forge/noarch)
|
|
1534
|
+
-pynacl-1.5.0 (conda-forge/linux-64)
|
|
1535
|
+
-pyproject-api-1.9.1 (conda-forge/noarch)
|
|
1536
|
+
-pysocks-1.7.1 (conda-forge/noarch)
|
|
1537
|
+
-python-3.13.3 (conda-forge/linux-64)
|
|
1538
|
+
-python-gil-3.13.3 (conda-forge/noarch)
|
|
1539
|
+
-python-utils-3.9.1 (conda-forge/noarch)
|
|
1540
|
+
-python_abi-3.13 (conda-forge/noarch)
|
|
1541
|
+
-pytz-2025.2 (conda-forge/noarch)
|
|
1542
|
+
-rapidfuzz-3.13.0 (conda-forge/linux-64)
|
|
1543
|
+
-re2-2024.07.02 (conda-forge/linux-64)
|
|
1544
|
+
-readline-8.2 (conda-forge/linux-64)
|
|
1545
|
+
-readme_renderer-44.0 (conda-forge/noarch)
|
|
1546
|
+
-requests-2.32.3 (conda-forge/noarch)
|
|
1547
|
+
-requests-toolbelt-1.0.0 (conda-forge/noarch)
|
|
1548
|
+
-rfc3986-2.0.0 (conda-forge/noarch)
|
|
1549
|
+
-rich-14.0.0 (conda-forge/noarch)
|
|
1550
|
+
-roman-numerals-py-3.1.0 (conda-forge/noarch)
|
|
1551
|
+
-ruamel.yaml-0.18.10 (conda-forge/linux-64)
|
|
1552
|
+
-ruamel.yaml.clib-0.2.8 (conda-forge/linux-64)
|
|
1553
|
+
-ruamel.yaml.jinja2-0.2.7 (conda-forge/noarch)
|
|
1554
|
+
-ruff-0.11.10 (conda-forge/linux-64)
|
|
1555
|
+
-s2n-1.5.18 (conda-forge/linux-64)
|
|
1556
|
+
-secretstorage-3.3.3 (conda-forge/linux-64)
|
|
1557
|
+
-setuptools-80.8.0 (conda-forge/noarch)
|
|
1558
|
+
-six-1.17.0 (conda-forge/noarch)
|
|
1559
|
+
-snappy-1.2.1 (conda-forge/linux-64)
|
|
1560
|
+
-snowballstemmer-3.0.1 (conda-forge/noarch)
|
|
1561
|
+
-soupsieve-2.7 (conda-forge/noarch)
|
|
1562
|
+
-sphinx-8.2.3 (conda-forge/noarch)
|
|
1563
|
+
-sphinx-autodoc-typehints-3.2.0 (conda-forge/noarch)
|
|
1564
|
+
-sphinx-click-6.0.0 (conda-forge/noarch)
|
|
1565
|
+
-sphinx-rtd-theme-3.0.1 (conda-forge/noarch)
|
|
1566
|
+
-sphinx_rtd_theme-3.0.1 (conda-forge/noarch)
|
|
1567
|
+
-sphinxcontrib-applehelp-2.0.0 (conda-forge/noarch)
|
|
1568
|
+
-sphinxcontrib-devhelp-2.0.0 (conda-forge/noarch)
|
|
1569
|
+
-sphinxcontrib-htmlhelp-2.1.0 (conda-forge/noarch)
|
|
1570
|
+
-sphinxcontrib-jquery-4.1 (conda-forge/noarch)
|
|
1571
|
+
-sphinxcontrib-jsmath-1.0.1 (conda-forge/noarch)
|
|
1572
|
+
-sphinxcontrib-qthelp-2.0.0 (conda-forge/noarch)
|
|
1573
|
+
-sphinxcontrib-serializinghtml-1.1.10 (conda-forge/noarch)
|
|
1574
|
+
-stdlib-list-0.11.1 (conda-forge/noarch)
|
|
1575
|
+
-tk-8.6.13 (conda-forge/linux-64)
|
|
1576
|
+
-tomli-2.2.1 (conda-forge/noarch)
|
|
1577
|
+
-tomli-w-1.2.0 (conda-forge/noarch)
|
|
1578
|
+
-tox-4.26.0 (conda-forge/noarch)
|
|
1579
|
+
-tqdm-4.67.1 (conda-forge/noarch)
|
|
1580
|
+
-trove-classifiers-2025.5.9.12 (conda-forge/noarch)
|
|
1581
|
+
-twine-6.1.0 (conda-forge/noarch)
|
|
1582
|
+
-types-appdirs-1.4.3.5 (conda-forge/noarch)
|
|
1583
|
+
-types-paramiko-3.5.0.20250516 (conda-forge/noarch)
|
|
1584
|
+
-types-requests-2.32.0.20250515 (conda-forge/noarch)
|
|
1585
|
+
-types-tqdm-4.67.0.20250516 (conda-forge/noarch)
|
|
1586
|
+
-typing-extensions-4.13.2 (conda-forge/noarch)
|
|
1587
|
+
-typing_extensions-4.13.2 (conda-forge/noarch)
|
|
1588
|
+
-tzdata-2025b (conda-forge/noarch)
|
|
1589
|
+
-urllib3-2.4.0 (conda-forge/noarch)
|
|
1590
|
+
-uv-0.7.6 (conda-forge/linux-64)
|
|
1591
|
+
-virtualenv-20.31.2 (conda-forge/noarch)
|
|
1592
|
+
-zipp-3.21.0 (conda-forge/noarch)
|
|
1593
|
+
-zlib-1.3.1 (conda-forge/linux-64)
|
|
1594
|
+
-zstandard-0.23.0 (conda-forge/linux-64)
|
|
1595
|
+
-zstd-1.5.7 (conda-forge/linux-64)
|
|
1596
|
+
|
|
1597
|
+
2025-05-30 12:58:18 (rev 15)
|
|
1598
|
+
+_libgcc_mutex-0.1 (conda-forge/linux-64)
|
|
1599
|
+
+_openmp_mutex-4.5 (conda-forge/linux-64)
|
|
1600
|
+
+bzip2-1.0.8 (conda-forge/linux-64)
|
|
1601
|
+
+ca-certificates-2025.4.26 (conda-forge/noarch)
|
|
1602
|
+
+cachetools-6.0.0 (conda-forge/noarch)
|
|
1603
|
+
+chardet-5.2.0 (conda-forge/noarch)
|
|
1604
|
+
+colorama-0.4.6 (conda-forge/noarch)
|
|
1605
|
+
+distlib-0.3.9 (conda-forge/noarch)
|
|
1606
|
+
+filelock-3.18.0 (conda-forge/noarch)
|
|
1607
|
+
+ld_impl_linux-64-2.43 (conda-forge/linux-64)
|
|
1608
|
+
+libexpat-2.7.0 (conda-forge/linux-64)
|
|
1609
|
+
+libffi-3.4.6 (conda-forge/linux-64)
|
|
1610
|
+
+libgcc-15.1.0 (conda-forge/linux-64)
|
|
1611
|
+
+libgcc-ng-15.1.0 (conda-forge/linux-64)
|
|
1612
|
+
+libgomp-15.1.0 (conda-forge/linux-64)
|
|
1613
|
+
+liblzma-5.8.1 (conda-forge/linux-64)
|
|
1614
|
+
+libmpdec-4.0.0 (conda-forge/linux-64)
|
|
1615
|
+
+libsqlite-3.50.0 (conda-forge/linux-64)
|
|
1616
|
+
+libstdcxx-15.1.0 (conda-forge/linux-64)
|
|
1617
|
+
+libuuid-2.38.1 (conda-forge/linux-64)
|
|
1618
|
+
+libzlib-1.3.1 (conda-forge/linux-64)
|
|
1619
|
+
+ncurses-6.5 (conda-forge/linux-64)
|
|
1620
|
+
+openssl-3.5.0 (conda-forge/linux-64)
|
|
1621
|
+
+packaging-25.0 (conda-forge/noarch)
|
|
1622
|
+
+pip-25.1.1 (conda-forge/noarch)
|
|
1623
|
+
+platformdirs-4.3.8 (conda-forge/noarch)
|
|
1624
|
+
+pluggy-1.6.0 (conda-forge/noarch)
|
|
1625
|
+
+pyproject-api-1.9.1 (conda-forge/noarch)
|
|
1626
|
+
+python-3.13.3 (conda-forge/linux-64)
|
|
1627
|
+
+python_abi-3.13 (conda-forge/noarch)
|
|
1628
|
+
+readline-8.2 (conda-forge/linux-64)
|
|
1629
|
+
+tk-8.6.13 (conda-forge/linux-64)
|
|
1630
|
+
+tomli-2.2.1 (conda-forge/noarch)
|
|
1631
|
+
+tox-4.26.0 (conda-forge/noarch)
|
|
1632
|
+
+typing_extensions-4.13.2 (conda-forge/noarch)
|
|
1633
|
+
+tzdata-2025b (conda-forge/noarch)
|
|
1634
|
+
+uv-0.7.8 (conda-forge/linux-64)
|
|
1635
|
+
+virtualenv-20.31.2 (conda-forge/noarch)
|
|
1636
|
+
|
|
1637
|
+
2025-05-30 12:58:26 (rev 16)
|
|
1638
|
+
+_python_abi3_support-1.0 (conda-forge/noarch)
|
|
1639
|
+
+alabaster-1.0.0 (conda-forge/noarch)
|
|
1640
|
+
+appdirs-1.4.4 (conda-forge/noarch)
|
|
1641
|
+
+aws-c-auth-0.9.0 (conda-forge/linux-64)
|
|
1642
|
+
+aws-c-cal-0.9.1 (conda-forge/linux-64)
|
|
1643
|
+
+aws-c-common-0.12.3 (conda-forge/linux-64)
|
|
1644
|
+
+aws-c-compression-0.3.1 (conda-forge/linux-64)
|
|
1645
|
+
+aws-c-event-stream-0.5.4 (conda-forge/linux-64)
|
|
1646
|
+
+aws-c-http-0.10.1 (conda-forge/linux-64)
|
|
1647
|
+
+aws-c-io-0.19.1 (conda-forge/linux-64)
|
|
1648
|
+
+aws-c-mqtt-0.13.0 (conda-forge/linux-64)
|
|
1649
|
+
+aws-c-s3-0.8.0 (conda-forge/linux-64)
|
|
1650
|
+
+aws-c-sdkutils-0.2.4 (conda-forge/linux-64)
|
|
1651
|
+
+aws-checksums-0.2.7 (conda-forge/linux-64)
|
|
1652
|
+
+aws-crt-cpp-0.32.6 (conda-forge/linux-64)
|
|
1653
|
+
+aws-sdk-cpp-1.11.510 (conda-forge/linux-64)
|
|
1654
|
+
+azure-core-cpp-1.14.0 (conda-forge/linux-64)
|
|
1655
|
+
+azure-identity-cpp-1.10.0 (conda-forge/linux-64)
|
|
1656
|
+
+azure-storage-blobs-cpp-12.13.0 (conda-forge/linux-64)
|
|
1657
|
+
+azure-storage-common-cpp-12.8.0 (conda-forge/linux-64)
|
|
1658
|
+
+azure-storage-files-datalake-cpp-12.12.0 (conda-forge/linux-64)
|
|
1659
|
+
+babel-2.17.0 (conda-forge/noarch)
|
|
1660
|
+
+backports-1.0 (conda-forge/noarch)
|
|
1661
|
+
+backports.tarfile-1.2.0 (conda-forge/noarch)
|
|
1662
|
+
+bcrypt-4.3.0 (conda-forge/linux-64)
|
|
1663
|
+
+beautifulsoup4-4.13.4 (conda-forge/noarch)
|
|
1664
|
+
+brotli-python-1.1.0 (conda-forge/linux-64)
|
|
1665
|
+
+c-ares-1.34.5 (conda-forge/linux-64)
|
|
1666
|
+
+certifi-2025.4.26 (conda-forge/noarch)
|
|
1667
|
+
+cffi-1.17.1 (conda-forge/linux-64)
|
|
1668
|
+
+charset-normalizer-3.4.2 (conda-forge/noarch)
|
|
1669
|
+
+click-8.2.1 (conda-forge/noarch)
|
|
1670
|
+
+cmarkgfm-2024.11.20 (conda-forge/linux-64)
|
|
1671
|
+
+conda-souschef-2.2.3 (conda-forge/noarch)
|
|
1672
|
+
+cpython-3.13.3 (conda-forge/noarch)
|
|
1673
|
+
+cryptography-45.0.3 (conda-forge/linux-64)
|
|
1674
|
+
+dbus-1.16.2 (conda-forge/linux-64)
|
|
1675
|
+
+docutils-0.21.2 (conda-forge/noarch)
|
|
1676
|
+
+editables-0.5 (conda-forge/noarch)
|
|
1677
|
+
+gflags-2.2.2 (conda-forge/linux-64)
|
|
1678
|
+
+glog-0.7.1 (conda-forge/linux-64)
|
|
1679
|
+
+grayskull-2.9.1 (conda-forge/noarch)
|
|
1680
|
+
+h2-4.2.0 (conda-forge/noarch)
|
|
1681
|
+
+hatchling-1.27.0 (conda-forge/noarch)
|
|
1682
|
+
+hpack-4.1.0 (conda-forge/noarch)
|
|
1683
|
+
+hyperframe-6.1.0 (conda-forge/noarch)
|
|
1684
|
+
+icu-75.1 (conda-forge/linux-64)
|
|
1685
|
+
+id-1.5.0 (conda-forge/noarch)
|
|
1686
|
+
+idna-3.10 (conda-forge/noarch)
|
|
1687
|
+
+imagesize-1.4.1 (conda-forge/noarch)
|
|
1688
|
+
+importlib-metadata-8.7.0 (conda-forge/noarch)
|
|
1689
|
+
+importlib_metadata-8.7.0 (conda-forge/noarch)
|
|
1690
|
+
+importlib_resources-6.5.2 (conda-forge/noarch)
|
|
1691
|
+
+jaraco.classes-3.4.0 (conda-forge/noarch)
|
|
1692
|
+
+jaraco.context-6.0.1 (conda-forge/noarch)
|
|
1693
|
+
+jaraco.functools-4.1.0 (conda-forge/noarch)
|
|
1694
|
+
+jeepney-0.9.0 (conda-forge/noarch)
|
|
1695
|
+
+jinja2-3.1.6 (conda-forge/noarch)
|
|
1696
|
+
+keyring-25.6.0 (conda-forge/noarch)
|
|
1697
|
+
+keyutils-1.6.1 (conda-forge/linux-64)
|
|
1698
|
+
+krb5-1.21.3 (conda-forge/linux-64)
|
|
1699
|
+
+libabseil-20250127.1 (conda-forge/linux-64)
|
|
1700
|
+
+libarrow-20.0.0 (conda-forge/linux-64)
|
|
1701
|
+
+libarrow-acero-20.0.0 (conda-forge/linux-64)
|
|
1702
|
+
+libarrow-dataset-20.0.0 (conda-forge/linux-64)
|
|
1703
|
+
+libarrow-substrait-20.0.0 (conda-forge/linux-64)
|
|
1704
|
+
+libblas-3.9.0 (conda-forge/linux-64)
|
|
1705
|
+
+libbrotlicommon-1.1.0 (conda-forge/linux-64)
|
|
1706
|
+
+libbrotlidec-1.1.0 (conda-forge/linux-64)
|
|
1707
|
+
+libbrotlienc-1.1.0 (conda-forge/linux-64)
|
|
1708
|
+
+libcblas-3.9.0 (conda-forge/linux-64)
|
|
1709
|
+
+libcrc32c-1.1.2 (conda-forge/linux-64)
|
|
1710
|
+
+libcurl-8.14.0 (conda-forge/linux-64)
|
|
1711
|
+
+libedit-3.1.20250104 (conda-forge/linux-64)
|
|
1712
|
+
+libev-4.33 (conda-forge/linux-64)
|
|
1713
|
+
+libevent-2.1.12 (conda-forge/linux-64)
|
|
1714
|
+
+libgfortran-15.1.0 (conda-forge/linux-64)
|
|
1715
|
+
+libgfortran5-15.1.0 (conda-forge/linux-64)
|
|
1716
|
+
+libglib-2.84.2 (conda-forge/linux-64)
|
|
1717
|
+
+libgoogle-cloud-2.36.0 (conda-forge/linux-64)
|
|
1718
|
+
+libgoogle-cloud-storage-2.36.0 (conda-forge/linux-64)
|
|
1719
|
+
+libgrpc-1.71.0 (conda-forge/linux-64)
|
|
1720
|
+
+libiconv-1.18 (conda-forge/linux-64)
|
|
1721
|
+
+liblapack-3.9.0 (conda-forge/linux-64)
|
|
1722
|
+
+libnghttp2-1.64.0 (conda-forge/linux-64)
|
|
1723
|
+
+libopenblas-0.3.29 (conda-forge/linux-64)
|
|
1724
|
+
+libopentelemetry-cpp-1.20.0 (conda-forge/linux-64)
|
|
1725
|
+
+libopentelemetry-cpp-headers-1.20.0 (conda-forge/linux-64)
|
|
1726
|
+
+libparquet-20.0.0 (conda-forge/linux-64)
|
|
1727
|
+
+libprotobuf-5.29.3 (conda-forge/linux-64)
|
|
1728
|
+
+libre2-11-2024.07.02 (conda-forge/linux-64)
|
|
1729
|
+
+libsodium-1.0.20 (conda-forge/linux-64)
|
|
1730
|
+
+libssh2-1.11.1 (conda-forge/linux-64)
|
|
1731
|
+
+libstdcxx-ng-15.1.0 (conda-forge/linux-64)
|
|
1732
|
+
+libthrift-0.21.0 (conda-forge/linux-64)
|
|
1733
|
+
+libutf8proc-2.10.0 (conda-forge/linux-64)
|
|
1734
|
+
+libxml2-2.13.8 (conda-forge/linux-64)
|
|
1735
|
+
+lz4-c-1.10.0 (conda-forge/linux-64)
|
|
1736
|
+
+markdown-it-py-3.0.0 (conda-forge/noarch)
|
|
1737
|
+
+markupsafe-3.0.2 (conda-forge/linux-64)
|
|
1738
|
+
+mdurl-0.1.2 (conda-forge/noarch)
|
|
1739
|
+
+more-itertools-10.7.0 (conda-forge/noarch)
|
|
1740
|
+
+mypy-1.16.0 (conda-forge/linux-64)
|
|
1741
|
+
+mypy_extensions-1.1.0 (conda-forge/noarch)
|
|
1742
|
+
+natsort-8.4.0 (conda-forge/noarch)
|
|
1743
|
+
+nh3-0.2.21 (conda-forge/linux-64)
|
|
1744
|
+
+nlohmann_json-3.12.0 (conda-forge/linux-64)
|
|
1745
|
+
+numpy-2.2.6 (conda-forge/linux-64)
|
|
1746
|
+
+orc-2.1.2 (conda-forge/linux-64)
|
|
1747
|
+
+paramiko-3.5.1 (conda-forge/noarch)
|
|
1748
|
+
+pathspec-0.12.1 (conda-forge/noarch)
|
|
1749
|
+
+pcre2-10.45 (conda-forge/linux-64)
|
|
1750
|
+
+pkginfo-1.12.1.2 (conda-forge/noarch)
|
|
1751
|
+
+polars-1.30.0 (conda-forge/linux-64)
|
|
1752
|
+
+polars-default-1.30.0 (conda-forge/linux-64)
|
|
1753
|
+
+progressbar2-4.5.0 (conda-forge/noarch)
|
|
1754
|
+
+prometheus-cpp-1.3.0 (conda-forge/linux-64)
|
|
1755
|
+
+psutil-7.0.0 (conda-forge/linux-64)
|
|
1756
|
+
+pyarrow-20.0.0 (conda-forge/linux-64)
|
|
1757
|
+
+pyarrow-core-20.0.0 (conda-forge/linux-64)
|
|
1758
|
+
+pycparser-2.22 (conda-forge/noarch)
|
|
1759
|
+
+pygments-2.19.1 (conda-forge/noarch)
|
|
1760
|
+
+pynacl-1.5.0 (conda-forge/linux-64)
|
|
1761
|
+
+pysocks-1.7.1 (conda-forge/noarch)
|
|
1762
|
+
+python-gil-3.13.3 (conda-forge/noarch)
|
|
1763
|
+
+python-utils-3.9.1 (conda-forge/noarch)
|
|
1764
|
+
+pytz-2025.2 (conda-forge/noarch)
|
|
1765
|
+
+rapidfuzz-3.13.0 (conda-forge/linux-64)
|
|
1766
|
+
+re2-2024.07.02 (conda-forge/linux-64)
|
|
1767
|
+
+readme_renderer-44.0 (conda-forge/noarch)
|
|
1768
|
+
+requests-2.32.3 (conda-forge/noarch)
|
|
1769
|
+
+requests-toolbelt-1.0.0 (conda-forge/noarch)
|
|
1770
|
+
+rfc3986-2.0.0 (conda-forge/noarch)
|
|
1771
|
+
+rich-14.0.0 (conda-forge/noarch)
|
|
1772
|
+
+roman-numerals-py-3.1.0 (conda-forge/noarch)
|
|
1773
|
+
+ruamel.yaml-0.18.11 (conda-forge/linux-64)
|
|
1774
|
+
+ruamel.yaml.clib-0.2.8 (conda-forge/linux-64)
|
|
1775
|
+
+ruamel.yaml.jinja2-0.2.7 (conda-forge/noarch)
|
|
1776
|
+
+ruff-0.11.12 (conda-forge/linux-64)
|
|
1777
|
+
+s2n-1.5.19 (conda-forge/linux-64)
|
|
1778
|
+
+secretstorage-3.3.3 (conda-forge/linux-64)
|
|
1779
|
+
+setuptools-80.8.0 (conda-forge/noarch)
|
|
1780
|
+
+six-1.17.0 (conda-forge/noarch)
|
|
1781
|
+
+snappy-1.2.1 (conda-forge/linux-64)
|
|
1782
|
+
+snowballstemmer-3.0.1 (conda-forge/noarch)
|
|
1783
|
+
+soupsieve-2.7 (conda-forge/noarch)
|
|
1784
|
+
+sphinx-8.2.3 (conda-forge/noarch)
|
|
1785
|
+
+sphinx-autodoc-typehints-3.2.0 (conda-forge/noarch)
|
|
1786
|
+
+sphinx-click-6.0.0 (conda-forge/noarch)
|
|
1787
|
+
+sphinx-rtd-theme-3.0.1 (conda-forge/noarch)
|
|
1788
|
+
+sphinx_rtd_theme-3.0.1 (conda-forge/noarch)
|
|
1789
|
+
+sphinxcontrib-applehelp-2.0.0 (conda-forge/noarch)
|
|
1790
|
+
+sphinxcontrib-devhelp-2.0.0 (conda-forge/noarch)
|
|
1791
|
+
+sphinxcontrib-htmlhelp-2.1.0 (conda-forge/noarch)
|
|
1792
|
+
+sphinxcontrib-jquery-4.1 (conda-forge/noarch)
|
|
1793
|
+
+sphinxcontrib-jsmath-1.0.1 (conda-forge/noarch)
|
|
1794
|
+
+sphinxcontrib-qthelp-2.0.0 (conda-forge/noarch)
|
|
1795
|
+
+sphinxcontrib-serializinghtml-1.1.10 (conda-forge/noarch)
|
|
1796
|
+
+stdlib-list-0.11.1 (conda-forge/noarch)
|
|
1797
|
+
+tomli-w-1.2.0 (conda-forge/noarch)
|
|
1798
|
+
+tqdm-4.67.1 (conda-forge/noarch)
|
|
1799
|
+
+trove-classifiers-2025.5.9.12 (conda-forge/noarch)
|
|
1800
|
+
+twine-6.1.0 (conda-forge/noarch)
|
|
1801
|
+
+types-appdirs-1.4.3.5 (conda-forge/noarch)
|
|
1802
|
+
+types-paramiko-3.5.0.20250516 (conda-forge/noarch)
|
|
1803
|
+
+types-requests-2.32.0.20250515 (conda-forge/noarch)
|
|
1804
|
+
+types-tqdm-4.67.0.20250516 (conda-forge/noarch)
|
|
1805
|
+
+typing-extensions-4.13.2 (conda-forge/noarch)
|
|
1806
|
+
+urllib3-2.4.0 (conda-forge/noarch)
|
|
1807
|
+
+zipp-3.22.0 (conda-forge/noarch)
|
|
1808
|
+
+zlib-1.3.1 (conda-forge/linux-64)
|
|
1809
|
+
+zstandard-0.23.0 (conda-forge/linux-64)
|
|
1810
|
+
+zstd-1.5.7 (conda-forge/linux-64)
|
|
1811
|
+
|
|
@@ -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 = "1.0.
|
|
11
|
+
version = "1.0.1"
|
|
12
12
|
description = "Stores assets shared between multiple Sun (NeuroAI) lab data pipelines."
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
license = { file = "LICENSE" }
|
|
@@ -8,6 +8,7 @@ from ataraxis_base_utilities import LogLevel, console, ensure_directory_exists
|
|
|
8
8
|
from .tools import ascend_tyche_data, verify_session_checksum, generate_project_manifest
|
|
9
9
|
from .server import generate_server_credentials
|
|
10
10
|
from .data_classes import (
|
|
11
|
+
SessionData,
|
|
11
12
|
ExperimentState,
|
|
12
13
|
ProjectConfiguration,
|
|
13
14
|
MesoscopeSystemConfiguration,
|
|
@@ -57,18 +58,25 @@ def verify_session_integrity(session_path: str, create_processed_directories: bo
|
|
|
57
58
|
that stores the data checksum generated before transferring the data to long-term storage destination. This function
|
|
58
59
|
always verified the integrity of the 'raw_data' directory. It does not work with 'processed_data' or any other
|
|
59
60
|
directories. If the session data was corrupted, the command removes the 'telomere.bin' file, marking the session as
|
|
60
|
-
'incomplete' and automatically excluding it from all further automated processing runtimes.
|
|
61
|
+
'incomplete' and automatically excluding it from all further automated processing runtimes. if the session data
|
|
62
|
+
is intact, generates a 'verified.bin' marker file inside the session's raw_data folder.
|
|
61
63
|
|
|
62
64
|
The command is also used by Sun lab data acquisition systems to generate the processed data hierarchy for each
|
|
63
65
|
processed session. This use case is fully automated and should not be triggered manually by the user.
|
|
64
66
|
"""
|
|
65
67
|
session = Path(session_path)
|
|
66
|
-
|
|
68
|
+
|
|
69
|
+
# Runs the verification process
|
|
70
|
+
verify_session_checksum(
|
|
67
71
|
session, create_processed_data_directory=create_processed_directories, processed_data_root=processed_data_root
|
|
68
|
-
)
|
|
69
|
-
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
# Checks the outcome of the verification process
|
|
75
|
+
session_data = SessionData.load(session_path=session)
|
|
76
|
+
if session_data.raw_data.verified_bin_path.exists():
|
|
77
|
+
console.echo(message=f"Session {session.stem} raw data integrity: Verified.", level=LogLevel.SUCCESS)
|
|
70
78
|
else:
|
|
71
|
-
console.echo(message=f"Session {session.stem} raw data integrity:
|
|
79
|
+
console.echo(message=f"Session {session.stem} raw data integrity: Compromised!", level=LogLevel.ERROR)
|
|
72
80
|
|
|
73
81
|
|
|
74
82
|
@click.command()
|
|
@@ -7,6 +7,7 @@ from .tools import (
|
|
|
7
7
|
)
|
|
8
8
|
from .server import generate_server_credentials as generate_server_credentials
|
|
9
9
|
from .data_classes import (
|
|
10
|
+
SessionData as SessionData,
|
|
10
11
|
ExperimentState as ExperimentState,
|
|
11
12
|
ProjectConfiguration as ProjectConfiguration,
|
|
12
13
|
MesoscopeSystemConfiguration as MesoscopeSystemConfiguration,
|
|
@@ -22,7 +23,8 @@ def verify_session_integrity(session_path: str, create_processed_directories: bo
|
|
|
22
23
|
that stores the data checksum generated before transferring the data to long-term storage destination. This function
|
|
23
24
|
always verified the integrity of the 'raw_data' directory. It does not work with 'processed_data' or any other
|
|
24
25
|
directories. If the session data was corrupted, the command removes the 'telomere.bin' file, marking the session as
|
|
25
|
-
'incomplete' and automatically excluding it from all further automated processing runtimes.
|
|
26
|
+
'incomplete' and automatically excluding it from all further automated processing runtimes. if the session data
|
|
27
|
+
is intact, generates a 'verified.bin' marker file inside the session's raw_data folder.
|
|
26
28
|
|
|
27
29
|
The command is also used by Sun lab data acquisition systems to generate the processed data hierarchy for each
|
|
28
30
|
processed session. This use case is fully automated and should not be triggered manually by the user.
|
|
@@ -207,7 +207,7 @@ class MesoscopeMicroControllers:
|
|
|
207
207
|
PC, conserving communication bandwidth."""
|
|
208
208
|
torque_averaging_pool_size: int = 10
|
|
209
209
|
"""The number of torque sensor readouts to average together to produce the final torque sensor readout value."""
|
|
210
|
-
wheel_encoder_ppr = 8192
|
|
210
|
+
wheel_encoder_ppr: int = 8192
|
|
211
211
|
"""The resolution of the managed quadrature encoder, in Pulses Per Revolution (PPR). This is the number of
|
|
212
212
|
quadrature pulses the encoder emits per full 360-degree rotation."""
|
|
213
213
|
wheel_encoder_report_cw: bool = False
|
|
@@ -219,9 +219,9 @@ class MesoscopeMicroControllers:
|
|
|
219
219
|
wheel_encoder_delta_threshold_pulse: int = 15
|
|
220
220
|
"""The minimum difference, in encoder pulse counts, between two encoder readouts for the change to be reported to
|
|
221
221
|
the PC. This is used to prevent reporting idle readouts and filter out sub-threshold noise."""
|
|
222
|
-
wheel_encoder_polling_delay_us = 500
|
|
222
|
+
wheel_encoder_polling_delay_us: int = 500
|
|
223
223
|
"""The delay, in microseconds, between any two successive encoder state readouts."""
|
|
224
|
-
cm_per_unity_unit = 10.0
|
|
224
|
+
cm_per_unity_unit: float = 10.0
|
|
225
225
|
"""The length of each Unity 'unit' in real-world centimeters recorded by the running wheel encoder."""
|
|
226
226
|
screen_trigger_pulse_duration_ms: int = 500
|
|
227
227
|
"""The duration of the HIGH phase of the TTL pulse used to toggle the VR screens between ON and OFF states."""
|
|
@@ -97,12 +97,12 @@ class MesoscopeMicroControllers:
|
|
|
97
97
|
torque_signal_threshold_adc: int = ...
|
|
98
98
|
torque_delta_threshold_adc: int = ...
|
|
99
99
|
torque_averaging_pool_size: int = ...
|
|
100
|
-
wheel_encoder_ppr = ...
|
|
100
|
+
wheel_encoder_ppr: int = ...
|
|
101
101
|
wheel_encoder_report_cw: bool = ...
|
|
102
102
|
wheel_encoder_report_ccw: bool = ...
|
|
103
103
|
wheel_encoder_delta_threshold_pulse: int = ...
|
|
104
|
-
wheel_encoder_polling_delay_us = ...
|
|
105
|
-
cm_per_unity_unit = ...
|
|
104
|
+
wheel_encoder_polling_delay_us: int = ...
|
|
105
|
+
cm_per_unity_unit: float = ...
|
|
106
106
|
screen_trigger_pulse_duration_ms: int = ...
|
|
107
107
|
auditory_tone_duration_ms: int = ...
|
|
108
108
|
valve_calibration_pulse_count: int = ...
|
|
@@ -217,6 +217,11 @@ class RawData:
|
|
|
217
217
|
the long-term storage destinations (NAS and Server) and the integrity of the moved data is verified on at least one
|
|
218
218
|
destination. During 'purge' sl-experiment runtimes, the library discovers and removes all session data marked with
|
|
219
219
|
'ubiquitin.bin' files from the machine that runs the code."""
|
|
220
|
+
verified_bin_path: Path = Path()
|
|
221
|
+
"""Stores the path to the verified.bin file. This marker file is created (or removed) by the sl-shared-assets
|
|
222
|
+
'verify-session' CLI command to indicate whether the session data inside the folder marked by the file has been
|
|
223
|
+
verified for integrity. Primarily, this is used when the data is moved to the long-term storage destination (BioHPC
|
|
224
|
+
server) to ensure it is safe to remove any local copies of the data stored on the acquisition system machine(s)."""
|
|
220
225
|
|
|
221
226
|
def resolve_paths(self, root_directory_path: Path) -> None:
|
|
222
227
|
"""Resolves all paths managed by the class instance based on the input root directory path.
|
|
@@ -248,6 +253,7 @@ class RawData:
|
|
|
248
253
|
self.system_configuration_path = self.raw_data_path.joinpath("system_configuration.yaml")
|
|
249
254
|
self.telomere_path = self.raw_data_path.joinpath("telomere.bin")
|
|
250
255
|
self.ubiquitin_path = self.raw_data_path.joinpath("ubiquitin.bin")
|
|
256
|
+
self.verified_bin_path = self.raw_data_path.joinpath("verified.bin")
|
|
251
257
|
|
|
252
258
|
def make_directories(self) -> None:
|
|
253
259
|
"""Ensures that all major subdirectories and the root directory exist, creating any missing directories."""
|
|
@@ -96,6 +96,7 @@ class RawData:
|
|
|
96
96
|
checksum_path: Path = ...
|
|
97
97
|
telomere_path: Path = ...
|
|
98
98
|
ubiquitin_path: Path = ...
|
|
99
|
+
verified_bin_path: Path = ...
|
|
99
100
|
def resolve_paths(self, root_directory_path: Path) -> None:
|
|
100
101
|
"""Resolves all paths managed by the class instance based on the input root directory path.
|
|
101
102
|
|
|
@@ -75,7 +75,7 @@ class Server:
|
|
|
75
75
|
"""
|
|
76
76
|
|
|
77
77
|
def __init__(self, credentials_path: Path) -> None:
|
|
78
|
-
# Tracker used to prevent __del__ from
|
|
78
|
+
# Tracker used to prevent __del__ from calling stop() for a partially initialized class.
|
|
79
79
|
self._open: bool = False
|
|
80
80
|
|
|
81
81
|
# Loads the credentials from the provided .yaml file
|
|
@@ -95,6 +95,7 @@ class Server:
|
|
|
95
95
|
self._credentials.host, username=self._credentials.username, password=self._credentials.password
|
|
96
96
|
)
|
|
97
97
|
console.echo(f"Connected to {self._credentials.host}", level=LogLevel.SUCCESS)
|
|
98
|
+
self._open = True
|
|
98
99
|
break
|
|
99
100
|
except paramiko.AuthenticationException:
|
|
100
101
|
message = (
|
|
@@ -131,7 +132,7 @@ class Server:
|
|
|
131
132
|
job: The Job object that contains all job data.
|
|
132
133
|
|
|
133
134
|
Returns:
|
|
134
|
-
The job object whose 'job_id' attribute had been modified with the job ID
|
|
135
|
+
The job object whose 'job_id' attribute had been modified with the job ID if the job was successfully
|
|
135
136
|
submitted.
|
|
136
137
|
|
|
137
138
|
Raises:
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/server.pyi
RENAMED
|
@@ -69,7 +69,7 @@ class Server:
|
|
|
69
69
|
job: The Job object that contains all job data.
|
|
70
70
|
|
|
71
71
|
Returns:
|
|
72
|
-
The job object whose 'job_id' attribute had been modified with the job ID
|
|
72
|
+
The job object whose 'job_id' attribute had been modified with the job ID if the job was successfully
|
|
73
73
|
submitted.
|
|
74
74
|
|
|
75
75
|
Raises:
|
|
@@ -61,6 +61,7 @@ def generate_project_manifest(
|
|
|
61
61
|
"raw_data": [], # Server-side raw_data folder path.
|
|
62
62
|
"processed_data": [], # Server-side processed_data folder path.
|
|
63
63
|
"complete": [], # Determines if the session data is complete. Incomplete sessions are excluded from processing.
|
|
64
|
+
"verified": [], # Determines if the session data integrity has been verified upon transfer to storage machine.
|
|
64
65
|
"single_day_suite2p": [], # Determines whether the session has been processed with the single-day s2p pipeline.
|
|
65
66
|
"multi_day_suite2p": [], # Determines whether the session has been processed with the multi-day s2p pipeline.
|
|
66
67
|
"behavior": [], # Determines whether the session has been processed with the behavior extraction pipeline.
|
|
@@ -87,9 +88,13 @@ def generate_project_manifest(
|
|
|
87
88
|
# If the session raw_data folder contains the telomere.bin file, marks the session as complete.
|
|
88
89
|
manifest["complete"].append(session_data.raw_data.telomere_path.exists())
|
|
89
90
|
|
|
90
|
-
# If the session
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
# If the session raw_data folder contains the verified.bin file, marks the session as verified.
|
|
92
|
+
manifest["verified"].append(session_data.raw_data.verified_bin_path.exists())
|
|
93
|
+
|
|
94
|
+
# If the session is incomplete or unverified, marks all processing steps as FALSE, as automatic processing is
|
|
95
|
+
# disabled for incomplete sessions. If the session unverified, the case is even more severe, as its data may be
|
|
96
|
+
# corrupted.
|
|
97
|
+
if not manifest["complete"][-1] or not not manifest["verified"][-1]:
|
|
93
98
|
manifest["single_day_suite2p"].append(False)
|
|
94
99
|
manifest["multi_day_suite2p"].append(False)
|
|
95
100
|
manifest["behavior"].append(False)
|
|
@@ -120,6 +125,7 @@ def generate_project_manifest(
|
|
|
120
125
|
"processed_data": pl.String,
|
|
121
126
|
"type": pl.String,
|
|
122
127
|
"complete": pl.Boolean,
|
|
128
|
+
"verified": pl.Boolean,
|
|
123
129
|
"single_day_suite2p": pl.Boolean,
|
|
124
130
|
"multi_day_suite2p": pl.Boolean,
|
|
125
131
|
"behavior": pl.Boolean,
|
|
@@ -139,13 +145,13 @@ def generate_project_manifest(
|
|
|
139
145
|
|
|
140
146
|
def verify_session_checksum(
|
|
141
147
|
session_path: Path, create_processed_data_directory: bool = True, processed_data_root: None | Path = None
|
|
142
|
-
) ->
|
|
148
|
+
) -> None:
|
|
143
149
|
"""Verifies the integrity of the session's raw data by generating the checksum of the raw_data directory and
|
|
144
150
|
comparing it against the checksum stored in the ax_checksum.txt file.
|
|
145
151
|
|
|
146
152
|
Primarily, this function is used to verify data integrity after transferring it from a local PC to the remote
|
|
147
|
-
server for long-term storage. This function is designed to
|
|
148
|
-
'telomere.bin' marker
|
|
153
|
+
server for long-term storage. This function is designed to create the 'verified.bin' marker file if the checksum
|
|
154
|
+
matches and to remove the 'telomere.bin' and 'verified.bin' marker files if it does not.
|
|
149
155
|
|
|
150
156
|
Notes:
|
|
151
157
|
Removing the telomere.bin marker file from session's raw_data folder marks the session as incomplete, excluding
|
|
@@ -161,9 +167,6 @@ def verify_session_checksum(
|
|
|
161
167
|
processed_data_root: The root directory where to store the processed data hierarchy. This path has to point to
|
|
162
168
|
the root directory where to store the processed data from all projects, and it will be automatically
|
|
163
169
|
modified to include the project name, the animal name, and the session ID.
|
|
164
|
-
|
|
165
|
-
Returns:
|
|
166
|
-
True if the checksum matches, False otherwise.
|
|
167
170
|
"""
|
|
168
171
|
|
|
169
172
|
# Loads session data layout. If configured to do so, also creates the processed data hierarchy
|
|
@@ -173,6 +176,11 @@ def verify_session_checksum(
|
|
|
173
176
|
make_processed_data_directory=create_processed_data_directory,
|
|
174
177
|
)
|
|
175
178
|
|
|
179
|
+
# Unlinks the verified.bin marker if it exists. The presence or absence of the marker is used as the
|
|
180
|
+
# primary heuristic for determining if the session data passed verification. Unlinking it early helps in the case
|
|
181
|
+
# the verification procedure aborts unexpectedly for any reason.
|
|
182
|
+
session_data.raw_data.verified_bin_path.unlink(missing_ok=True)
|
|
183
|
+
|
|
176
184
|
# Re-calculates the checksum for the raw_data directory
|
|
177
185
|
calculated_checksum = calculate_directory_checksum(
|
|
178
186
|
directory=session_data.raw_data.raw_data_path, batch=False, save_checksum=False
|
|
@@ -185,10 +193,9 @@ def verify_session_checksum(
|
|
|
185
193
|
# If the two checksums do not match, this likely indicates data corruption.
|
|
186
194
|
if stored_checksum != calculated_checksum:
|
|
187
195
|
# If the telomere.bin file exists, removes this file. This automatically marks the session as incomplete for
|
|
188
|
-
# all other Sun lab runtimes.
|
|
189
|
-
|
|
190
|
-
if session_data.raw_data.telomere_path.exists():
|
|
191
|
-
session_data.raw_data.telomere_path.unlink()
|
|
192
|
-
return False
|
|
196
|
+
# all other Sun lab runtimes.
|
|
197
|
+
session_data.raw_data.telomere_path.unlink(missing_ok=True)
|
|
193
198
|
|
|
194
|
-
|
|
199
|
+
# Otherwise, ensures that the session is marked with the verified.bin marker file.
|
|
200
|
+
else:
|
|
201
|
+
session_data.raw_data.verified_bin_path.touch(exist_ok=True)
|
|
@@ -29,13 +29,13 @@ def generate_project_manifest(
|
|
|
29
29
|
|
|
30
30
|
def verify_session_checksum(
|
|
31
31
|
session_path: Path, create_processed_data_directory: bool = True, processed_data_root: None | Path = None
|
|
32
|
-
) ->
|
|
32
|
+
) -> None:
|
|
33
33
|
"""Verifies the integrity of the session's raw data by generating the checksum of the raw_data directory and
|
|
34
34
|
comparing it against the checksum stored in the ax_checksum.txt file.
|
|
35
35
|
|
|
36
36
|
Primarily, this function is used to verify data integrity after transferring it from a local PC to the remote
|
|
37
|
-
server for long-term storage. This function is designed to
|
|
38
|
-
'telomere.bin' marker
|
|
37
|
+
server for long-term storage. This function is designed to create the 'verified.bin' marker file if the checksum
|
|
38
|
+
matches and to remove the 'telomere.bin' and 'verified.bin' marker files if it does not.
|
|
39
39
|
|
|
40
40
|
Notes:
|
|
41
41
|
Removing the telomere.bin marker file from session's raw_data folder marks the session as incomplete, excluding
|
|
@@ -51,7 +51,4 @@ def verify_session_checksum(
|
|
|
51
51
|
processed_data_root: The root directory where to store the processed data hierarchy. This path has to point to
|
|
52
52
|
the root directory where to store the processed data from all projects, and it will be automatically
|
|
53
53
|
modified to include the project name, the animal name, and the session ID.
|
|
54
|
-
|
|
55
|
-
Returns:
|
|
56
|
-
True if the checksum matches, False otherwise.
|
|
57
54
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/__init__.py
RENAMED
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/data_classes/__init__.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/__init__.py
RENAMED
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/server/__init__.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/__init__.py
RENAMED
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/__init__.pyi
RENAMED
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/ascension_tools.py
RENAMED
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/ascension_tools.pyi
RENAMED
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/packaging_tools.pyi
RENAMED
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/transfer_tools.py
RENAMED
|
File without changes
|
{sl_shared_assets-1.0.0rc27 → sl_shared_assets-1.0.1}/src/sl_shared_assets/tools/transfer_tools.pyi
RENAMED
|
File without changes
|
|
File without changes
|