sapiopycommons 2025.7.22a645__tar.gz → 2025.7.22a651__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 sapiopycommons might be problematic. Click here for more details.

Files changed (115) hide show
  1. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/PKG-INFO +1 -1
  2. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/pyproject.toml +1 -1
  3. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/test_client.py +19 -3
  4. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/.gitignore +0 -0
  5. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/LICENSE +0 -0
  6. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/README.md +0 -0
  7. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/__init__.py +0 -0
  8. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/__init__.py +0 -0
  9. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2.py +0 -0
  10. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2.pyi +0 -0
  11. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2_grpc.py +0 -0
  12. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2.py +0 -0
  13. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2.pyi +0 -0
  14. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2_grpc.py +0 -0
  15. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/proto/step_output_pb2.py +0 -0
  16. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/proto/step_output_pb2.pyi +0 -0
  17. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/proto/step_output_pb2_grpc.py +0 -0
  18. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/proto/step_pb2.py +0 -0
  19. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/proto/step_pb2.pyi +0 -0
  20. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/proto/step_pb2_grpc.py +0 -0
  21. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/script/proto/script_pb2.py +0 -0
  22. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/script/proto/script_pb2.pyi +0 -0
  23. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/script/proto/script_pb2_grpc.py +0 -0
  24. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/tool/proto/entry_pb2.py +0 -0
  25. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/tool/proto/entry_pb2.pyi +0 -0
  26. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/tool/proto/entry_pb2_grpc.py +0 -0
  27. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/tool/proto/tool_pb2.py +0 -0
  28. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/tool/proto/tool_pb2.pyi +0 -0
  29. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/plan/tool/proto/tool_pb2_grpc.py +0 -0
  30. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2.py +0 -0
  31. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2.pyi +0 -0
  32. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2_grpc.py +0 -0
  33. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/protobuf_utils.py +0 -0
  34. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/ai/tool_service_base.py +0 -0
  35. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/callbacks/__init__.py +0 -0
  36. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/callbacks/callback_util.py +0 -0
  37. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/callbacks/field_builder.py +0 -0
  38. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/chem/IndigoMolecules.py +0 -0
  39. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/chem/Molecules.py +0 -0
  40. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/chem/__init__.py +0 -0
  41. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/customreport/__init__.py +0 -0
  42. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/customreport/auto_pagers.py +0 -0
  43. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/customreport/column_builder.py +0 -0
  44. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/customreport/custom_report_builder.py +0 -0
  45. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/customreport/term_builder.py +0 -0
  46. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/datatype/__init__.py +0 -0
  47. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/datatype/attachment_util.py +0 -0
  48. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/datatype/data_fields.py +0 -0
  49. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/datatype/pseudo_data_types.py +0 -0
  50. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/eln/__init__.py +0 -0
  51. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/eln/experiment_cache.py +0 -0
  52. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/eln/experiment_handler.py +0 -0
  53. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/eln/experiment_report_util.py +0 -0
  54. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/eln/experiment_step_factory.py +0 -0
  55. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/eln/experiment_tags.py +0 -0
  56. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/eln/plate_designer.py +0 -0
  57. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/eln/step_creation.py +0 -0
  58. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/files/__init__.py +0 -0
  59. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/files/complex_data_loader.py +0 -0
  60. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/files/file_bridge.py +0 -0
  61. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/files/file_bridge_handler.py +0 -0
  62. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/files/file_data_handler.py +0 -0
  63. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/files/file_util.py +0 -0
  64. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/files/file_validator.py +0 -0
  65. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/files/file_writer.py +0 -0
  66. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/flowcyto/flow_cyto.py +0 -0
  67. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/flowcyto/flowcyto_data.py +0 -0
  68. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/__init__.py +0 -0
  69. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/accession_service.py +0 -0
  70. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/aliases.py +0 -0
  71. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/audit_log.py +0 -0
  72. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/custom_report_util.py +0 -0
  73. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/data_structure_util.py +0 -0
  74. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/directive_util.py +0 -0
  75. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/exceptions.py +0 -0
  76. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/html_formatter.py +0 -0
  77. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/popup_util.py +0 -0
  78. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/sapio_links.py +0 -0
  79. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/storage_util.py +0 -0
  80. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/general/time_util.py +0 -0
  81. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/multimodal/multimodal.py +0 -0
  82. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/multimodal/multimodal_data.py +0 -0
  83. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/processtracking/__init__.py +0 -0
  84. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/processtracking/custom_workflow_handler.py +0 -0
  85. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/processtracking/endpoints.py +0 -0
  86. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/recordmodel/__init__.py +0 -0
  87. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/recordmodel/record_handler.py +0 -0
  88. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/rules/__init__.py +0 -0
  89. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/rules/eln_rule_handler.py +0 -0
  90. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/rules/on_save_rule_handler.py +0 -0
  91. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/samples/aliquot.py +0 -0
  92. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/sftpconnect/__init__.py +0 -0
  93. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/sftpconnect/sftp_builder.py +0 -0
  94. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/webhook/__init__.py +0 -0
  95. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/webhook/webhook_context.py +0 -0
  96. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/webhook/webhook_handlers.py +0 -0
  97. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/src/sapiopycommons/webhook/webservice_handlers.py +0 -0
  98. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/AF-A0A009IHW8-F1-model_v4.cif +0 -0
  99. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/_do_not_add_init_py_here +0 -0
  100. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/accession_test.py +0 -0
  101. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/aliquot_test.py +0 -0
  102. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/bio_reg_test.py +0 -0
  103. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/chem_test.py +0 -0
  104. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/chem_test_curation_queue.py +0 -0
  105. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/curation_queue_test.sdf +0 -0
  106. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/data_type_models.py +0 -0
  107. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/flowcyto/101_DEN084Y5_15_E01_008_clean.fcs +0 -0
  108. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/flowcyto/101_DEN084Y5_15_E03_009_clean.fcs +0 -0
  109. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/flowcyto/101_DEN084Y5_15_E05_010_clean.fcs +0 -0
  110. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/flowcyto/8_color_ICS.wsp +0 -0
  111. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/flowcyto/COVID19_W_001_O.fcs +0 -0
  112. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/flowcyto_test.py +0 -0
  113. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/kappa.chains.fasta +0 -0
  114. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/mafft_test.py +0 -0
  115. {sapiopycommons-2025.7.22a645 → sapiopycommons-2025.7.22a651}/tests/test.gb +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sapiopycommons
