sl-shared-assets 1.0.2__tar.gz → 1.1.0__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 (46) hide show
  1. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/PKG-INFO +8 -4
  2. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/envs/slsa_dev_lin.yml +53 -50
  3. sl_shared_assets-1.1.0/envs/slsa_dev_lin_spec.txt +228 -0
  4. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/pyproject.toml +6 -3
  5. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/cli.py +11 -2
  6. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/cli.pyi +1 -0
  7. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/__init__.py +2 -0
  8. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/__init__.pyi +2 -0
  9. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/session_data.py +262 -10
  10. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/session_data.pyi +64 -5
  11. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/server/server.py +22 -0
  12. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/server/server.pyi +14 -0
  13. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/packaging_tools.py +10 -5
  14. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/project_management_tools.py +66 -50
  15. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/project_management_tools.pyi +4 -1
  16. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/tox.ini +13 -12
  17. sl_shared_assets-1.0.2/envs/slsa_dev_lin_spec.txt +0 -1811
  18. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/.gitignore +0 -0
  19. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/LICENSE +0 -0
  20. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/README.md +0 -0
  21. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/docs/Makefile +0 -0
  22. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/docs/make.bat +0 -0
  23. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/docs/source/api.rst +0 -0
  24. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/docs/source/conf.py +0 -0
  25. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/docs/source/index.rst +0 -0
  26. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/docs/source/welcome.rst +0 -0
  27. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/__init__.py +0 -0
  28. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/__init__.pyi +0 -0
  29. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/configuration_data.py +0 -0
  30. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/configuration_data.pyi +0 -0
  31. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/runtime_data.py +0 -0
  32. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/runtime_data.pyi +0 -0
  33. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/surgery_data.py +0 -0
  34. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/data_classes/surgery_data.pyi +0 -0
  35. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/py.typed +0 -0
  36. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/server/__init__.py +0 -0
  37. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/server/__init__.pyi +0 -0
  38. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/server/job.py +0 -0
  39. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/server/job.pyi +0 -0
  40. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/__init__.py +0 -0
  41. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/__init__.pyi +0 -0
  42. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/ascension_tools.py +0 -0
  43. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/ascension_tools.pyi +0 -0
  44. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/packaging_tools.pyi +0 -0
  45. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/transfer_tools.py +0 -0
  46. {sl_shared_assets-1.0.2 → sl_shared_assets-1.1.0}/src/sl_shared_assets/tools/transfer_tools.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sl-shared-assets
3
- Version: 1.0.2
3
+ Version: 1.1.0
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/
@@ -685,7 +685,7 @@ Keywords: acquisition,assets,data,processing,sunlab
685
685
  Classifier: Development Status :: 5 - Production/Stable
686
686
  Classifier: Intended Audience :: Developers
687
687
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
688
- Classifier: Operating System :: POSIX :: Linux
688
+ Classifier: Operating System :: OS Independent
689
689
  Classifier: Programming Language :: Python :: 3.11
690
690
  Classifier: Programming Language :: Python :: 3.12
691
691
  Classifier: Programming Language :: Python :: 3.13
@@ -695,6 +695,7 @@ Requires-Dist: ataraxis-base-utilities<4,>=3
695
695
  Requires-Dist: ataraxis-data-structures<4,>=3.1.1
696
696
  Requires-Dist: ataraxis-time<4,>=3
697
697
  Requires-Dist: click<9,>=8
698
+ Requires-Dist: filelock<4,>=3
698
699
  Requires-Dist: natsort<9,>=8
699
700
  Requires-Dist: paramiko<4,>=3.5.1
700
701
  Requires-Dist: polars<2,>=1
@@ -714,18 +715,20 @@ Requires-Dist: sphinx-rtd-theme<4,>=3; extra == 'conda'
714
715
  Requires-Dist: sphinx<9,>=8; extra == 'conda'
715
716
  Requires-Dist: twine<7,>=6; extra == 'conda'
716
717
  Requires-Dist: types-appdirs<2,>=1; extra == 'conda'
718
+ Requires-Dist: types-filelock<4,>=3; extra == 'conda'
717
719
  Requires-Dist: types-paramiko<4,>=3; extra == 'conda'
718
720
  Requires-Dist: types-tqdm<5,>=4; extra == 'conda'
719
721
  Provides-Extra: condarun
720
722
  Requires-Dist: appdirs<2,>=1; extra == 'condarun'
721
723
  Requires-Dist: click<9,>=8; extra == 'condarun'
