sapiopycommons 2025.10.1a772__py3-none-any.whl → 2025.10.9a776__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.

Files changed (47) hide show
  1. sapiopycommons/ai/agent_service_base.py +1114 -0
  2. sapiopycommons/ai/converter_service_base.py +163 -0
  3. sapiopycommons/ai/protoapi/externalcredentials/external_credentials_pb2.py +41 -0
  4. sapiopycommons/ai/protoapi/externalcredentials/external_credentials_pb2.pyi +35 -0
  5. sapiopycommons/ai/protoapi/externalcredentials/external_credentials_pb2_grpc.py +24 -0
  6. sapiopycommons/ai/protoapi/fielddefinitions/fields_pb2.py +43 -0
  7. sapiopycommons/ai/protoapi/fielddefinitions/fields_pb2.pyi +31 -0
  8. sapiopycommons/ai/protoapi/fielddefinitions/fields_pb2_grpc.py +24 -0
  9. sapiopycommons/ai/protoapi/fielddefinitions/velox_field_def_pb2.py +123 -0
  10. sapiopycommons/ai/protoapi/fielddefinitions/velox_field_def_pb2.pyi +598 -0
  11. sapiopycommons/ai/protoapi/fielddefinitions/velox_field_def_pb2_grpc.py +24 -0
  12. sapiopycommons/ai/protoapi/plan/converter/converter_pb2.py +51 -0
  13. sapiopycommons/ai/protoapi/plan/converter/converter_pb2.pyi +63 -0
  14. sapiopycommons/ai/protoapi/plan/converter/converter_pb2_grpc.py +149 -0
  15. sapiopycommons/ai/protoapi/plan/item/item_container_pb2.py +55 -0
  16. sapiopycommons/ai/protoapi/plan/item/item_container_pb2.pyi +90 -0
  17. sapiopycommons/ai/protoapi/plan/item/item_container_pb2_grpc.py +24 -0
  18. sapiopycommons/ai/protoapi/plan/script/script_pb2.py +61 -0
  19. sapiopycommons/ai/protoapi/plan/script/script_pb2.pyi +108 -0
  20. sapiopycommons/ai/protoapi/plan/script/script_pb2_grpc.py +153 -0
  21. sapiopycommons/ai/protoapi/plan/step_output_pb2.py +45 -0
  22. sapiopycommons/ai/protoapi/plan/step_output_pb2.pyi +42 -0
  23. sapiopycommons/ai/protoapi/plan/step_output_pb2_grpc.py +24 -0
  24. sapiopycommons/ai/protoapi/plan/step_pb2.py +43 -0
  25. sapiopycommons/ai/protoapi/plan/step_pb2.pyi +43 -0
  26. sapiopycommons/ai/protoapi/plan/step_pb2_grpc.py +24 -0
  27. sapiopycommons/ai/protoapi/plan/tool/entry_pb2.py +41 -0
  28. sapiopycommons/ai/protoapi/plan/tool/entry_pb2.pyi +35 -0
  29. sapiopycommons/ai/protoapi/plan/tool/entry_pb2_grpc.py +24 -0
  30. sapiopycommons/ai/protoapi/plan/tool/tool_pb2.py +79 -0
  31. sapiopycommons/ai/protoapi/plan/tool/tool_pb2.pyi +261 -0
  32. sapiopycommons/ai/protoapi/plan/tool/tool_pb2_grpc.py +154 -0
  33. sapiopycommons/ai/protoapi/session/sapio_conn_info_pb2.py +39 -0
  34. sapiopycommons/ai/protoapi/session/sapio_conn_info_pb2.pyi +32 -0
  35. sapiopycommons/ai/protoapi/session/sapio_conn_info_pb2_grpc.py +24 -0
  36. sapiopycommons/ai/protobuf_utils.py +504 -0
  37. sapiopycommons/ai/request_validation.py +470 -0
  38. sapiopycommons/ai/server.py +152 -0
  39. sapiopycommons/ai/test_client.py +370 -0
  40. sapiopycommons/files/file_util.py +128 -1
  41. sapiopycommons/files/temp_files.py +82 -0
  42. sapiopycommons/webhook/webservice_handlers.py +1 -1
  43. {sapiopycommons-2025.10.1a772.dist-info → sapiopycommons-2025.10.9a776.dist-info}/METADATA +1 -1
  44. {sapiopycommons-2025.10.1a772.dist-info → sapiopycommons-2025.10.9a776.dist-info}/RECORD +46 -7
  45. sapiopycommons/ai/tool_of_tools.py +0 -917
  46. {sapiopycommons-2025.10.1a772.dist-info → sapiopycommons-2025.10.9a776.dist-info}/WHEEL +0 -0
  47. {sapiopycommons-2025.10.1a772.dist-info → sapiopycommons-2025.10.9a776.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,261 @@
1
+ from sapiopycommons.ai.protoapi.externalcredentials import external_credentials_pb2 as _external_credentials_pb2
2
+ from sapiopycommons.ai.protoapi.fielddefinitions import fields_pb2 as _fields_pb2
3
+ from sapiopycommons.ai.protoapi.fielddefinitions import velox_field_def_pb2 as _velox_field_def_pb2
4
+ from sapiopycommons.ai.protoapi.plan.tool import entry_pb2 as _entry_pb2
5
+ from sapiopycommons.ai.protoapi.plan.item import item_container_pb2 as _item_container_pb2
6
+ from sapiopycommons.ai.protoapi.plan import step_pb2 as _step_pb2
7
+ from sapiopycommons.ai.protoapi.session import sapio_conn_info_pb2 as _sapio_conn_info_pb2
8
+ from google.protobuf.internal import containers as _containers
9
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
10
+ from google.protobuf import descriptor as _descriptor
11
+ from google.protobuf import message as _message
12
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
13
+ from sapiopycommons.ai.protoapi.externalcredentials.external_credentials_pb2 import ExternalCredentialsPbo as ExternalCredentialsPbo
14
+ from sapiopycommons.ai.protoapi.fielddefinitions.fields_pb2 import FieldValuePbo as FieldValuePbo
15
+ from sapiopycommons.ai.protoapi.fielddefinitions.fields_pb2 import FieldValueMapPbo as FieldValueMapPbo
16
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import FieldValidatorPbo as FieldValidatorPbo
17
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import ColorRangePbo as ColorRangePbo
18
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import BooleanDependentFieldEntryPbo as BooleanDependentFieldEntryPbo
19
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import SelectionDependentFieldEntryPbo as SelectionDependentFieldEntryPbo
20
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import EnumDependentFieldEntryPbo as EnumDependentFieldEntryPbo
21
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import ProcessDetailEntryPbo as ProcessDetailEntryPbo
22
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import BooleanPropertiesPbo as BooleanPropertiesPbo
23
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import DatePropertiesPbo as DatePropertiesPbo
24
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import DoublePropertiesPbo as DoublePropertiesPbo
25
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import IntegerPropertiesPbo as IntegerPropertiesPbo
26
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import LongPropertiesPbo as LongPropertiesPbo
27
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import ShortPropertiesPbo as ShortPropertiesPbo
28
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import SelectionPropertiesPbo as SelectionPropertiesPbo
29
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import StringPropertiesPbo as StringPropertiesPbo
30
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import SideLinkPropertiesPbo as SideLinkPropertiesPbo
31
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import PickListPropertiesPbo as PickListPropertiesPbo
32
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import ParentLinkPropertiesPbo as ParentLinkPropertiesPbo
33
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import MultiParentPropertiesPbo as MultiParentPropertiesPbo
34
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import IdentifierPropertiesPbo as IdentifierPropertiesPbo
35
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import FileBlobPropertiesPbo as FileBlobPropertiesPbo
36
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import EnumPropertiesPbo as EnumPropertiesPbo
37
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import DateRangePropertiesPbo as DateRangePropertiesPbo
38
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import ChildLinkPropertiesPbo as ChildLinkPropertiesPbo
39
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import ActionStringPropertiesPbo as ActionStringPropertiesPbo
40
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import ActionPropertiesPbo as ActionPropertiesPbo
41
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import AccessionPropertiesPbo as AccessionPropertiesPbo
42
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import VeloxFieldDefPbo as VeloxFieldDefPbo
43
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import VeloxFieldDefListPbo as VeloxFieldDefListPbo
44
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import FieldTypePbo as FieldTypePbo
45
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import SortDirectionPbo as SortDirectionPbo
46
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import FontSizePbo as FontSizePbo
47
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import TextDecorationPbo as TextDecorationPbo
48
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import StringFormatPbo as StringFormatPbo
49
+ from sapiopycommons.ai.protoapi.fielddefinitions.velox_field_def_pb2 import DoubleFormatPbo as DoubleFormatPbo
50
+ from sapiopycommons.ai.protoapi.plan.tool.entry_pb2 import StepInputBatchPbo as StepInputBatchPbo
51
+ from sapiopycommons.ai.protoapi.plan.tool.entry_pb2 import StepOutputBatchPbo as StepOutputBatchPbo
52
+ from sapiopycommons.ai.protoapi.plan.step_pb2 import StepIoInfoPbo as StepIoInfoPbo
53
+ from sapiopycommons.ai.protoapi.plan.step_pb2 import StepIoDetailsPbo as StepIoDetailsPbo
54
+ from sapiopycommons.ai.protoapi.plan.step_pb2 import StepInputDetailsPbo as StepInputDetailsPbo
55
+ from sapiopycommons.ai.protoapi.plan.step_pb2 import StepOutputDetailsPbo as StepOutputDetailsPbo
56
+ from sapiopycommons.ai.protoapi.session.sapio_conn_info_pb2 import SapioConnectionInfoPbo as SapioConnectionInfoPbo
57
+ from sapiopycommons.ai.protoapi.session.sapio_conn_info_pb2 import SapioUserSecretTypePbo as SapioUserSecretTypePbo
58
+
59
+ DESCRIPTOR: _descriptor.FileDescriptor
60
+ FIELD_TYPE_UNSPECIFIED: _velox_field_def_pb2.FieldTypePbo
61
+ BOOLEAN: _velox_field_def_pb2.FieldTypePbo
62
+ DOUBLE: _velox_field_def_pb2.FieldTypePbo
63
+ ENUM: _velox_field_def_pb2.FieldTypePbo
64
+ LONG: _velox_field_def_pb2.FieldTypePbo
65
+ INTEGER: _velox_field_def_pb2.FieldTypePbo
66
+ SHORT: _velox_field_def_pb2.FieldTypePbo
67
+ STRING: _velox_field_def_pb2.FieldTypePbo
68
+ DATE: _velox_field_def_pb2.FieldTypePbo
69
+ ACTION: _velox_field_def_pb2.FieldTypePbo
70
+ SELECTION: _velox_field_def_pb2.FieldTypePbo
71
+ PARENTLINK: _velox_field_def_pb2.FieldTypePbo
72
+ IDENTIFIER: _velox_field_def_pb2.FieldTypePbo
73
+ PICKLIST: _velox_field_def_pb2.FieldTypePbo
74
+ LINK: _velox_field_def_pb2.FieldTypePbo
75
+ MULTIPARENTLINK: _velox_field_def_pb2.FieldTypePbo
76
+ CHILDLINK: _velox_field_def_pb2.FieldTypePbo
77
+ AUTO_ACCESSION: _velox_field_def_pb2.FieldTypePbo
78
+ DATE_RANGE: _velox_field_def_pb2.FieldTypePbo
79
+ SIDE_LINK: _velox_field_def_pb2.FieldTypePbo
80
+ ACTION_STRING: _velox_field_def_pb2.FieldTypePbo
81
+ FILE_BLOB: _velox_field_def_pb2.FieldTypePbo
82
+ SORT_DIRECTION_UNSPECIFIED: _velox_field_def_pb2.SortDirectionPbo
83
+ SORT_DIRECTION_ASCENDING: _velox_field_def_pb2.SortDirectionPbo
84
+ SORT_DIRECTION_DESCENDING: _velox_field_def_pb2.SortDirectionPbo
85
+ SORT_DIRECTION_NONE: _velox_field_def_pb2.SortDirectionPbo
86
+ FONT_SIZE_UNSPECIFIED: _velox_field_def_pb2.FontSizePbo
87
+ FONT_SIZE_SMALL: _velox_field_def_pb2.FontSizePbo
88
+ FONT_SIZE_MEDIUM: _velox_field_def_pb2.FontSizePbo
89
+ FONT_SIZE_LARGE: _velox_field_def_pb2.FontSizePbo
90
+ TEXT_DECORATION_UNSPECIFIED: _velox_field_def_pb2.TextDecorationPbo
91
+ TEXT_DECORATION_NONE: _velox_field_def_pb2.TextDecorationPbo
92
+ TEXT_DECORATION_UNDERLINE: _velox_field_def_pb2.TextDecorationPbo
93
+ TEXT_DECORATION_STRIKETHROUGH: _velox_field_def_pb2.TextDecorationPbo
94
+ STRING_FORMAT_UNSPECIFIED: _velox_field_def_pb2.StringFormatPbo
95
+ STRING_FORMAT_PHONE: _velox_field_def_pb2.StringFormatPbo
96
+ STRING_FORMAT_EMAIL: _velox_field_def_pb2.StringFormatPbo
97
+ DOUBLE_FORMAT_UNSPECIFIED: _velox_field_def_pb2.DoubleFormatPbo
98
+ DOUBLE_FORMAT_CURRENCY: _velox_field_def_pb2.DoubleFormatPbo
99
+ DOUBLE_FORMAT_PERCENTAGE: _velox_field_def_pb2.DoubleFormatPbo
100
+ SESSION_TOKEN: _sapio_conn_info_pb2.SapioUserSecretTypePbo
101
+ PASSWORD: _sapio_conn_info_pb2.SapioUserSecretTypePbo
102
+
103
+ class ProcessStepResponseStatusPbo(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
104
+ __slots__ = ()
105
+ UNKNOWN: _ClassVar[ProcessStepResponseStatusPbo]
106
+ SUCCESS: _ClassVar[ProcessStepResponseStatusPbo]
107
+ FAILURE: _ClassVar[ProcessStepResponseStatusPbo]
108
+ UNKNOWN: ProcessStepResponseStatusPbo
109
+ SUCCESS: ProcessStepResponseStatusPbo
110
+ FAILURE: ProcessStepResponseStatusPbo
111
+
112
+ class ExampleContainerPbo(_message.Message):
113
+ __slots__ = ("text_example", "binary_example")
114
+ TEXT_EXAMPLE_FIELD_NUMBER: _ClassVar[int]
115
+ BINARY_EXAMPLE_FIELD_NUMBER: _ClassVar[int]
116
+ text_example: str
117
+ binary_example: bytes
118
+ def __init__(self, text_example: _Optional[str] = ..., binary_example: _Optional[bytes] = ...) -> None: ...
119
+
120
+ class ToolIoConfigBasePbo(_message.Message):
121
+ __slots__ = ("content_type", "io_number", "display_name", "description", "deprecated_old_example", "structure_example", "testing_example")
122
+ CONTENT_TYPE_FIELD_NUMBER: _ClassVar[int]
123
+ IO_NUMBER_FIELD_NUMBER: _ClassVar[int]
124
+ DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
125
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
126
+ DEPRECATED_OLD_EXAMPLE_FIELD_NUMBER: _ClassVar[int]
127
+ STRUCTURE_EXAMPLE_FIELD_NUMBER: _ClassVar[int]
128
+ TESTING_EXAMPLE_FIELD_NUMBER: _ClassVar[int]
129
+ content_type: str
130
+ io_number: int
131
+ display_name: str
132
+ description: str
133
+ deprecated_old_example: str
134
+ structure_example: ExampleContainerPbo
135
+ testing_example: ExampleContainerPbo
136
+ def __init__(self, content_type: _Optional[str] = ..., io_number: _Optional[int] = ..., display_name: _Optional[str] = ..., description: _Optional[str] = ..., deprecated_old_example: _Optional[str] = ..., structure_example: _Optional[_Union[ExampleContainerPbo, _Mapping]] = ..., testing_example: _Optional[_Union[ExampleContainerPbo, _Mapping]] = ...) -> None: ...
137
+
138
+ class ToolInputDetailsPbo(_message.Message):
139
+ __slots__ = ("base_config", "validation", "min_input_count", "max_input_count", "paged", "min_page_size", "max_page_size", "max_request_bytes")
140
+ BASE_CONFIG_FIELD_NUMBER: _ClassVar[int]
141
+ VALIDATION_FIELD_NUMBER: _ClassVar[int]
142
+ MIN_INPUT_COUNT_FIELD_NUMBER: _ClassVar[int]
143
+ MAX_INPUT_COUNT_FIELD_NUMBER: _ClassVar[int]
144
+ PAGED_FIELD_NUMBER: _ClassVar[int]
145
+ MIN_PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
146
+ MAX_PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
147
+ MAX_REQUEST_BYTES_FIELD_NUMBER: _ClassVar[int]
148
+ base_config: ToolIoConfigBasePbo
149
+ validation: str
150
+ min_input_count: int
151
+ max_input_count: int
152
+ paged: bool
153
+ min_page_size: int
154
+ max_page_size: int
155
+ max_request_bytes: int
156
+ def __init__(self, base_config: _Optional[_Union[ToolIoConfigBasePbo, _Mapping]] = ..., validation: _Optional[str] = ..., min_input_count: _Optional[int] = ..., max_input_count: _Optional[int] = ..., paged: bool = ..., min_page_size: _Optional[int] = ..., max_page_size: _Optional[int] = ..., max_request_bytes: _Optional[int] = ...) -> None: ...
157
+
158
+ class ToolOutputDetailsPbo(_message.Message):
159
+ __slots__ = ("base_config",)
160
+ BASE_CONFIG_FIELD_NUMBER: _ClassVar[int]
161
+ base_config: ToolIoConfigBasePbo
162
+ def __init__(self, base_config: _Optional[_Union[ToolIoConfigBasePbo, _Mapping]] = ...) -> None: ...
163
+
164
+ class ProcessStepRequestPbo(_message.Message):
165
+ __slots__ = ("sapio_user", "tool_name", "plan_instance_id", "step_instance_id", "invocation_id", "input_configs", "output_configs", "config_field_values", "dry_run", "verbose_logging", "external_credential", "input")
166
+ class ConfigFieldValuesEntry(_message.Message):
167
+ __slots__ = ("key", "value")
168
+ KEY_FIELD_NUMBER: _ClassVar[int]
169
+ VALUE_FIELD_NUMBER: _ClassVar[int]
170
+ key: str
171
+ value: _fields_pb2.FieldValuePbo
172
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_fields_pb2.FieldValuePbo, _Mapping]] = ...) -> None: ...
173
+ SAPIO_USER_FIELD_NUMBER: _ClassVar[int]
174
+ TOOL_NAME_FIELD_NUMBER: _ClassVar[int]
175
+ PLAN_INSTANCE_ID_FIELD_NUMBER: _ClassVar[int]
176
+ STEP_INSTANCE_ID_FIELD_NUMBER: _ClassVar[int]
177
+ INVOCATION_ID_FIELD_NUMBER: _ClassVar[int]
178
+ INPUT_CONFIGS_FIELD_NUMBER: _ClassVar[int]
179
+ OUTPUT_CONFIGS_FIELD_NUMBER: _ClassVar[int]
180
+ CONFIG_FIELD_VALUES_FIELD_NUMBER: _ClassVar[int]
181
+ DRY_RUN_FIELD_NUMBER: _ClassVar[int]
182
+ VERBOSE_LOGGING_FIELD_NUMBER: _ClassVar[int]
183
+ EXTERNAL_CREDENTIAL_FIELD_NUMBER: _ClassVar[int]
184
+ INPUT_FIELD_NUMBER: _ClassVar[int]
185
+ sapio_user: _sapio_conn_info_pb2.SapioConnectionInfoPbo
186
+ tool_name: str
187
+ plan_instance_id: int
188
+ step_instance_id: int
189
+ invocation_id: int
190
+ input_configs: _containers.RepeatedCompositeFieldContainer[_step_pb2.StepIoInfoPbo]
191
+ output_configs: _containers.RepeatedCompositeFieldContainer[_step_pb2.StepIoInfoPbo]
192
+ config_field_values: _containers.MessageMap[str, _fields_pb2.FieldValuePbo]
193
+ dry_run: bool
194
+ verbose_logging: bool
195
+ external_credential: _containers.RepeatedCompositeFieldContainer[_external_credentials_pb2.ExternalCredentialsPbo]
196
+ input: _containers.RepeatedCompositeFieldContainer[_entry_pb2.StepInputBatchPbo]
197
+ def __init__(self, sapio_user: _Optional[_Union[_sapio_conn_info_pb2.SapioConnectionInfoPbo, _Mapping]] = ..., tool_name: _Optional[str] = ..., plan_instance_id: _Optional[int] = ..., step_instance_id: _Optional[int] = ..., invocation_id: _Optional[int] = ..., input_configs: _Optional[_Iterable[_Union[_step_pb2.StepIoInfoPbo, _Mapping]]] = ..., output_configs: _Optional[_Iterable[_Union[_step_pb2.StepIoInfoPbo, _Mapping]]] = ..., config_field_values: _Optional[_Mapping[str, _fields_pb2.FieldValuePbo]] = ..., dry_run: bool = ..., verbose_logging: bool = ..., external_credential: _Optional[_Iterable[_Union[_external_credentials_pb2.ExternalCredentialsPbo, _Mapping]]] = ..., input: _Optional[_Iterable[_Union[_entry_pb2.StepInputBatchPbo, _Mapping]]] = ...) -> None: ...
198
+
199
+ class ProcessStepResponsePbo(_message.Message):
200
+ __slots__ = ("status", "status_message", "step_summary", "new_records", "log", "output")
201
+ STATUS_FIELD_NUMBER: _ClassVar[int]
202
+ STATUS_MESSAGE_FIELD_NUMBER: _ClassVar[int]
203
+ STEP_SUMMARY_FIELD_NUMBER: _ClassVar[int]
204
+ NEW_RECORDS_FIELD_NUMBER: _ClassVar[int]
205
+ LOG_FIELD_NUMBER: _ClassVar[int]
206
+ OUTPUT_FIELD_NUMBER: _ClassVar[int]
207
+ status: ProcessStepResponseStatusPbo
208
+ status_message: str
209
+ step_summary: str
210
+ new_records: _containers.RepeatedCompositeFieldContainer[_fields_pb2.FieldValueMapPbo]
211
+ log: _containers.RepeatedScalarFieldContainer[str]
212
+ output: _containers.RepeatedCompositeFieldContainer[_entry_pb2.StepOutputBatchPbo]
213
+ def __init__(self, status: _Optional[_Union[ProcessStepResponseStatusPbo, str]] = ..., status_message: _Optional[str] = ..., step_summary: _Optional[str] = ..., new_records: _Optional[_Iterable[_Union[_fields_pb2.FieldValueMapPbo, _Mapping]]] = ..., log: _Optional[_Iterable[str]] = ..., output: _Optional[_Iterable[_Union[_entry_pb2.StepOutputBatchPbo, _Mapping]]] = ...) -> None: ...
214
+
215
+ class ToolDetailsRequestPbo(_message.Message):
216
+ __slots__ = ("sapio_conn_info",)
217
+ SAPIO_CONN_INFO_FIELD_NUMBER: _ClassVar[int]
218
+ sapio_conn_info: _sapio_conn_info_pb2.SapioConnectionInfoPbo
219
+ def __init__(self, sapio_conn_info: _Optional[_Union[_sapio_conn_info_pb2.SapioConnectionInfoPbo, _Mapping]] = ...) -> None: ...
220
+
221
+ class ToolDetailsPbo(_message.Message):
222
+ __slots__ = ("import_id", "name", "description", "output_data_type_name", "input_configs", "output_configs", "config_fields", "license_info", "category", "citation", "review_on_instance_field_names")
223
+ IMPORT_ID_FIELD_NUMBER: _ClassVar[int]
224
+ NAME_FIELD_NUMBER: _ClassVar[int]
225
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
226
+ OUTPUT_DATA_TYPE_NAME_FIELD_NUMBER: _ClassVar[int]
227
+ INPUT_CONFIGS_FIELD_NUMBER: _ClassVar[int]
228
+ OUTPUT_CONFIGS_FIELD_NUMBER: _ClassVar[int]
229
+ CONFIG_FIELDS_FIELD_NUMBER: _ClassVar[int]
230
+ LICENSE_INFO_FIELD_NUMBER: _ClassVar[int]
231
+ CATEGORY_FIELD_NUMBER: _ClassVar[int]
232
+ CITATION_FIELD_NUMBER: _ClassVar[int]
233
+ REVIEW_ON_INSTANCE_FIELD_NAMES_FIELD_NUMBER: _ClassVar[int]
234
+ import_id: str
235
+ name: str
236
+ description: str
237
+ output_data_type_name: str
238
+ input_configs: _containers.RepeatedCompositeFieldContainer[ToolInputDetailsPbo]
239
+ output_configs: _containers.RepeatedCompositeFieldContainer[ToolOutputDetailsPbo]
240
+ config_fields: _containers.RepeatedCompositeFieldContainer[_velox_field_def_pb2.VeloxFieldDefPbo]
241
+ license_info: str
242
+ category: str
243
+ citation: _containers.RepeatedCompositeFieldContainer[ToolCitationPbo]
244
+ review_on_instance_field_names: _containers.RepeatedScalarFieldContainer[str]
245
+ def __init__(self, import_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., output_data_type_name: _Optional[str] = ..., input_configs: _Optional[_Iterable[_Union[ToolInputDetailsPbo, _Mapping]]] = ..., output_configs: _Optional[_Iterable[_Union[ToolOutputDetailsPbo, _Mapping]]] = ..., config_fields: _Optional[_Iterable[_Union[_velox_field_def_pb2.VeloxFieldDefPbo, _Mapping]]] = ..., license_info: _Optional[str] = ..., category: _Optional[str] = ..., citation: _Optional[_Iterable[_Union[ToolCitationPbo, _Mapping]]] = ..., review_on_instance_field_names: _Optional[_Iterable[str]] = ...) -> None: ...
246
+
247
+ class ToolCitationPbo(_message.Message):
248
+ __slots__ = ("title", "url")
249
+ TITLE_FIELD_NUMBER: _ClassVar[int]
250
+ URL_FIELD_NUMBER: _ClassVar[int]
251
+ title: str
252
+ url: str
253
+ def __init__(self, title: _Optional[str] = ..., url: _Optional[str] = ...) -> None: ...
254
+
255
+ class ToolDetailsResponsePbo(_message.Message):
256
+ __slots__ = ("tool_framework_version", "tool_details")
257
+ TOOL_FRAMEWORK_VERSION_FIELD_NUMBER: _ClassVar[int]
258
+ TOOL_DETAILS_FIELD_NUMBER: _ClassVar[int]
259
+ tool_framework_version: int
260
+ tool_details: _containers.RepeatedCompositeFieldContainer[ToolDetailsPbo]
261
+ def __init__(self, tool_framework_version: _Optional[int] = ..., tool_details: _Optional[_Iterable[_Union[ToolDetailsPbo, _Mapping]]] = ...) -> None: ...
@@ -0,0 +1,154 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+ import warnings
5
+
6
+ from sapiopycommons.ai.protoapi.plan.tool import tool_pb2 as sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2
7
+
8
+ GRPC_GENERATED_VERSION = '1.70.0'
9
+ GRPC_VERSION = grpc.__version__
10
+ _version_not_supported = False
11
+
12
+ try:
13
+ from grpc._utilities import first_version_is_lower
14
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
15
+ except ImportError:
16
+ _version_not_supported = True
17
+
18
+ if _version_not_supported:
19
+ raise RuntimeError(
20
+ f'The grpc package installed is at version {GRPC_VERSION},'
21
+ + f' but the generated code in sapiopycommons/ai/protoapi/plan/tool/tool_pb2_grpc.py depends on'
22
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
23
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
24
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
25
+ )
26
+
27
+
28
+ class ToolServiceStub(object):
29
+ """
30
+ This is the generic service interface that all tools must implement. We will use hostname routing to route the request to the correct tool.
31
+ The other option is for us to use gRPC metadata to route the request to the correct tool. We don't want to expose a bunch of ports and that's
32
+ a pain to manage. So we will use hostname routing for now.
33
+ """
34
+
35
+ def __init__(self, channel):
36
+ """Constructor.
37
+
38
+ Args:
39
+ channel: A grpc.Channel.
40
+ """
41
+ self.GetToolDetails = channel.unary_unary(
42
+ '/ToolService/GetToolDetails',
43
+ request_serializer=sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ToolDetailsRequestPbo.SerializeToString,
44
+ response_deserializer=sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ToolDetailsResponsePbo.FromString,
45
+ _registered_method=True)
46
+ self.ProcessData = channel.unary_unary(
47
+ '/ToolService/ProcessData',
48
+ request_serializer=sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ProcessStepRequestPbo.SerializeToString,
49
+ response_deserializer=sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ProcessStepResponsePbo.FromString,
50
+ _registered_method=True)
51
+
52
+
53
+ class ToolServiceServicer(object):
54
+ """
55
+ This is the generic service interface that all tools must implement. We will use hostname routing to route the request to the correct tool.
56
+ The other option is for us to use gRPC metadata to route the request to the correct tool. We don't want to expose a bunch of ports and that's
57
+ a pain to manage. So we will use hostname routing for now.
58
+ """
59
+
60
+ def GetToolDetails(self, request, context):
61
+ """This allows for a tool to self-describe itself, which allows for the UI to be automatically populated with this information
62
+ """
63
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
64
+ context.set_details('Method not implemented!')
65
+ raise NotImplementedError('Method not implemented!')
66
+
67
+ def ProcessData(self, request, context):
68
+ """This is the main entry point for a tool to be called
69
+ """
70
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
71
+ context.set_details('Method not implemented!')
72
+ raise NotImplementedError('Method not implemented!')
73
+
74
+
75
+ def add_ToolServiceServicer_to_server(servicer, server):
76
+ rpc_method_handlers = {
77
+ 'GetToolDetails': grpc.unary_unary_rpc_method_handler(
78
+ servicer.GetToolDetails,
79
+ request_deserializer=sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ToolDetailsRequestPbo.FromString,
80
+ response_serializer=sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ToolDetailsResponsePbo.SerializeToString,
81
+ ),
82
+ 'ProcessData': grpc.unary_unary_rpc_method_handler(
83
+ servicer.ProcessData,
84
+ request_deserializer=sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ProcessStepRequestPbo.FromString,
85
+ response_serializer=sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ProcessStepResponsePbo.SerializeToString,
86
+ ),
87
+ }
88
+ generic_handler = grpc.method_handlers_generic_handler(
89
+ 'ToolService', rpc_method_handlers)
90
+ server.add_generic_rpc_handlers((generic_handler,))
91
+ server.add_registered_method_handlers('ToolService', rpc_method_handlers)
92
+
93
+
94
+ # This class is part of an EXPERIMENTAL API.
95
+ class ToolService(object):
96
+ """
97
+ This is the generic service interface that all tools must implement. We will use hostname routing to route the request to the correct tool.
98
+ The other option is for us to use gRPC metadata to route the request to the correct tool. We don't want to expose a bunch of ports and that's
99
+ a pain to manage. So we will use hostname routing for now.
100
+ """
101
+
102
+ @staticmethod
103
+ def GetToolDetails(request,
104
+ target,
105
+ options=(),
106
+ channel_credentials=None,
107
+ call_credentials=None,
108
+ insecure=False,
109
+ compression=None,
110
+ wait_for_ready=None,
111
+ timeout=None,
112
+ metadata=None):
113
+ return grpc.experimental.unary_unary(
114
+ request,
115
+ target,
116
+ '/ToolService/GetToolDetails',
117
+ sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ToolDetailsRequestPbo.SerializeToString,
118
+ sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ToolDetailsResponsePbo.FromString,
119
+ options,
120
+ channel_credentials,
121
+ insecure,
122
+ call_credentials,
123
+ compression,
124
+ wait_for_ready,
125
+ timeout,
126
+ metadata,
127
+ _registered_method=True)
128
+
129
+ @staticmethod
130
+ def ProcessData(request,
131
+ target,
132
+ options=(),
133
+ channel_credentials=None,
134
+ call_credentials=None,
135
+ insecure=False,
136
+ compression=None,
137
+ wait_for_ready=None,
138
+ timeout=None,
139
+ metadata=None):
140
+ return grpc.experimental.unary_unary(
141
+ request,
142
+ target,
143
+ '/ToolService/ProcessData',
144
+ sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ProcessStepRequestPbo.SerializeToString,
145
+ sapiopycommons_dot_ai_dot_protoapi_dot_plan_dot_tool_dot_tool__pb2.ProcessStepResponsePbo.FromString,
146
+ options,
147
+ channel_credentials,
148
+ insecure,
149
+ call_credentials,
150
+ compression,
151
+ wait_for_ready,
152
+ timeout,
153
+ metadata,
154
+ _registered_method=True)
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: sapiopycommons/ai/protoapi/session/sapio_conn_info.proto
5
+ # Protobuf Python Version: 5.29.0
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 29,
16
+ 0,
17
+ '',
18
+ 'sapiopycommons/ai/protoapi/session/sapio_conn_info.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n8sapiopycommons/ai/protoapi/session/sapio_conn_info.proto\"\xb6\x01\n\x16SapioConnectionInfoPbo\x12\x16\n\x0ewebservice_url\x18\x01 \x01(\t\x12\x10\n\x08rmi_host\x18\x02 \x03(\t\x12\x10\n\x08rmi_port\x18\x03 \x01(\x05\x12\x10\n\x08\x61pp_guid\x18\x04 \x01(\t\x12\x10\n\x08username\x18\x05 \x01(\t\x12,\n\x0bsecret_type\x18\x06 \x01(\x0e\x32\x17.SapioUserSecretTypePbo\x12\x0e\n\x06secret\x18\x07 \x01(\t*9\n\x16SapioUserSecretTypePbo\x12\x11\n\rSESSION_TOKEN\x10\x00\x12\x0c\n\x08PASSWORD\x10\x01\x42\x1e\n\x1a\x63om.velox.protoapi.sessionP\x01\x62\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sapiopycommons.ai.protoapi.session.sapio_conn_info_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ _globals['DESCRIPTOR']._loaded_options = None
34
+ _globals['DESCRIPTOR']._serialized_options = b'\n\032com.velox.protoapi.sessionP\001'
35
+ _globals['_SAPIOUSERSECRETTYPEPBO']._serialized_start=245
36
+ _globals['_SAPIOUSERSECRETTYPEPBO']._serialized_end=302
37
+ _globals['_SAPIOCONNECTIONINFOPBO']._serialized_start=61
38
+ _globals['_SAPIOCONNECTIONINFOPBO']._serialized_end=243
39
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,32 @@
1
+ from google.protobuf.internal import containers as _containers
2
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
3
+ from google.protobuf import descriptor as _descriptor
4
+ from google.protobuf import message as _message
5
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Optional as _Optional, Union as _Union
6
+
7
+ DESCRIPTOR: _descriptor.FileDescriptor
8
+
9
+ class SapioUserSecretTypePbo(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
10
+ __slots__ = ()
11
+ SESSION_TOKEN: _ClassVar[SapioUserSecretTypePbo]
12
+ PASSWORD: _ClassVar[SapioUserSecretTypePbo]
13
+ SESSION_TOKEN: SapioUserSecretTypePbo
14
+ PASSWORD: SapioUserSecretTypePbo
15
+
16
+ class SapioConnectionInfoPbo(_message.Message):
17
+ __slots__ = ("webservice_url", "rmi_host", "rmi_port", "app_guid", "username", "secret_type", "secret")
18
+ WEBSERVICE_URL_FIELD_NUMBER: _ClassVar[int]
19
+ RMI_HOST_FIELD_NUMBER: _ClassVar[int]
20
+ RMI_PORT_FIELD_NUMBER: _ClassVar[int]
21
+ APP_GUID_FIELD_NUMBER: _ClassVar[int]
22
+ USERNAME_FIELD_NUMBER: _ClassVar[int]
23
+ SECRET_TYPE_FIELD_NUMBER: _ClassVar[int]
24
+ SECRET_FIELD_NUMBER: _ClassVar[int]
25
+ webservice_url: str
26
+ rmi_host: _containers.RepeatedScalarFieldContainer[str]
27
+ rmi_port: int
28
+ app_guid: str
29
+ username: str
30
+ secret_type: SapioUserSecretTypePbo
31
+ secret: str
32
+ def __init__(self, webservice_url: _Optional[str] = ..., rmi_host: _Optional[_Iterable[str]] = ..., rmi_port: _Optional[int] = ..., app_guid: _Optional[str] = ..., username: _Optional[str] = ..., secret_type: _Optional[_Union[SapioUserSecretTypePbo, str]] = ..., secret: _Optional[str] = ...) -> None: ...
@@ -0,0 +1,24 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+ import warnings
5
+
6
+
7
+ GRPC_GENERATED_VERSION = '1.70.0'
8
+ GRPC_VERSION = grpc.__version__
9
+ _version_not_supported = False
10
+
11
+ try:
12
+ from grpc._utilities import first_version_is_lower
13
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
14
+ except ImportError:
15
+ _version_not_supported = True
16
+
17
+ if _version_not_supported:
18
+ raise RuntimeError(
19
+ f'The grpc package installed is at version {GRPC_VERSION},'
20
+ + f' but the generated code in sapiopycommons/ai/protoapi/session/sapio_conn_info_pb2_grpc.py depends on'
21
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
22
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
23
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
24
+ )