sapiopycommons 2025.7.1a575__py3-none-any.whl → 2025.7.2a578__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sapiopycommons might be problematic. Click here for more details.
- sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2.py +43 -0
- sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2.pyi +31 -0
- sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2_grpc.py +24 -0
- sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2.py +123 -0
- sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2.pyi +598 -0
- sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2_grpc.py +24 -0
- sapiopycommons/ai/api/plan/proto/step_output_pb2.py +45 -0
- sapiopycommons/ai/api/plan/proto/step_output_pb2.pyi +42 -0
- sapiopycommons/ai/api/plan/proto/step_output_pb2_grpc.py +24 -0
- sapiopycommons/ai/api/plan/proto/step_pb2.py +43 -0
- sapiopycommons/ai/api/plan/proto/step_pb2.pyi +43 -0
- sapiopycommons/ai/api/plan/proto/step_pb2_grpc.py +24 -0
- sapiopycommons/ai/api/plan/script/proto/script_pb2.py +53 -0
- sapiopycommons/ai/api/plan/script/proto/script_pb2.pyi +99 -0
- sapiopycommons/ai/api/plan/script/proto/script_pb2_grpc.py +153 -0
- sapiopycommons/ai/api/plan/tool/proto/entry_pb2.py +57 -0
- sapiopycommons/ai/api/plan/tool/proto/entry_pb2.pyi +96 -0
- sapiopycommons/ai/api/plan/tool/proto/entry_pb2_grpc.py +24 -0
- sapiopycommons/ai/api/plan/tool/proto/tool_pb2.py +67 -0
- sapiopycommons/ai/api/plan/tool/proto/tool_pb2.pyi +220 -0
- sapiopycommons/ai/api/plan/tool/proto/tool_pb2_grpc.py +154 -0
- sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2.py +39 -0
- sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2.pyi +32 -0
- sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2_grpc.py +24 -0
- sapiopycommons/ai/protobuf_utils.py +508 -0
- sapiopycommons/ai/test_client.py +251 -0
- sapiopycommons/ai/tool_service_base.py +798 -0
- sapiopycommons/callbacks/callback_util.py +332 -665
- sapiopycommons/callbacks/field_builder.py +0 -2
- sapiopycommons/chem/IndigoMolecules.py +1 -29
- sapiopycommons/chem/Molecules.py +3 -3
- sapiopycommons/customreport/auto_pagers.py +1 -26
- sapiopycommons/customreport/term_builder.py +1 -1
- sapiopycommons/datatype/pseudo_data_types.py +326 -349
- sapiopycommons/eln/experiment_handler.py +767 -408
- sapiopycommons/eln/experiment_report_util.py +6 -11
- sapiopycommons/eln/plate_designer.py +2 -7
- sapiopycommons/files/file_util.py +5 -7
- sapiopycommons/general/accession_service.py +2 -2
- sapiopycommons/general/aliases.py +1 -3
- sapiopycommons/general/audit_log.py +0 -7
- sapiopycommons/general/custom_report_util.py +0 -12
- sapiopycommons/processtracking/custom_workflow_handler.py +1 -11
- sapiopycommons/processtracking/endpoints.py +0 -27
- sapiopycommons/recordmodel/record_handler.py +317 -657
- sapiopycommons/rules/eln_rule_handler.py +1 -8
- sapiopycommons/rules/on_save_rule_handler.py +1 -8
- sapiopycommons/webhook/webhook_handlers.py +0 -3
- sapiopycommons/webhook/webservice_handlers.py +2 -2
- {sapiopycommons-2025.7.1a575.dist-info → sapiopycommons-2025.7.2a578.dist-info}/METADATA +2 -2
- sapiopycommons-2025.7.2a578.dist-info/RECORD +92 -0
- sapiopycommons/ai/tool_of_tools.py +0 -917
- sapiopycommons/eln/experiment_cache.py +0 -188
- sapiopycommons/eln/experiment_step_factory.py +0 -476
- sapiopycommons/eln/step_creation.py +0 -236
- sapiopycommons/general/data_structure_util.py +0 -115
- sapiopycommons-2025.7.1a575.dist-info/RECORD +0 -70
- {sapiopycommons-2025.7.1a575.dist-info → sapiopycommons-2025.7.2a578.dist-info}/WHEEL +0 -0
- {sapiopycommons-2025.7.1a575.dist-info → sapiopycommons-2025.7.2a578.dist-info}/licenses/LICENSE +0 -0
|
@@ -126,16 +126,12 @@ class ElnRuleHandler:
|
|
|
126
126
|
"""
|
|
127
127
|
return list(self._entry_to_field_maps.keys())
|
|
128
128
|
|
|
129
|
-
# CR-47529: Add info about HVDT behavior to the docstring of these functions.
|
|
130
129
|
def get_records(self, data_type: DataTypeIdentifier, entry: str | None = None) -> list[DataRecord]:
|
|
131
130
|
"""
|
|
132
131
|
Get records from the cached context with the given data type. Capable of being filtered to searching within
|
|
133
132
|
the context of an entry name. If the given data type or entry does not exist in the context,
|
|
134
133
|
returns an empty list.
|
|
135
134
|
|
|
136
|
-
Note that if you are attempting to retrieve record that are high volume data types and are receiving nothing,
|
|
137
|
-
the HVDTs may have been sent as field maps. Consider using the get_field_maps function if this occurs.
|
|
138
|
-
|
|
139
135
|
:param data_type: The data type of the records to return.
|
|
140
136
|
:param entry: The name of the entry to grab the records from. If None, returns the records that match the data
|
|
141
137
|
type from every entry. If an entry is provided, but it does not exist in the context, returns an empty list.
|
|
@@ -154,7 +150,7 @@ class ElnRuleHandler:
|
|
|
154
150
|
|
|
155
151
|
Field maps will only exist in the context if the data record that the fields are from is no longer accessible
|
|
156
152
|
to the user. This can occur because the data record was deleted, or because the user does not have access to the
|
|
157
|
-
record due to ACL.
|
|
153
|
+
record due to ACL.
|
|
158
154
|
|
|
159
155
|
:param data_type: The data type of the field maps to return.
|
|
160
156
|
:param entry: The name of the entry to grab the field maps from. If None, returns the field maps that match the
|
|
@@ -174,9 +170,6 @@ class ElnRuleHandler:
|
|
|
174
170
|
within the context of an entry name. If the given data type or entry does not exist in the context,
|
|
175
171
|
returns an empty list.
|
|
176
172
|
|
|
177
|
-
Note that if you are attempting to retrieve record that are high volume data types and are receiving nothing,
|
|
178
|
-
the HVDTs may have been sent as field maps. Consider using the get_field_maps function if this occurs.
|
|
179
|
-
|
|
180
173
|
:param wrapper_type: The record model wrapper or data type name of the record to get from the context.
|
|
181
174
|
:param entry: The name of the entry to grab the records from. If None, returns the records that match the data
|
|
182
175
|
type from every entry. If an entry is provided, but it does not exist in the context, returns an empty list.
|
|
@@ -122,16 +122,12 @@ class OnSaveRuleHandler:
|
|
|
122
122
|
"""
|
|
123
123
|
return list(self._base_id_to_field_maps.keys())
|
|
124
124
|
|
|
125
|
-
# CR-47529: Add info about HVDT behavior to the docstring of these functions.
|
|
126
125
|
def get_records(self, data_type: DataTypeIdentifier, record_id: int | None = None) -> list[DataRecord]:
|
|
127
126
|
"""
|
|
128
127
|
Get records from the cached context with the given data type. Capable of being filtered to searching within
|
|
129
128
|
the context of a record ID. If the given data type or record ID does not exist in the context,
|
|
130
129
|
returns an empty list.
|
|
131
130
|
|
|
132
|
-
Note that if you are attempting to retrieve record that are high volume data types and are receiving nothing,
|
|
133
|
-
the HVDTs may have been sent as field maps. Consider using the get_field_maps function if this occurs.
|
|
134
|
-
|
|
135
131
|
:param data_type: The data type of the records to return.
|
|
136
132
|
:param record_id: The record ID of the base record to search from. If None, returns the records that match the
|
|
137
133
|
data type from every ID. If an ID is provided, but it does not exist in the context, returns an empty list.
|
|
@@ -150,7 +146,7 @@ class OnSaveRuleHandler:
|
|
|
150
146
|
|
|
151
147
|
Field maps will only exist in the context if the data record that the fields are from is no longer accessible
|
|
152
148
|
to the user. This can occur because the data record was deleted, or because the user does not have access to the
|
|
153
|
-
record due to ACL.
|
|
149
|
+
record due to ACL.
|
|
154
150
|
|
|
155
151
|
:param data_type: The data type of the field maps to return.
|
|
156
152
|
:param record_id: The record ID of the base record to search from. If None, returns the field maps that match
|
|
@@ -170,9 +166,6 @@ class OnSaveRuleHandler:
|
|
|
170
166
|
the context of a record ID. If the given data type or record ID does not exist in the context,
|
|
171
167
|
returns an empty list.
|
|
172
168
|
|
|
173
|
-
Note that if you are attempting to retrieve record that are high volume data types and are receiving nothing,
|
|
174
|
-
the HVDTs may have been sent as field maps. Consider using the get_field_maps function if this occurs.
|
|
175
|
-
|
|
176
169
|
:param wrapper_type: The record model wrapper or data type name of the record to get from the context.
|
|
177
170
|
:param record_id: The record ID of the base record to search from. If None, returns the records that match the
|
|
178
171
|
data type from ID. If an ID is provided, but it does not exist in the context, returns an empty list.
|
|
@@ -220,9 +220,6 @@ class CommonsWebhookHandler(AbstractWebhookHandler):
|
|
|
220
220
|
else:
|
|
221
221
|
self.custom_context = None
|
|
222
222
|
|
|
223
|
-
# CR-47526: Set the dialog timeout to 1 hour by default. This can be overridden by the webhook.
|
|
224
|
-
self.callback.set_dialog_timeout(3600)
|
|
225
|
-
|
|
226
223
|
# Set the default display types, titles, and messages for each type of exception that can display a message.
|
|
227
224
|
self.default_user_error_display_type = MessageDisplayType.TOASTER_WARNING
|
|
228
225
|
self.default_critical_error_display_type = MessageDisplayType.DISPLAY_ERROR
|
|
@@ -3,7 +3,7 @@ import traceback
|
|
|
3
3
|
from abc import abstractmethod, ABC
|
|
4
4
|
from base64 import b64decode
|
|
5
5
|
from logging import Logger
|
|
6
|
-
from typing import Any
|
|
6
|
+
from typing import Any
|
|
7
7
|
|
|
8
8
|
from flask import request, Response, Request
|
|
9
9
|
from sapiopylib.rest.DataRecordManagerService import DataRecordManager
|
|
@@ -122,7 +122,7 @@ class AbstractWebserviceHandler(AbstractWebhookHandler):
|
|
|
122
122
|
"""
|
|
123
123
|
pass
|
|
124
124
|
|
|
125
|
-
def authenticate_user(self, headers:
|
|
125
|
+
def authenticate_user(self, headers: dict[str, str]) -> SapioUser:
|
|
126
126
|
"""
|
|
127
127
|
Authenticate a user for making requests to a Sapio server using the provided headers. If no user can be
|
|
128
128
|
authenticated, then an exception will be thrown.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: sapiopycommons
|
|
3
|
-
Version: 2025.7.
|
|
3
|
+
Version: 2025.7.2a578
|
|
4
4
|
Summary: Official Sapio Python API Utilities Package
|
|
5
5
|
Project-URL: Homepage, https://github.com/sapiosciences
|
|
6
6
|
Author-email: Jonathan Steck <jsteck@sapiosciences.com>, Yechen Qiao <yqiao@sapiosciences.com>
|
|
@@ -17,7 +17,7 @@ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
|
17
17
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
18
|
Requires-Python: >=3.10
|
|
19
19
|
Requires-Dist: databind>=4.5
|
|
20
|
-
Requires-Dist: sapiopylib>=
|
|
20
|
+
Requires-Dist: sapiopylib>=2024.5.24.210
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
|
|
23
23
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
sapiopycommons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
sapiopycommons/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
sapiopycommons/ai/protobuf_utils.py,sha256=5Y0z_lRVipbHPJcHJf9GosK-ZjAh_I2JI3QwV8iyfKg,24884
|
|
4
|
+
sapiopycommons/ai/test_client.py,sha256=8AlRTuy7XUC40aU4SgTQkNc_ZBp_ANhVNEKbUx8ABRM,10430
|
|
5
|
+
sapiopycommons/ai/tool_service_base.py,sha256=8it0853p-kw3Y1SdEyEfmxCbxM3_poUTJKFUaZ5MrCQ,35366
|
|
6
|
+
sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2.py,sha256=YcZjb_YM-XeLErM8hEC_S7vGMVGvcXAMGs2b-u5zvOE,2377
|
|
7
|
+
sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2.pyi,sha256=FwtXmNAf7iYGEFm4kbqb04v77jNHbZg18ZmEDhle_bU,1444
|
|
8
|
+
sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2_grpc.py,sha256=wPImJPdCUZNVEVoUWzsba9kGIXjEKPdUkawP5SnVyiU,932
|
|
9
|
+
sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2.py,sha256=nWC91vR2pMgMUyNOZRZ0YiuL1-8ntnjXLqt1daxsD34,20869
|
|
10
|
+
sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2.pyi,sha256=U5zXrbBxsWilLTsRWJd1TqjdjLKFsr3enF9OJ8GfyWw,34028
|
|
11
|
+
sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2_grpc.py,sha256=4vD4jWanaJ4uclSkFmS7JIz_lwYXDWBE3DomuPjUyII,941
|
|
12
|
+
sapiopycommons/ai/api/plan/proto/step_output_pb2.py,sha256=JpBZSyoYyPTEaaXjW664PeJNK0zxV1mly_kp5re42z4,2661
|
|
13
|
+
sapiopycommons/ai/api/plan/proto/step_output_pb2.pyi,sha256=yuxOYnDZ9DRuu-TLzaKOW_B4LUiYxTrNc2AbssXg4kE,2022
|
|
14
|
+
sapiopycommons/ai/api/plan/proto/step_output_pb2_grpc.py,sha256=vDRY_pIIshQ4UpdW-ra1F5zBmntdsW2scySkMAA-zfc,925
|
|
15
|
+
sapiopycommons/ai/api/plan/proto/step_pb2.py,sha256=nL976oTFdX4ih4gg7_J-8eFoGB69tFvERB2gT3L2-6s,2439
|
|
16
|
+
sapiopycommons/ai/api/plan/proto/step_pb2.pyi,sha256=QPIcsjcUvEGQkdZMUMiVzFFNDl8yOUe_qJtf5XEp5Ck,2062
|
|
17
|
+
sapiopycommons/ai/api/plan/proto/step_pb2_grpc.py,sha256=DgiBYFvTNiDG_2a9Tpt5iel2fRUfePZWP41fZTC-KWk,918
|
|
18
|
+
sapiopycommons/ai/api/plan/script/proto/script_pb2.py,sha256=5tmf7Wmxt42XA8g_2Qv-sxnA7AuK-A0kCT3-4i1Y2Vk,4221
|
|
19
|
+
sapiopycommons/ai/api/plan/script/proto/script_pb2.pyi,sha256=mJ-JXUMUyIjPvv-glNn8FRlDfG1yGivtY0mp6dXVSjA,6061
|
|
20
|
+
sapiopycommons/ai/api/plan/script/proto/script_pb2_grpc.py,sha256=RkShHpe_d5EJHk3qp-or1JpvSEqShb7cCiaXnJ2YSww,6931
|
|
21
|
+
sapiopycommons/ai/api/plan/tool/proto/entry_pb2.py,sha256=A-ufAWwbJ0odVXBZBQKvke6LYPijPl2dpb2IFRaXmPE,4124
|
|
22
|
+
sapiopycommons/ai/api/plan/tool/proto/entry_pb2.pyi,sha256=NNBrdHz5PzAuUEXuGgTU4THy9rx8Sr9iGTb65QtVH4Q,4589
|
|
23
|
+
sapiopycommons/ai/api/plan/tool/proto/entry_pb2_grpc.py,sha256=YKkX2kexERUx4asLCShufSnZhgf339Zk8Xw1FAgLfHQ,924
|
|
24
|
+
sapiopycommons/ai/api/plan/tool/proto/tool_pb2.py,sha256=jrSgsSx8mGPWuxYPxOom7l925bavWaX4NEQAkC9niJo,6854
|
|
25
|
+
sapiopycommons/ai/api/plan/tool/proto/tool_pb2.pyi,sha256=KzOmH-ic0anjRta4jhScMRCOI1OtO5rSZrQDr_W3eZ0,15992
|
|
26
|
+
sapiopycommons/ai/api/plan/tool/proto/tool_pb2_grpc.py,sha256=68u5E1ZKha5frP5GuY8Ad-c0c79vBhtfnj5Q4u-8xOY,6982
|
|
27
|
+
sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2.py,sha256=WKzNi-d5dqeJbmEXUVE5qJ4Qm34HmsqRXRtXih382g8,2100
|
|
28
|
+
sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2.pyi,sha256=vLYA8Tkzq2AwgVadoUp5vAg4HgGlgga0kzeS3e_XkCQ,1621
|
|
29
|
+
sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2_grpc.py,sha256=2W0YzT4SfnGTLq98AdvkyNM0n75Tkl8DervPS1ryGao,932
|
|
30
|
+
sapiopycommons/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
+
sapiopycommons/callbacks/callback_util.py,sha256=sz76LzD9sVLPMcoOpmzPe1aILGXcpHfyZ-qex8oR11c,130849
|
|
32
|
+
sapiopycommons/callbacks/field_builder.py,sha256=p2XacN99MuKk3ite8GAqstUMpixqugul2CsC4gB83-o,38620
|
|
33
|
+
sapiopycommons/chem/IndigoMolecules.py,sha256=slM2y39zZFHc468c366EqR8T-GYJ24UnM9HWAqWFEwQ,3900
|
|
34
|
+
sapiopycommons/chem/Molecules.py,sha256=5PzRyE1s-Z3nfwh3Y4dCNdQOIJGhog08wyZvgTkKwyU,12384
|
|
35
|
+
sapiopycommons/chem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
+
sapiopycommons/customreport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
+
sapiopycommons/customreport/auto_pagers.py,sha256=3-XXWrP7r41a_Y-8YLPnfm0s65m4qEEUqu4azX47oPI,14828
|
|
38
|
+
sapiopycommons/customreport/column_builder.py,sha256=0RO53e9rKPZ07C--KcepN6_tpRw_FxF3O9vdG0ilKG8,3014
|
|
39
|
+
sapiopycommons/customreport/custom_report_builder.py,sha256=BlTxZ4t1sfZA2Ciur1EfYvkZxHxJ7ADwYNAe2zwiN0c,7176
|
|
40
|
+
sapiopycommons/customreport/term_builder.py,sha256=PNp71NF1vFxidk5v6uQNi9oQR9KJIk8WfhyntvvZN-U,18573
|
|
41
|
+
sapiopycommons/datatype/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
sapiopycommons/datatype/attachment_util.py,sha256=N-nhsJ0oxa_Ft6Y6VWeNFYLzfuQqsjhHA6_-yIt2wVw,3596
|
|
43
|
+
sapiopycommons/datatype/data_fields.py,sha256=pczUlEcE0TeHEDU0Gkvu7voacSLPXCB7l9UbI1Tb6V0,5656
|
|
44
|
+
sapiopycommons/datatype/pseudo_data_types.py,sha256=6TG7aJxgmUZ8FQkWBcgmbK5oy7AFFNtKOPpi1w1OOYA,27657
|
|
45
|
+
sapiopycommons/eln/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
+
sapiopycommons/eln/experiment_handler.py,sha256=FeqmjnxN5WyDDstN3_AMSo9r7nQi-5zou4m-3K5JsYM,123363
|
|
47
|
+
sapiopycommons/eln/experiment_report_util.py,sha256=NNNNPVD3_2ZAjoOqCMOnlnmPD0SCjDcgYi453ATSJBs,37027
|
|
48
|
+
sapiopycommons/eln/experiment_tags.py,sha256=7-fpOiSqrjbXmWIJhEhaxMgLsVCPAtKqH8xRzpDVKoE,356
|
|
49
|
+
sapiopycommons/eln/plate_designer.py,sha256=ix2cflz13PAHyu4deS3d5Qd3kQXk0C7IQxBQ2Dm9fEM,13692
|
|
50
|
+
sapiopycommons/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
sapiopycommons/files/complex_data_loader.py,sha256=T39veNhvYl6j_uZjIIJ8Mk5Aa7otR5RB-g8XlAdkksA,1421
|
|
52
|
+
sapiopycommons/files/file_bridge.py,sha256=vKbqxPexi15epr_-_qLrEfYoxNxB031mXN92iVtOMqE,9511
|
|
53
|
+
sapiopycommons/files/file_bridge_handler.py,sha256=SEYDIQhSCmjI6qyLdDJE8JVKSd0WYvF7JvAq_Ahp9Do,25503
|
|
54
|
+
sapiopycommons/files/file_data_handler.py,sha256=f96MlkMuQhUCi4oLnzJK5AiuElCp5jLI8_sJkZVwpws,36779
|
|
55
|
+
sapiopycommons/files/file_util.py,sha256=w4Q7zYJb9YaPxrecmT4RT_OOibKMRP0NI1CyoOLfAP4,31747
|
|
56
|
+
sapiopycommons/files/file_validator.py,sha256=ryg22-93csmRO_Pv0ZpWphNkB74xWZnHyJ23K56qLj0,28761
|
|
57
|
+
sapiopycommons/files/file_writer.py,sha256=hACVl0duCjP28gJ1NPljkjagNCLod0ygUlPbvUmRDNM,17605
|
|
58
|
+
sapiopycommons/flowcyto/flow_cyto.py,sha256=vs9WhXXKz3urpjL8QKSk56B-NSmQR3O3x_WFBKoeO10,3227
|
|
59
|
+
sapiopycommons/flowcyto/flowcyto_data.py,sha256=mYKFuLbtpJ-EsQxLGtu4tNHVlygTxKixgJxJqD68F58,2596
|
|
60
|
+
sapiopycommons/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
|
+
sapiopycommons/general/accession_service.py,sha256=QeNGd78Zr08ezWpThTuAkxO4bXusEcp5x9jJRZRwliA,13483
|
|
62
|
+
sapiopycommons/general/aliases.py,sha256=alc2R5TOSKbZif3pcGZ706y23Y9F4HQPC-Kj4xJZ_Us,14503
|
|
63
|
+
sapiopycommons/general/audit_log.py,sha256=KQq0PsvukUoE3l6TQb3-vpu5-MbSINpWlnQ9e7jojPg,8743
|
|
64
|
+
sapiopycommons/general/custom_report_util.py,sha256=NwwmejSQLwSbrndEk1gPyFNYk9GZoS7Wrp9ab9moFgw,18014
|
|
65
|
+
sapiopycommons/general/directive_util.py,sha256=7SeQrd2Ye5JHlXZtJZaVGgtaSLdq_Vm9EObuxf44Pz8,3905
|
|
66
|
+
sapiopycommons/general/exceptions.py,sha256=aPlzK1cvxeMU5UsokYlLrIBGltUfJZ7LH8zvLh9DxpI,3233
|
|
67
|
+
sapiopycommons/general/html_formatter.py,sha256=HE3OeGgwOw6x53zGSc4-UzP4-JoOmQIz3pX-DzNVg94,17138
|
|
68
|
+
sapiopycommons/general/popup_util.py,sha256=HKILegU1uCL_6abNlNL0Wn3xgX2JNa_kJeq7e5CZu6Q,31923
|
|
69
|
+
sapiopycommons/general/sapio_links.py,sha256=YkcVKNLrSGoM7tCCXBAsIbIxylctwdcEyhePrRMODe0,2859
|
|
70
|
+
sapiopycommons/general/storage_util.py,sha256=ovmK_jN7v09BoX07XxwShpBUC5WYQOM7dbKV_VeLXJU,8892
|
|
71
|
+
sapiopycommons/general/time_util.py,sha256=jU1urPoZRv6evNucR0-288EyT4PrsDpCr-H1-7BKq9A,12363
|
|
72
|
+
sapiopycommons/multimodal/multimodal.py,sha256=PFaGJPbKvW__tnxb8KkgkJZOKjQdgxF_kGfD5chet1s,6779
|
|
73
|
+
sapiopycommons/multimodal/multimodal_data.py,sha256=0BeVPr9HaC0hNTF1v1phTIKGruvNnwerHsD994qJKBg,15099
|
|
74
|
+
sapiopycommons/processtracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
+
sapiopycommons/processtracking/custom_workflow_handler.py,sha256=QZVRDUXpHfYIKD9LtaOcOt0Sr3RGDaeGQb-LZYAgkCc,25117
|
|
76
|
+
sapiopycommons/processtracking/endpoints.py,sha256=w5bziI2xC7450M95rCF8JpRwkoni1kEDibyAux9B12Q,10848
|
|
77
|
+
sapiopycommons/recordmodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
+
sapiopycommons/recordmodel/record_handler.py,sha256=aPbR3OS0RlsKOGztY-LZaOmkXKUB8ZTw3qqdJKXwd6U,70872
|
|
79
|
+
sapiopycommons/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
|
+
sapiopycommons/rules/eln_rule_handler.py,sha256=1aC88brATcjL1O0Hd2hQ0XNguKsKh8xELXComotk3mQ,10772
|
|
81
|
+
sapiopycommons/rules/on_save_rule_handler.py,sha256=J1YKjOGA1KUTwpnZMa7oIi5QU_4mBJrPygSHNDsMIIA,10539
|
|
82
|
+
sapiopycommons/samples/aliquot.py,sha256=mWOJUqaQh0t3HklNuGdmuV7D5zzXs6fpLwtDdM6_XTo,3018
|
|
83
|
+
sapiopycommons/sftpconnect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
+
sapiopycommons/sftpconnect/sftp_builder.py,sha256=lFK3FeXk-sFLefW0hqY8WGUQDeYiGaT6yDACzT_zFgQ,3015
|
|
85
|
+
sapiopycommons/webhook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
|
+
sapiopycommons/webhook/webhook_context.py,sha256=D793uLsb1691SalaPnBUk3rOSxn_hYLhdvkaIxjNXss,1909
|
|
87
|
+
sapiopycommons/webhook/webhook_handlers.py,sha256=L0HetSm43NvA5KyW3xbLpGFh2DbAaeZJVtXIEl2fvV8,39689
|
|
88
|
+
sapiopycommons/webhook/webservice_handlers.py,sha256=Y5dHx_UFWFuSqaoPL6Re-fsKYRuxvCWZ8bj6KSZ3jfM,14285
|
|
89
|
+
sapiopycommons-2025.7.2a578.dist-info/METADATA,sha256=GpEG5F8HYtYMzQaNR4RWRLc1N_9zcrIjKocgk8Oe6PU,3142
|
|
90
|
+
sapiopycommons-2025.7.2a578.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
91
|
+
sapiopycommons-2025.7.2a578.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
|
|
92
|
+
sapiopycommons-2025.7.2a578.dist-info/RECORD,,
|