724
+ Requires-Dist: filelock<4,>=3; extra == 'condarun'
722
725
  Requires-Dist: natsort<9,>=8; extra == 'condarun'
723
726
  Requires-Dist: paramiko<4,>=3.5.1; extra == 'condarun'
724
727
  Requires-Dist: polars<2,>=1; extra == 'condarun'
725
728
  Requires-Dist: pyarrow<21,>=20; extra == 'condarun'
726
729
  Requires-Dist: tqdm<5,>=4; extra == 'condarun'
727
730
  Provides-Extra: dev
728
- Requires-Dist: ataraxis-automation<5,>=4; extra == 'dev'
731
+ Requires-Dist: ataraxis-automation<6,>=5; extra == 'dev'
729
732
  Requires-Dist: build<2,>=1; extra == 'dev'
730
733
  Requires-Dist: grayskull<3,>=2; extra == 'dev'
731
734
  Requires-Dist: hatchling<2,>=1; extra == 'dev'
@@ -741,11 +744,12 @@ Requires-Dist: tox-uv<2,>=1; extra == 'dev'
741
744
  Requires-Dist: tox<5,>=4; extra == 'dev'
742
745
  Requires-Dist: twine<7,>=6; extra == 'dev'
743
746
  Requires-Dist: types-appdirs<2,>=1; extra == 'dev'
747
+ Requires-Dist: types-filelock<4,>=3; extra == 'dev'
744
748
  Requires-Dist: types-paramiko<4,>=3; extra == 'dev'
745
749
  Requires-Dist: types-tqdm<5,>=4; extra == 'dev'
746
750
  Requires-Dist: uv<1,>=0; extra == 'dev'
747
751
  Provides-Extra: noconda
748
- Requires-Dist: ataraxis-automation<5,>=4; extra == 'noconda'
752
+ Requires-Dist: ataraxis-automation<6,>=5; extra == 'noconda'
749
753
  Requires-Dist: build<2,>=1; extra == 'noconda'
750
754
  Requires-Dist: sphinx-rtd-dark-mode<2,>=1; extra == 'noconda'
751
755
  Requires-Dist: tox-uv<2,>=1; extra == 'noconda'
@@ -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=h3318fae_10
11
- - aws-c-cal=0.9.1=h5e3027f_0
10
+ - aws-c-auth=0.9.0=h850fecd_12
11
+ - aws-c-cal=0.9.2=h5e3027f_0
12
12
  - aws-c-common=0.12.3=hb9d3cd8_0
13
13
  - aws-c-compression=0.3.1=hafb2847_5
14
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
15
+ - aws-c-http=0.10.1=hcfde5e4_4
16
+ - aws-c-io=0.19.1=hdfce8c9_3
17
+ - aws-c-mqtt=0.13.1=h7b3935a_0
18
+ - aws-c-s3=0.8.1=h670bddd_0
19
19
  - aws-c-sdkutils=0.2.4=hafb2847_0
20
20
  - aws-checksums=0.2.7=hafb2847_1
21
- - aws-crt-cpp=0.32.6=h96107e3_3
22
- - aws-sdk-cpp=1.11.510=hf282fd2_9
21
+ - aws-crt-cpp=0.32.8=hdeb1b60_3
22
+ - aws-sdk-cpp=1.11.510=h4607db7_10
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
@@ -28,9 +28,9 @@ dependencies:
28
28
  - babel=2.17.0=pyhd8ed1ab_0
29
29
  - backports=1.0=pyhd8ed1ab_5
30
30
  - backports.tarfile=1.2.0=pyhd8ed1ab_1
31
- - bcrypt=4.3.0=py313h920b4c0_0
31
+ - bcrypt=4.3.0=py313h4b2b08d_1
32
32
  - beautifulsoup4=4.13.4=pyha770c72_0
33
- - brotli-python=1.1.0=py313h46c70d0_2
33
+ - brotli-python=1.1.0=py313h46c70d0_3
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
@@ -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.3=py313h6556f6e_0
47
+ - cryptography=45.0.4=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
@@ -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=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
77
+ - libarrow=20.0.0=h314c690_6_cpu
78
+ - libarrow-acero=20.0.0=hcb10f89_6_cpu
79
+ - libarrow-dataset=20.0.0=hcb10f89_6_cpu
80
+ - libarrow-substrait=20.0.0=h1bed206_6_cpu
81
81
  - libblas=3.9.0=31_h59b9bed_openblas