3
- Version: 2025.7.22a645
3
+ Version: 2025.7.22a651
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>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sapiopycommons"
7
- version='2025.07.22a645'
7
+ version='2025.07.22a651'
8
8
  authors = [
9
9
  { name="Jonathan Steck", email="jsteck@sapiosciences.com" },
10
10
  { name="Yechen Qiao", email="yqiao@sapiosciences.com" },
@@ -10,7 +10,7 @@ from sapiopycommons.ai.api.plan.tool.proto.entry_pb2 import DataTypePbo, StepBin
10
10
  StepCsvHeaderRowPbo, StepCsvContainerPbo, StepJsonContainerPbo, StepImageContainerPbo, StepTextContainerPbo, \
11
11
  StepItemContainerPbo, StepInputBatchPbo
12
12
  from sapiopycommons.ai.api.plan.tool.proto.tool_pb2 import ProcessStepResponsePbo, ProcessStepRequestPbo, \
13
- ToolDetailsRequestPbo, ToolDetailsResponsePbo
13
+ ToolDetailsRequestPbo, ToolDetailsResponsePbo, ProcessStepResponseStatusPbo
14
14
  from sapiopycommons.ai.api.plan.tool.proto.tool_pb2_grpc import ToolServiceStub
15
15
  from sapiopycommons.ai.api.session.proto.sapio_conn_info_pb2 import SapioConnectionInfoPbo, SapioUserSecretTypePbo
16
16
 
@@ -23,6 +23,9 @@ class ToolOutput:
23
23
  """
24
24
  tool_name: str
25
25
 
26
+ status: str
27
+ message: str
28
+
26
29
  binary_output: list[bytes]
27
30
  csv_output: list[dict[str, Any]]
28
31
  json_output: list[Any]
@@ -45,6 +48,8 @@ class ToolOutput:
45
48
 
46
49
  def __str__(self):
47
50
  ret_val: str = f"{self.tool_name} Output:\n"
51
+ ret_val += f"\tStatus: {self.status}\n"
52
+ ret_val += f"\tMessage: {self.message}\n"
48
53
  ret_val += "-" * 25 + "\n"
49
54
  ret_val += f"Binary Output: {len(self.binary_output)} item(s)\n"
50
55
  for binary in self.binary_output:
@@ -215,12 +220,13 @@ class TestClient:
215
220
  stub = ToolServiceStub(channel)
216
221
  return stub.GetToolDetails(ToolDetailsRequestPbo(sapio_conn_info=self.connection))
217
222
 
218
- def call_tool(self, tool_name: str) -> ToolOutput:
223
+ def call_tool(self, tool_name: str, is_dry_run: bool = False) -> ToolOutput:
219
224
  """
220
225
  Send the request to the tool service for a particular tool name. This will send all the inputs that have been
221
226
  added using the add_X_input functions.
222
227
 
223
228
  :param tool_name: The name of the tool to call on the server.
229
+ :param is_dry_run: If True, the tool will not be executed, but the request will be validated.
224
230
  :return: A ToolOutput object containing the results of the tool service call.
225
231
  """
226
232
  with grpc.insecure_channel(self.grpc_server_url) as channel:
@@ -234,11 +240,21 @@ class TestClient:
234
240
  input=[
235
241
  StepInputBatchPbo(is_partial=False, item_container=item)
236
242
  for item in self._request_inputs
237
- ]
243
+ ],
244
+ dry_run=is_dry_run,
245
+ verbose_logging=True
238
246
  )
239
247
  )
240
248
 
241
249
  results = ToolOutput(tool_name)
250
+ match response.status:
251
+ case ProcessStepResponseStatusPbo.SUCCESS:
252
+ results.status = "Success"
253
+ case ProcessStepResponseStatusPbo.FAILURE:
254
+ results.status = "Failure"
255
+ case _:
256
+ results.status = "Unknown"
257
+ results.message = response.status_message
242
258
  for item in response.output:
243
259
  container = item.item_container
244
260