sapiopycommons 2025.7.21a630__tar.gz → 2025.7.22a637__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.
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/PKG-INFO +1 -1
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/pyproject.toml +1 -1
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/test_client.py +23 -15
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/tool_service_base.py +26 -10
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/.gitignore +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/LICENSE +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/README.md +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2.pyi +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/fielddefinitions/proto/fields_pb2_grpc.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2.pyi +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/fielddefinitions/proto/velox_field_def_pb2_grpc.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/proto/step_output_pb2.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/proto/step_output_pb2.pyi +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/proto/step_output_pb2_grpc.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/proto/step_pb2.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/proto/step_pb2.pyi +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/proto/step_pb2_grpc.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/script/proto/script_pb2.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/script/proto/script_pb2.pyi +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/script/proto/script_pb2_grpc.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/tool/proto/entry_pb2.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/tool/proto/entry_pb2.pyi +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/tool/proto/entry_pb2_grpc.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/tool/proto/tool_pb2.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/tool/proto/tool_pb2.pyi +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/plan/tool/proto/tool_pb2_grpc.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2.pyi +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/api/session/proto/sapio_conn_info_pb2_grpc.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/protobuf_utils.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/callbacks/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/callbacks/callback_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/callbacks/field_builder.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/chem/IndigoMolecules.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/chem/Molecules.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/chem/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/customreport/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/customreport/auto_pagers.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/customreport/column_builder.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/customreport/custom_report_builder.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/customreport/term_builder.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/datatype/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/datatype/attachment_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/datatype/data_fields.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/datatype/pseudo_data_types.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/experiment_cache.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/experiment_handler.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/experiment_report_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/experiment_step_factory.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/experiment_tags.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/plate_designer.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/step_creation.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/complex_data_loader.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/file_bridge.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/file_bridge_handler.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/file_data_handler.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/file_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/file_validator.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/file_writer.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/flowcyto/flow_cyto.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/flowcyto/flowcyto_data.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/accession_service.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/aliases.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/audit_log.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/custom_report_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/data_structure_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/directive_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/exceptions.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/html_formatter.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/popup_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/sapio_links.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/storage_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/time_util.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/multimodal/multimodal.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/multimodal/multimodal_data.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/processtracking/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/processtracking/custom_workflow_handler.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/processtracking/endpoints.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/recordmodel/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/recordmodel/record_handler.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/rules/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/rules/eln_rule_handler.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/rules/on_save_rule_handler.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/samples/aliquot.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/sftpconnect/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/sftpconnect/sftp_builder.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/webhook/__init__.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/webhook/webhook_context.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/webhook/webhook_handlers.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/webhook/webservice_handlers.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/AF-A0A009IHW8-F1-model_v4.cif +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/_do_not_add_init_py_here +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/accession_test.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/aliquot_test.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/bio_reg_test.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/chem_test.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/chem_test_curation_queue.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/curation_queue_test.sdf +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/data_type_models.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/flowcyto/101_DEN084Y5_15_E01_008_clean.fcs +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/flowcyto/101_DEN084Y5_15_E03_009_clean.fcs +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/flowcyto/101_DEN084Y5_15_E05_010_clean.fcs +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/flowcyto/8_color_ICS.wsp +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/flowcyto/COVID19_W_001_O.fcs +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/flowcyto_test.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/kappa.chains.fasta +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/mafft_test.py +0 -0
- {sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/test.gb +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: sapiopycommons
|
|
3
|
-
Version: 2025.7.
|
|
3
|
+
Version: 2025.7.22a637
|
|
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>
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/test_client.py
RENAMED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import base64
|
|
1
2
|
import json
|
|
2
3
|
from typing import Mapping, Any
|
|
3
4
|
|
|
4
5
|
import grpc
|
|
6
|
+
from sapiopylib.rest.User import SapioUser
|
|
5
7
|
|
|
6
8
|
from sapiopycommons.ai.api.fielddefinitions.proto.fields_pb2 import FieldValuePbo
|
|
7
9
|
from sapiopycommons.ai.api.plan.tool.proto.entry_pb2 import DataTypePbo, StepBinaryContainerPbo, StepCsvRowPbo, \
|
|
@@ -77,35 +79,41 @@ class TestClient:
|
|
|
77
79
|
A client for testing a ToolService. This client can be used to send requests to a tool and receive
|
|
78
80
|
responses.
|
|
79
81
|
"""
|
|
80
|
-
|
|
82
|
+
grpc_server_url: str
|
|
81
83
|
connection: SapioConnectionInfoPbo
|
|
82
84
|
_request_inputs: list[Any]
|
|
83
85
|
_config_fields: dict[str, Any]
|
|
84
86
|
|
|
85
|
-
def __init__(self,
|
|
87
|
+
def __init__(self, grpc_server_url: str, user: SapioUser | None = None):
|
|
86
88
|
"""
|
|
87
|
-
:param
|
|
89
|
+
:param grpc_server_url: The URL of the gRPC server to connect to.
|
|
90
|
+
:param user: Optional SapioUser object to use for the connection. If not provided, a default connection
|
|
91
|
+
will be created with test credentials.
|
|
88
92
|
"""
|
|
89
|
-
self.
|
|
90
|
-
self.
|
|
93
|
+
self.grpc_server_url = grpc_server_url
|
|
94
|
+
self._create_connection(user)
|
|
91
95
|
self._request_inputs = []
|
|
92
96
|
self._config_fields = {}
|
|
93
97
|
|
|
94
|
-
def
|
|
98
|
+
def _create_connection(self, user: SapioUser | None = None):
|
|
95
99
|
"""
|
|
96
100
|
Create a SapioConnectionInfoPbo object with test credentials. This method can be overridden to
|
|
97
101
|
create a user with specific credentials for testing.
|
|
98
102
|
"""
|
|
99
103
|
self.connection = SapioConnectionInfoPbo()
|
|
100
|
-
self.connection.username = "Testing"
|
|
101
|
-
self.connection.webservice_url = "https://localhost:8080/webservice/api"
|
|
102
|
-
self.connection.app_guid = "1234567890"
|
|
103
|
-
self.connection.secret_type = SapioUserSecretTypePbo.PASSWORD
|
|
104
|
+
self.connection.username = user.username if user else "Testing"
|
|
105
|
+
self.connection.webservice_url = user.url if user else "https://localhost:8080/webservice/api"
|
|
106
|
+
self.connection.app_guid = user.guid if user else "1234567890"
|
|
104
107
|
self.connection.rmi_host.append("Testing")
|
|
105
108
|
self.connection.rmi_port = 9001
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
if user and user.password:
|
|
110
|
+
self.connection.secret_type = SapioUserSecretTypePbo.PASSWORD
|
|
111
|
+
self.connection.secret = "Basic " + base64.b64encode(f'{user.username}:{user.password}'.encode()).decode()
|
|
112
|
+
else:
|
|
113
|
+
self.connection.secret_type = SapioUserSecretTypePbo.API_TOKEN
|
|
114
|
+
self.connection.secret = user.api_token if user and user.api_token else "test_api_token"
|
|
115
|
+
|
|
116
|
+
def add_binary_input(self, input_data: list[bytes]) -> None:
|
|
109
117
|
"""
|
|
110
118
|
Add a binary input to the the next request.
|
|
111
119
|
"""
|
|
@@ -203,7 +211,7 @@ class TestClient:
|
|
|
203
211
|
|
|
204
212
|
:return: A ToolDetailsResponsePbo object containing the details of the tool service.
|
|
205
213
|
"""
|
|
206
|
-
with grpc.insecure_channel(self.
|
|
214
|
+
with grpc.insecure_channel(self.grpc_server_url) as channel:
|
|
207
215
|
stub = ToolServiceStub(channel)
|
|
208
216
|
return stub.GetToolDetails(ToolDetailsRequestPbo(sapio_conn_info=self.connection))
|
|
209
217
|
|
|
@@ -215,7 +223,7 @@ class TestClient:
|
|
|
215
223
|
:param tool_name: The name of the tool to call on the server.
|
|
216
224
|
:return: A ToolOutput object containing the results of the tool service call.
|
|
217
225
|
"""
|
|
218
|
-
with grpc.insecure_channel(self.
|
|
226
|
+
with grpc.insecure_channel(self.grpc_server_url) as channel:
|
|
219
227
|
stub = ToolServiceStub(channel)
|
|
220
228
|
|
|
221
229
|
response: ProcessStepResponsePbo = stub.ProcessData(
|
|
@@ -278,9 +278,6 @@ class ToolServiceBase(ToolServiceServicer, ABC):
|
|
|
278
278
|
"""
|
|
279
279
|
return: Get instances of the tools registered with this service.
|
|
280
280
|
"""
|
|
281
|
-
# This is complaining about the name and description not being filled from ToolBase,
|
|
282
|
-
# but none of the provided tools should have any init parameters.
|
|
283
|
-
# noinspection PyArgumentList
|
|
284
281
|
tools: list[ToolBase] = [x() for x in self.register_tools()]
|
|
285
282
|
if not tools:
|
|
286
283
|
raise Exception("No tools registered with this service.")
|
|
@@ -348,16 +345,35 @@ class ToolBase(ABC):
|
|
|
348
345
|
request: ProcessStepRequestPbo
|
|
349
346
|
context: ServicerContext
|
|
350
347
|
|
|
351
|
-
|
|
348
|
+
@staticmethod
|
|
349
|
+
@abstractmethod
|
|
350
|
+
def name() -> str:
|
|
351
|
+
"""
|
|
352
|
+
:return: The name of the tool. This should be unique across all tools in the service.
|
|
353
|
+
"""
|
|
354
|
+
pass
|
|
355
|
+
|
|
356
|
+
@staticmethod
|
|
357
|
+
@abstractmethod
|
|
358
|
+
def description() -> str:
|
|
352
359
|
"""
|
|
353
|
-
:
|
|
354
|
-
|
|
355
|
-
|
|
360
|
+
:return: A description of the tool.
|
|
361
|
+
"""
|
|
362
|
+
pass
|
|
363
|
+
|
|
364
|
+
@staticmethod
|
|
365
|
+
@abstractmethod
|
|
366
|
+
def data_type_name() -> str | None:
|
|
367
|
+
"""
|
|
368
|
+
:return: The name of the output data type of this tool, if applicable. When this tool returns
|
|
356
369
|
FieldMapResult objects in its run method, this name will be used to set the data type of the output data.
|
|
357
370
|
"""
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
371
|
+
return None
|
|
372
|
+
|
|
373
|
+
def __init__(self):
|
|
374
|
+
self.name = self.name()
|
|
375
|
+
self.description = self.description()
|
|
376
|
+
self.data_type_name = self.data_type_name()
|
|
361
377
|
self.inputs = []
|
|
362
378
|
self.outputs = []
|
|
363
379
|
self.configs = []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/__init__.py
RENAMED
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/ai/__init__.py
RENAMED
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/chem/Molecules.py
RENAMED
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/chem/__init__.py
RENAMED
|
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
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/eln/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/files/file_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/general/aliases.py
RENAMED
|
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
|
|
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
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/rules/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/samples/aliquot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/src/sapiopycommons/webhook/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/AF-A0A009IHW8-F1-model_v4.cif
RENAMED
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/_do_not_add_init_py_here
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/chem_test_curation_queue.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/flowcyto/8_color_ICS.wsp
RENAMED
|
File without changes
|
{sapiopycommons-2025.7.21a630 → sapiopycommons-2025.7.22a637}/tests/flowcyto/COVID19_W_001_O.fcs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|