82
- - libbrotlicommon=1.1.0=hb9d3cd8_2
83
- - libbrotlidec=1.1.0=hb9d3cd8_2
84
- - libbrotlienc=1.1.0=hb9d3cd8_2
82
+ - libbrotlicommon=1.1.0=hb9d3cd8_3
83
+ - libbrotlidec=1.1.0=hb9d3cd8_3
84
+ - libbrotlienc=1.1.0=hb9d3cd8_3
85
85
  - libcblas=3.9.0=31_he106b2a_openblas
86
86
  - libcrc32c=1.1.2=h9c3ff4c_0
87
- - libcurl=8.14.0=h332b0f4_0
87
+ - libcurl=8.14.1=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
@@ -101,17 +101,17 @@ dependencies:
101
101
  - libgrpc=1.71.0=h8e591d7_1
102
102
  - libiconv=1.18=h4ce23a2_1
103
103
  - liblapack=3.9.0=31_h7ac8fdf_openblas
104
- - liblzma=5.8.1=hb9d3cd8_1
104
+ - liblzma=5.8.1=hb9d3cd8_2
105
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
- - libopentelemetry-cpp=1.20.0=hd1b1c89_0
109
- - libopentelemetry-cpp-headers=1.20.0=ha770c72_0
110
- - libparquet=20.0.0=h081d1f1_4_cpu
108
+ - libopentelemetry-cpp=1.21.0=hd1b1c89_0
109
+ - libopentelemetry-cpp-headers=1.21.0=ha770c72_0
110
+ - libparquet=20.0.0=h081d1f1_6_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.50.0=hee588c1_0
114
+ - libsqlite=3.50.1=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
@@ -131,7 +131,7 @@ dependencies:
131
131
  - ncurses=6.5=h2d0b736_3
132
132
  - nh3=0.2.21=py39h77e2912_1
133
133
  - nlohmann_json=3.12.0=h3f2d84a_0
134
- - numpy=2.2.6=py313h17eae1a_0
134
+ - numpy=2.3.0=py313h17eae1a_0
135
135
  - openssl=3.5.0=h7b32b05_1
136
136
  - orc=2.1.2=h17f744e_0
137
137
  - packaging=25.0=pyh29332c3_1
@@ -147,6 +147,7 @@ dependencies:
147
147
  - progressbar2=4.5.0=pyhd8ed1ab_1
148
148
  - prometheus-cpp=1.3.0=ha5d0236_0
149
149
  - psutil=7.0.0=py313h536fd9c_0
150
+ - pyarrow=20.0.0=py313h78bf25f_0
150
151
  - pyarrow-core=20.0.0=py313he5f92c8_0_cpu
151
152
  - pycparser=2.22=pyh29332c3_1
152
153
  - pygments=2.19.1=pyhd8ed1ab_0
@@ -162,18 +163,18 @@ dependencies:
162
163
  - re2=2024.07.02=h9925aae_3
163
164
  - readline=8.2=h8c095d6_2
164
165
  - readme_renderer=44.0=pyhd8ed1ab_1
165
- - requests=2.32.3=pyhd8ed1ab_1
166
+ - requests=2.32.4=pyhd8ed1ab_0
166
167
  - requests-toolbelt=1.0.0=pyhd8ed1ab_1
167
168
  - rfc3986=2.0.0=pyhd8ed1ab_1
168
169
  - rich=14.0.0=pyh29332c3_0
169
170
  - roman-numerals-py=3.1.0=pyhd8ed1ab_0
170
- - ruamel.yaml=0.18.11=py313h536fd9c_0
171
+ - ruamel.yaml=0.18.14=py313h536fd9c_0
171
172
  - ruamel.yaml.clib=0.2.8=py313h536fd9c_1
172
173
  - ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
173
- - ruff=0.11.12=py313h67f39b2_0
174
- - s2n=1.5.19=h763c568_0
174
+ - ruff=0.11.13=py313h67f39b2_0
175
+ - s2n=1.5.21=h7ab7c64_0
175
176
  - secretstorage=3.3.3=py313h78bf25f_3
176
- - setuptools=80.8.0=pyhff2d567_0
177
+ - setuptools=80.9.0=pyhff2d567_0
177
178
  - six=1.17.0=pyhd8ed1ab_0
178
179
  - snappy=1.2.1=h8bd8927_1
179
180
  - snowballstemmer=3.0.1=pyhd8ed1ab_0
@@ -199,32 +200,34 @@ dependencies:
199
200
  - trove-classifiers=2025.5.9.12=pyhd8ed1ab_0
200
201
  - twine=6.1.0=pyh29332c3_0
201
202
  - types-appdirs=1.4.3.5=pyhd8ed1ab_1
203
+ - types-filelock=3.2.7=pyhd8ed1ab_1
202
204
  - types-paramiko=3.5.0.20250516=pyhd8ed1ab_0
203
- - types-requests=2.32.0.20250515=pyhd8ed1ab_0
205
+ - types-requests=2.32.0.20250602=pyhd8ed1ab_0
204
206
  - types-tqdm=4.67.0.20250516=pyhd8ed1ab_0
205
- - typing-extensions=4.13.2=h0e9735f_0
206
- - typing_extensions=4.13.2=pyh29332c3_0
207
+ - typing-extensions=4.14.0=h32cad80_0
208
+ - typing_extensions=4.14.0=pyhe01879c_0
207
209
  - tzdata=2025b=h78e105d_0
208
210
  - urllib3=2.4.0=pyhd8ed1ab_0
211
+ - uv=0.7.12=h2f11bb8_0
209
212
  - virtualenv=20.31.2=pyhd8ed1ab_0
210
- - zipp=3.22.0=pyhd8ed1ab_0
213
+ - zipp=3.23.0=pyhd8ed1ab_0
211
214
  - zlib=1.3.1=hb9d3cd8_2
212
215
  - zstandard=0.23.0=py313h536fd9c_2
213
216
  - zstd=1.5.7=hb8e6e7a_2
214
217
  - pip:
215
- - ataraxis-automation==4.0.1
216
- - ataraxis-base-utilities==3.0.1
217
- - ataraxis-data-structures==3.1.1
218
- - ataraxis-time==3.0.0
219
- - build==1.2.2.post1
220
- - dacite==1.9.2
221
- - loguru==0.7.3
222
- - pyarrow==20.0.0
223
- - pyproject-hooks==1.2.0
224
- - pyyaml==6.0.2
225
- - simple-slurm==0.3.5
226
- - sl-shared-assets==1.0.0rc28
227
- - sphinx-rtd-dark-mode==1.3.0
228
- - tox-uv==1.25.0
229
- - uv==0.6.14
230
- - xxhash==3.5.0
218
+ - PyYAML==6.0.2
219
+ - ataraxis-automation==5.0.0
220
+ - ataraxis-base-utilities==3.0.1
221
+ - ataraxis-data-structures==3.1.1
222
+ - ataraxis-time==3.0.0
223
+ - build==1.2.2.post1
224
+ - dacite==1.9.2
225
+ - loguru==0.7.3
226
+ - pyproject_hooks==1.2.0
227
+ - simple_slurm==0.3.6
228
+ - sl-shared-assets==1.1.0
229
+ - sphinx-rtd-dark-mode==1.3.0
230
+ - tox-uv==1.26.0
231
+ - uv==0.7.12
232
+ - xxhash==3.5.0
233
+
@@ -0,0 +1,228 @@
1
+ List of packages in environment: "/home/cyberaxolotl/miniforge3/envs/slsa_dev_lin"
2
+
3
+
4
+ https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
5
+ https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
6
+ https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
7
+ https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda
8
+ https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda
9
+
10
+
11
+
12
+
13
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.9.0-h850fecd_12.conda
14
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.2-h5e3027f_0.conda
15
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.12.3-hb9d3cd8_0.conda
16
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.1-hafb2847_5.conda
17
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.4-haaa725d_10.conda
18
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.10.1-hcfde5e4_4.conda
19
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.19.1-hdfce8c9_3.conda
20
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.13.1-h7b3935a_0.conda
21
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.8.1-h670bddd_0.conda
22
+ https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.4-hafb2847_0.conda
23
+ https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.7-hafb2847_1.conda
24
+ https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.32.8-hdeb1b60_3.conda
25
+ https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.510-h4607db7_10.conda
26
+ https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.14.0-h5cfcd09_0.conda
27
+ https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.10.0-h113e628_0.conda
28
+ https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.13.0-h3cf044e_1.conda
29
+ https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.8.0-h736e048_1.conda
30
+ https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.12.0-ha633028_1.conda
31
+ https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda
32
+ https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda
33
+ https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_1.conda
34
+ https://conda.anaconda.org/conda-forge/linux-64/bcrypt-4.3.0-py313h4b2b08d_1.conda
35
+ https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.13.4-pyha770c72_0.conda
36
+ https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py313h46c70d0_3.conda
37
+
38
+ https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
39
+ https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda
40
+ https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda
41
+ https://conda.anaconda.org/conda-forge/noarch/cachetools-6.0.0-pyhd8ed1ab_0.conda
42
+ https://conda.anaconda.org/conda-forge/noarch/certifi-2025.4.26-pyhd8ed1ab_0.conda
43
+ https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hfab6e84_0.conda
44
+ https://conda.anaconda.org/conda-forge/noarch/chardet-5.2.0-pyhd8ed1ab_3.conda
45
+ https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda
46
+ https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
47
+ https://conda.anaconda.org/conda-forge/linux-64/cmarkgfm-2024.11.20-py313h536fd9c_0.conda
48
+ https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
49
+ https://conda.anaconda.org/conda-forge/noarch/conda-souschef-2.2.3-pyhd8ed1ab_0.tar.bz2
50
+ https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.3-py313hd8ed1ab_101.conda
51
+ https://conda.anaconda.org/conda-forge/linux-64/cryptography-45.0.4-py313h6556f6e_0.conda
52
+
53
+ https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h3c4dab8_0.conda
54
+ https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_1.conda
55
+ https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda
56
+ https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_1.conda
57
+ https://conda.anaconda.org/conda-forge/noarch/filelock-3.18.0-pyhd8ed1ab_0.conda
58
+ https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda
59
+ https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda
60
+ https://conda.anaconda.org/conda-forge/noarch/grayskull-2.9.1-pyhd8ed1ab_0.conda
61
+ https://conda.anaconda.org/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda
62
+ https://conda.anaconda.org/conda-forge/noarch/hatchling-1.27.0-pypyhd8ed1ab_0.conda
63
+ https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
64
+ https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
65
+ https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda
66
+ https://conda.anaconda.org/conda-forge/noarch/id-1.5.0-pyh29332c3_0.conda
67
+ https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
68
+ https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2
69
+ https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
70
+ https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.7.0-h40b2b14_1.conda
71
+ https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
72
+ https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_2.conda
73
+ https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.0.1-pyhd8ed1ab_0.conda
74
+ https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.1.0-pyhd8ed1ab_0.conda
75
+ https://conda.anaconda.org/conda-forge/noarch/jeepney-0.9.0-pyhd8ed1ab_0.conda
76
+ https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
77
+ https://conda.anaconda.org/conda-forge/noarch/keyring-25.6.0-pyha804496_0.conda
78
+ https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
79
+ https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
80
+ https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda
81
+ https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250127.1-cxx17_hbbce691_0.conda
82
+ https://conda.anaconda.org/conda-forge/linux-64/libarrow-20.0.0-h314c690_6_cpu.conda
83
+ https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-20.0.0-hcb10f89_6_cpu.conda
84
+ https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-20.0.0-hcb10f89_6_cpu.conda
85
+ https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-20.0.0-h1bed206_6_cpu.conda
86
+ https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-31_h59b9bed_openblas.conda
87
+ https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_3.conda
88
+ https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_3.conda
89
+ https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_3.conda
90
+ https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-31_he106b2a_openblas.conda
91
+ https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2
92
+ https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda
93
+ https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda
94
+ https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda
95
+ https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda
96
+ https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda
97
+ https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda
98
+ https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda
99
+ https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda
100
+ https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_2.conda
101
+ https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_2.conda
102
+ https://conda.anaconda.org/conda-forge/linux-64/libglib-2.84.2-h3618099_0.conda
103
+ https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda
104
+ https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.36.0-hc4361e1_1.conda
105
+ https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.36.0-h0121fbd_1.conda
106
+ https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.71.0-h8e591d7_1.conda
107
+ https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda
108
+ https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-31_h7ac8fdf_openblas.conda
109
+ https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
110
+ https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda
111
+ https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
112
+ https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.29-pthreads_h94d23a6_0.conda
113
+ https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-1.21.0-hd1b1c89_0.conda
114
+ https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.21.0-ha770c72_0.conda
115
+ https://conda.anaconda.org/conda-forge/linux-64/libparquet-20.0.0-h081d1f1_6_cpu.conda
116
+ https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.29.3-h501fc15_1.conda
117
+ https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hba17884_3.conda
118
+ https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda
119
+ https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.1-hee588c1_0.conda
120
+ https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda
121
+ https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda
122
+ https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.conda
123
+ https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda
124
+ https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.10.0-h202a827_0.conda
125
+ https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
126
+ https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.8-h4bc477f_0.conda
127
+ https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
128
+
129
+ https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda
130
+ https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda
131
+ https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py313h8060acc_1.conda
132
+ https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
133
+ https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.7.0-pyhd8ed1ab_0.conda
134
+ https://conda.anaconda.org/conda-forge/linux-64/mypy-1.16.0-py313h536fd9c_0.conda
135
+ https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda
136
+ https://conda.anaconda.org/conda-forge/noarch/natsort-8.4.0-pyh29332c3_1.conda
137
+ https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
138
+ https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.21-py39h77e2912_1.conda
139
+ https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h3f2d84a_0.conda
140
+ https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.0-py313h17eae1a_0.conda
141
+ https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda
142
+ https://conda.anaconda.org/conda-forge/linux-64/orc-2.1.2-h17f744e_0.conda
143
+ https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
144
+ https://conda.anaconda.org/conda-forge/noarch/paramiko-3.5.1-pyhd8ed1ab_0.conda
145
+ https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda
146
+ https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.45-hc749103_0.conda
147
+ https://conda.anaconda.org/conda-forge/noarch/pip-25.1.1-pyh145f28c_0.conda
148
+ https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.12.1.2-pyhd8ed1ab_0.conda
149
+ https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda
150
+ https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda
151
+ https://conda.anaconda.org/conda-forge/linux-64/polars-1.30.0-default_h1443d73_0.conda
152
+ https://conda.anaconda.org/conda-forge/linux-64/polars-default-1.30.0-py39hfac2b71_0.conda
153
+ https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda
154
+ https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda
155
+ https://conda.anaconda.org/conda-forge/linux-64/psutil-7.0.0-py313h536fd9c_0.conda
156
+ https://conda.anaconda.org/conda-forge/linux-64/pyarrow-20.0.0-py313h78bf25f_0.conda
157
+ https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-20.0.0-py313he5f92c8_0_cpu.conda
158
+ https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
159
+ https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda
160
+ https://conda.anaconda.org/conda-forge/linux-64/pynacl-1.5.0-py313h536fd9c_4.conda
161
+ https://conda.anaconda.org/conda-forge/noarch/pyproject-api-1.9.1-pyhe01879c_0.conda
162
+
163
+ https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
164
+ https://conda.anaconda.org/conda-forge/linux-64/python-3.13.3-hf636f53_101_cp313.conda
165
+ https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.3-h4df99d1_101.conda
166
+ https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda
167
+ https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-7_cp313.conda
168
+ https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda
169
+ https://conda.anaconda.org/conda-forge/linux-64/rapidfuzz-3.13.0-py313h46c70d0_0.conda
170
+ https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h9925aae_3.conda
171
+ https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda
172
+ https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_1.conda
173
+ https://conda.anaconda.org/conda-forge/noarch/requests-2.32.4-pyhd8ed1ab_0.conda
174
+ https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda
175
+ https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_1.conda
176
+ https://conda.anaconda.org/conda-forge/noarch/rich-14.0.0-pyh29332c3_0.conda
177
+ https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda
178
+ https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.14-py313h536fd9c_0.conda
179
+ https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py313h536fd9c_1.conda
180
+ https://conda.anaconda.org/conda-forge/noarch/ruamel.yaml.jinja2-0.2.7-pyhd8ed1ab_1.conda
181
+ https://conda.anaconda.org/conda-forge/linux-64/ruff-0.11.13-py313h67f39b2_0.conda
182
+ https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.21-h7ab7c64_0.conda
183
+ https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py313h78bf25f_3.conda
184
+ https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda
185
+
186
+ https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda
187
+
188
+ https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.1-h8bd8927_1.conda
189
+ https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda
190
+ https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.7-pyhd8ed1ab_0.conda
191
+ https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda
192
+ https://conda.anaconda.org/conda-forge/noarch/sphinx-autodoc-typehints-3.2.0-pyhd8ed1ab_0.conda
193
+ https://conda.anaconda.org/conda-forge/noarch/sphinx-click-6.0.0-pyhd8ed1ab_1.conda
194
+
195
+ https://conda.anaconda.org/conda-forge/noarch/sphinx-rtd-theme-3.0.1-hd8ed1ab_0.conda
196
+ https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.0.1-pyha770c72_0.conda
197
+ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda
198
+ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-2.0.0-pyhd8ed1ab_1.conda
199
+ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_1.conda
200
+ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_1.conda
201
+ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda
202
+ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda
203
+ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda
204
+ https://conda.anaconda.org/conda-forge/noarch/stdlib-list-0.11.1-pyhd8ed1ab_0.conda
205
+ https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda
206
+ https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda
207
+ https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda
208
+ https://conda.anaconda.org/conda-forge/noarch/tox-4.26.0-pyhe01879c_0.conda
209
+
210
+ https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda
211
+ https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2025.5.9.12-pyhd8ed1ab_0.conda
212
+ https://conda.anaconda.org/conda-forge/noarch/twine-6.1.0-pyh29332c3_0.conda
213
+ https://conda.anaconda.org/conda-forge/noarch/types-appdirs-1.4.3.5-pyhd8ed1ab_1.conda
214
+ https://conda.anaconda.org/conda-forge/noarch/types-filelock-3.2.7-pyhd8ed1ab_1.conda
215
+ https://conda.anaconda.org/conda-forge/noarch/types-paramiko-3.5.0.20250516-pyhd8ed1ab_0.conda
216
+ https://conda.anaconda.org/conda-forge/noarch/types-requests-2.32.0.20250602-pyhd8ed1ab_0.conda
217
+ https://conda.anaconda.org/conda-forge/noarch/types-tqdm-4.67.0.20250516-pyhd8ed1ab_0.conda
218
+ https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.14.0-h32cad80_0.conda
219
+ https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.14.0-pyhe01879c_0.conda
220
+ https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
221
+ https://conda.anaconda.org/conda-forge/noarch/urllib3-2.4.0-pyhd8ed1ab_0.conda
222
+ https://conda.anaconda.org/conda-forge/linux-64/uv-0.7.12-h2f11bb8_0.conda
223
+ https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.31.2-pyhd8ed1ab_0.conda
224
+
225
+ https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhd8ed1ab_0.conda
226
+ https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda
227
+ https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py313h536fd9c_2.conda
228
+ https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.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 = "1.0.2"
11
+ version = "1.1.0"
12
12
  description = "Stores assets shared between multiple Sun (NeuroAI) lab data pipelines."
13
13
  readme = "README.md"
14
14
  license = { file = "LICENSE" }
@@ -37,7 +37,7 @@ classifiers = [
37
37
  "Programming Language :: Python :: 3.12",
38
38
  "Programming Language :: Python :: 3.13",
39
39
  # Supported OS systems
40
- "Operating System :: POSIX :: Linux",
40
+ "Operating System :: OS Independent",
41
41
  ]
42
42
 
43
43
  # Runtime project dependencies. This overlaps with the 'condarun' optional list.
@@ -54,6 +54,7 @@ dependencies = [
54
54
  "natsort>=8,<9",
55
55
  "polars>=1,<2",
56
56
  "pyarrow>=20,<21",
57
+ "filelock>=3,<4",
57
58
  ]
58
59
 
59
60
  [project.urls]
@@ -75,6 +76,7 @@ condarun = [
75
76
  "natsort>=8,<9",
76
77
  "polars>=1,<2",
77
78
  "pyarrow>=20,<21",
79
+ "filelock>=3,<4",
78
80
  ]
79
81
 
80
82
  # Dependencies known to be installable with conda for all development platforms (OSX ARM64, WIN AMD64, LIN AMD64).
@@ -101,6 +103,7 @@ conda = [
101
103
  "types-appdirs>=1,<2",
102
104
  "types-tqdm>=4,<5",
103
105
  "types-paramiko>=3,<4",
106
+ "types-filelock>=3,<4"
104
107
  ]
105
108
 
106
109
  # Dependencies known to not be installable with conda for at least one supported development platform
@@ -118,7 +121,7 @@ noconda = [
118
121
  "build>=1,<2",
119
122
 
120
123
  # Automation
121
- "ataraxis-automation>=4,<5",
124
+ "ataraxis-automation>=5,<6",
122
125
  ]
123
126
 
124
127
  # A shorthand specification that installs tox and all packages required for development tasks. This specification can
@@ -10,6 +10,7 @@ from .server import generate_server_credentials
10
10
  from .data_classes import (
11
11
  SessionData,
12
12
  ExperimentState,
13
+ ProcessingTracker,
13
14
  ProjectConfiguration,
14
15
  MesoscopeSystemConfiguration,
15
16
  MesoscopeExperimentConfiguration,
@@ -65,6 +66,7 @@ def verify_session_integrity(session_path: str, create_processed_directories: bo
65
66
  processed session. This use case is fully automated and should not be triggered manually by the user.
66
67
  """
67
68
  session = Path(session_path)
69
+ session_data = SessionData.load(session_path=session)
68
70
 
69
71
  # Runs the verification process
70
72
  verify_session_checksum(
@@ -72,10 +74,12 @@ def verify_session_integrity(session_path: str, create_processed_directories: bo
72
74
  )
73
75
 
74
76
  # 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
+ tracker = ProcessingTracker(file_path=session_data.raw_data.integrity_verification_tracker_path)
78
+ if tracker.is_complete:
79
+ # noinspection PyTypeChecker
77
80
  console.echo(message=f"Session {session.stem} raw data integrity: Verified.", level=LogLevel.SUCCESS)
78
81
  else:
82
+ # noinspection PyTypeChecker
79
83
  console.echo(message=f"Session {session.stem} raw data integrity: Compromised!", level=LogLevel.ERROR)
80
84
 
81
85
 
@@ -120,6 +124,7 @@ def generate_project_manifest_file(
120
124
  output_directory=Path(output_directory),
121
125
  processed_project_directory=Path(project_processed_path) if project_processed_path else None,
122
126
  )
127
+ # noinspection PyTypeChecker
123
128
  console.echo(message=f"Project {Path(project_path).stem} data manifest file: generated.", level=LogLevel.SUCCESS)
124
129
 
125
130
 
@@ -177,6 +182,7 @@ def generate_system_configuration_file(output_directory: str, acquisition_system
177
182
  f"Mesoscope-VR system configuration file: generated. Edit the configuration parameters stored inside the "
178
183
  f"{file_name} file to match the state of the acquisition system and use context."
179
184
  )
185
+ # noinspection PyTypeChecker
180
186
  console.echo(message=message, level=LogLevel.SUCCESS)
181
187
 
182
188
  # For unsupported system types, raises an error message
@@ -234,6 +240,7 @@ def generate_server_credentials_file(output_directory: str, host: str, username:
234
240
  f"Server access credentials file: generated. If necessary, remember to edit the data acquisition system "
235
241
  f"configuration file to include the path to the credentials file generated via this CLI."
236
242
  )
243
+ # noinspection PyTypeChecker
237
244
  console.echo(message=message, level=LogLevel.SUCCESS)
238
245
 
239
246
 
@@ -284,6 +291,7 @@ def generate_project_configuration_file(project: str, surgery_log_id: str, water
284
291
  project_name=project, surgery_sheet_id=surgery_log_id, water_log_sheet_id=water_restriction_log_id
285
292
  )
286
293
  configuration.save(path=file_path.joinpath())
294
+ # noinspection PyTypeChecker
287
295
  console.echo(message=f"Project {project} data structure and configuration file: generated.", level=LogLevel.SUCCESS)
288
296
 
289
297
 
@@ -360,6 +368,7 @@ def generate_experiment_configuration_file(project: str, experiment: str, state_
360
368
  raise ValueError(message) # Fall-back to appease mypy, should not be reachable
361
369
 
362
370
  experiment_configuration.to_yaml(file_path=file_path)
371
+ # noinspection PyTypeChecker
363
372
  console.echo(message=f"Experiment {experiment} configuration file: generated.", level=LogLevel.SUCCESS)
364
373
 
365
374
 
@@ -9,6 +9,7 @@ from .server import generate_server_credentials as generate_server_credentials
9
9
  from .data_classes import (
10
10
  SessionData as SessionData,
11
11
  ExperimentState as ExperimentState,
12
+ ProcessingTracker as ProcessingTracker,
12
13
  ProjectConfiguration as ProjectConfiguration,
13
14
  MesoscopeSystemConfiguration as MesoscopeSystemConfiguration,
14
15
  MesoscopeExperimentConfiguration as MesoscopeExperimentConfiguration,
@@ -15,6 +15,7 @@ from .session_data import (
15
15
  RawData,
16
16
  SessionData,
17
17
  ProcessedData,
18
+ ProcessingTracker,
18
19
  ProjectConfiguration,
19
20
  )
20
21
  from .surgery_data import (
@@ -63,4 +64,5 @@ __all__ = [
63
64
  "MesoscopeCameras",
64
65
  "MesoscopeMicroControllers",
65
66
  "MesoscopeAdditionalFirmware",
67
+ "ProcessingTracker",
66
68
  ]
@@ -10,6 +10,7 @@ from .session_data import (
10
10
  RawData as RawData,
11
11
  SessionData as SessionData,
12
12
  ProcessedData as ProcessedData,
13
+ ProcessingTracker as ProcessingTracker,
13
14
  ProjectConfiguration as ProjectConfiguration,
14
15
  )
15
16
  from .surgery_data import (
@@ -58,4 +59,5 @@ __all__ = [
58
59
  "MesoscopeCameras",
59
60
  "MesoscopeMicroControllers",
60
61
  "MesoscopeAdditionalFirmware",
62
+ "ProcessingTracker",
61
63
  ]