another-ayx-python-sdk 2.4.22__py3-none-any.whl → 2.4.24__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.
Files changed (213) hide show
  1. another_ayx_python_sdk/version.py +3 -3
  2. {another_ayx_python_sdk-2.4.22.dist-info → another_ayx_python_sdk-2.4.24.dist-info}/METADATA +2 -2
  3. {another_ayx_python_sdk-2.4.22.dist-info → another_ayx_python_sdk-2.4.24.dist-info}/RECORD +8 -213
  4. build/lib/another_ayx_python_sdk/version.py +3 -3
  5. build/lib/build/lib/another_ayx_python_sdk/__init__.py +0 -14
  6. build/lib/build/lib/another_ayx_python_sdk/__main__.py +0 -470
  7. build/lib/build/lib/another_ayx_python_sdk/assets/workspace_files/__init__.py +0 -14
  8. build/lib/build/lib/another_ayx_python_sdk/assets/workspace_files/setup.py +0 -38
  9. build/lib/build/lib/another_ayx_python_sdk/cli/__init__.py +0 -14
  10. build/lib/build/lib/another_ayx_python_sdk/cli/utilities.py +0 -103
  11. build/lib/build/lib/another_ayx_python_sdk/cli/workspace.py +0 -266
  12. build/lib/build/lib/another_ayx_python_sdk/cli/yxi_builder.py +0 -125
  13. build/lib/build/lib/another_ayx_python_sdk/cli/yxi_installer.py +0 -45
  14. build/lib/build/lib/another_ayx_python_sdk/core/__init__.py +0 -51
  15. build/lib/build/lib/another_ayx_python_sdk/core/constants.py +0 -25
  16. build/lib/build/lib/another_ayx_python_sdk/core/dcm_base.py +0 -115
  17. build/lib/build/lib/another_ayx_python_sdk/core/doc_utilities.py +0 -40
  18. build/lib/build/lib/another_ayx_python_sdk/core/environment_base.py +0 -213
  19. build/lib/build/lib/another_ayx_python_sdk/core/exceptions.py +0 -59
  20. build/lib/build/lib/another_ayx_python_sdk/core/field.py +0 -183
  21. build/lib/build/lib/another_ayx_python_sdk/core/input_anchor_base.py +0 -86
  22. build/lib/build/lib/another_ayx_python_sdk/core/input_connection_base.py +0 -206
  23. build/lib/build/lib/another_ayx_python_sdk/core/io_base.py +0 -139
  24. build/lib/build/lib/another_ayx_python_sdk/core/metadata.py +0 -173
  25. build/lib/build/lib/another_ayx_python_sdk/core/observable_mixin.py +0 -90
  26. build/lib/build/lib/another_ayx_python_sdk/core/output_anchor_base.py +0 -151
  27. build/lib/build/lib/another_ayx_python_sdk/core/plugin.py +0 -108
  28. build/lib/build/lib/another_ayx_python_sdk/core/plugin_v2.py +0 -97
  29. build/lib/build/lib/another_ayx_python_sdk/core/provider_base.py +0 -125
  30. build/lib/build/lib/another_ayx_python_sdk/core/proxy_requests.py +0 -51
  31. build/lib/build/lib/another_ayx_python_sdk/core/record_packet.py +0 -88
  32. build/lib/build/lib/another_ayx_python_sdk/core/record_packet_base.py +0 -123
  33. build/lib/build/lib/another_ayx_python_sdk/core/register_plugin.py +0 -127
  34. build/lib/build/lib/another_ayx_python_sdk/core/testing.py +0 -191
  35. build/lib/build/lib/another_ayx_python_sdk/core/utils.py +0 -146
  36. build/lib/build/lib/another_ayx_python_sdk/examples/AyxSdkInput/main.py +0 -89
  37. build/lib/build/lib/another_ayx_python_sdk/examples/AyxSdkMultiConnectionsMultiOutputAnchor/main.py +0 -102
  38. build/lib/build/lib/another_ayx_python_sdk/examples/AyxSdkMultipleInputAnchors/main.py +0 -84
  39. build/lib/build/lib/another_ayx_python_sdk/examples/AyxSdkMultipleOutputAnchors/main.py +0 -96
  40. build/lib/build/lib/another_ayx_python_sdk/examples/AyxSdkOptionalInputAnchor/main.py +0 -94
  41. build/lib/build/lib/another_ayx_python_sdk/examples/AyxSdkOutput/main.py +0 -78
  42. build/lib/build/lib/another_ayx_python_sdk/examples/AyxSdkPassThrough/main.py +0 -82
  43. build/lib/build/lib/another_ayx_python_sdk/providers/__init__.py +0 -14
  44. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/__init__.py +0 -41
  45. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/__main__.py +0 -85
  46. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_dcm.py +0 -58
  47. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_driver.py +0 -358
  48. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_environment.py +0 -73
  49. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_environment_v2.py +0 -278
  50. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_input_anchor.py +0 -73
  51. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_input_connection.py +0 -132
  52. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_io.py +0 -64
  53. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_io_components.py +0 -407
  54. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_output_anchor.py +0 -107
  55. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_provider.py +0 -68
  56. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_provider_v2.py +0 -128
  57. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/amp_record_packet.py +0 -21
  58. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/__init__.py +0 -32
  59. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/input_anchor_builder.py +0 -123
  60. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/input_connection_builder.py +0 -95
  61. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/metadata_builder.py +0 -118
  62. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/output_anchor_builder.py +0 -110
  63. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/packers.py +0 -458
  64. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/record_builder.py +0 -204
  65. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/record_packet_builder.py +0 -133
  66. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/builders/tool_config_builder.py +0 -59
  67. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/cng_certs.py +0 -197
  68. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/data_transport/__init__.py +0 -18
  69. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/data_transport/amp_transport.py +0 -127
  70. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/data_transport/transport_base.py +0 -35
  71. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__init__.py +0 -14
  72. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/control_msgs.py +0 -189
  73. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/dcme_msgs.py +0 -119
  74. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/record_transfer_msgs.py +0 -32
  75. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_util.py +0 -161
  76. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/logger_config.py +0 -63
  77. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/plugin_class_loader.py +0 -77
  78. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/__init__.py +0 -67
  79. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/dcm_repository.py +0 -252
  80. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/environment_repository.py +0 -212
  81. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/grpc_repository.py +0 -119
  82. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/input_anchor_repository.py +0 -110
  83. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/input_connection_repository.py +0 -276
  84. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/input_metadata_repository.py +0 -144
  85. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/input_record_packet_repository.py +0 -252
  86. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/io_repository.py +0 -188
  87. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/output_anchor_repository.py +0 -117
  88. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/output_metadata_repository.py +0 -129
  89. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/output_record_packet_repository.py +0 -170
  90. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/plugin_class_repository.py +0 -55
  91. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/singleton.py +0 -32
  92. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/test_harness_state_repository.py +0 -172
  93. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/tool_config_repository.py +0 -89
  94. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/__init__.py +0 -14
  95. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/__init__.py +0 -0
  96. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/close_outgoing_anchor_pb2.py +0 -25
  97. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/close_outgoing_anchor_pb2_grpc.py +0 -4
  98. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/dcm_e_pb2.py +0 -38
  99. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/dcm_e_pb2_grpc.py +0 -4
  100. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_anchor_pb2.py +0 -26
  101. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_anchor_pb2_grpc.py +0 -4
  102. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_complete_pb2.py +0 -25
  103. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_complete_pb2_grpc.py +0 -4
  104. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_pb2.py +0 -26
  105. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_pb2_grpc.py +0 -4
  106. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_data_push_pb2.py +0 -26
  107. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_data_push_pb2_grpc.py +0 -4
  108. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_record_packet_push_pb2.py +0 -26
  109. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_record_packet_push_pb2_grpc.py +0 -4
  110. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/metadata_pb2.py +0 -31
  111. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/metadata_pb2_grpc.py +0 -4
  112. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_anchor_pb2.py +0 -28
  113. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_anchor_pb2_grpc.py +0 -4
  114. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_data_push_pb2.py +0 -26
  115. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_data_push_pb2_grpc.py +0 -4
  116. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_metadata_push_pb2.py +0 -26
  117. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_metadata_push_pb2_grpc.py +0 -4
  118. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_record_packet_push_pb2.py +0 -26
  119. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_record_packet_push_pb2_grpc.py +0 -4
  120. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/output_message_data_pb2.py +0 -29
  121. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/output_message_data_pb2_grpc.py +0 -4
  122. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/password_data_pb2.py +0 -25
  123. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/password_data_pb2_grpc.py +0 -4
  124. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/plugin_initialization_data_pb2.py +0 -33
  125. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/plugin_initialization_data_pb2_grpc.py +0 -4
  126. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_batch_pb2.py +0 -25
  127. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_batch_pb2_grpc.py +0 -4
  128. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_packet_pb2.py +0 -29
  129. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_packet_pb2_grpc.py +0 -4
  130. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_engine_service_pb2.py +0 -34
  131. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_engine_service_pb2_grpc.py +0 -305
  132. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_pb2.py +0 -30
  133. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_pb2_grpc.py +0 -235
  134. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_startup_info_pb2.py +0 -25
  135. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_startup_info_pb2_grpc.py +0 -4
  136. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_v2_pb2.py +0 -54
  137. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_v2_pb2_grpc.py +0 -99
  138. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/translate_message_data_pb2.py +0 -27
  139. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/translate_message_data_pb2_grpc.py +0 -4
  140. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/transport_pb2.py +0 -31
  141. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/transport_pb2_grpc.py +0 -4
  142. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/update_progress_pb2.py +0 -25
  143. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/update_progress_pb2_grpc.py +0 -4
  144. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/sdk_tool_runner.py +0 -115
  145. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/sdk_tool_service.py +0 -207
  146. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/sdk_tool_service_v2.py +0 -306
  147. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/utilities/__init__.py +0 -14
  148. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/utilities/constants.py +0 -22
  149. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/utilities/conversions.py +0 -55
  150. build/lib/build/lib/another_ayx_python_sdk/providers/amp_provider/utilities/utilities.py +0 -63
  151. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/__init__.py +0 -36
  152. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/anchor_builder.py +0 -95
  153. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/cache_e1_sdk_import.py +0 -31
  154. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/connection_callback_strategy.py +0 -155
  155. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/connection_interface.py +0 -125
  156. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_dcm.py +0 -53
  157. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_environment.py +0 -127
  158. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_input_anchor.py +0 -51
  159. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_input_anchor_proxy.py +0 -33
  160. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_input_connection.py +0 -87
  161. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_io.py +0 -71
  162. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_output_anchor.py +0 -157
  163. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_output_anchor_proxy.py +0 -97
  164. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_plugin_driver.py +0 -63
  165. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_plugin_proxy.py +0 -363
  166. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_provider.py +0 -71
  167. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/e1_record_packet.py +0 -21
  168. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/events.py +0 -36
  169. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__init__.py +0 -37
  170. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/alteryx_engine.py +0 -105
  171. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/constants.py +0 -50
  172. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/field.py +0 -122
  173. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/output_anchor.py +0 -55
  174. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/output_anchor_manager.py +0 -31
  175. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_copier.py +0 -65
  176. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_creator.py +0 -41
  177. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_info.py +0 -134
  178. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_ref.py +0 -42
  179. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/tool.py +0 -29
  180. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/tool_execution_info.py +0 -43
  181. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/__init__.py +0 -14
  182. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/proxies/__init__.py +0 -18
  183. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/proxies/field_proxy.py +0 -109
  184. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/proxies/record_copier_proxy.py +0 -49
  185. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/records/__init__.py +0 -23
  186. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/records/base_record_container.py +0 -47
  187. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/records/parsed_record_container.py +0 -67
  188. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/records/raw_record_container.py +0 -111
  189. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/tool_config_loader.py +0 -132
  190. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/utilities/__init__.py +0 -35
  191. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/utilities/utilities.py +0 -54
  192. build/lib/build/lib/another_ayx_python_sdk/providers/e1_provider/workflow_config.py +0 -31
  193. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/__init__.py +0 -32
  194. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/environment.py +0 -131
  195. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/file_adapter.py +0 -286
  196. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/file_provider.py +0 -185
  197. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/file_provider_dcm.py +0 -53
  198. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/file_provider_input_anchor.py +0 -70
  199. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/file_provider_input_connection.py +0 -112
  200. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/file_provider_output_anchor.py +0 -114
  201. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/file_record_packet.py +0 -21
  202. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/iox.py +0 -56
  203. build/lib/build/lib/another_ayx_python_sdk/providers/file_provider/tool_input.py +0 -104
  204. build/lib/build/lib/another_ayx_python_sdk/test_harness/__init__.py +0 -14
  205. build/lib/build/lib/another_ayx_python_sdk/test_harness/__main__.py +0 -120
  206. build/lib/build/lib/another_ayx_python_sdk/test_harness/plugin_runner.py +0 -416
  207. build/lib/build/lib/another_ayx_python_sdk/test_harness/process_lifecycle_manager.py +0 -80
  208. build/lib/build/lib/another_ayx_python_sdk/test_harness/sdk_engine_service.py +0 -106
  209. build/lib/build/lib/another_ayx_python_sdk/version.py +0 -8
  210. {another_ayx_python_sdk-2.4.22.dist-info → another_ayx_python_sdk-2.4.24.dist-info}/WHEEL +0 -0
  211. {another_ayx_python_sdk-2.4.22.dist-info → another_ayx_python_sdk-2.4.24.dist-info}/entry_points.txt +0 -0
  212. {another_ayx_python_sdk-2.4.22.dist-info → another_ayx_python_sdk-2.4.24.dist-info}/licenses/LICENSE +0 -0
  213. {another_ayx_python_sdk-2.4.22.dist-info → another_ayx_python_sdk-2.4.24.dist-info}/top_level.txt +0 -0
@@ -1,416 +0,0 @@
1
- # Copyright (C) 2022 Alteryx, Inc. All rights reserved.
2
- #
3
- # Licensed under the ALTERYX SDK AND API LICENSE AGREEMENT;
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # https://www.alteryx.com/alteryx-sdk-and-api-license-agreement
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- """Class for running a plugin out of process."""
15
- import asyncio
16
- import os
17
- import sys
18
- import time
19
- from enum import Enum
20
- from pathlib import Path
21
- from typing import AsyncIterable, Callable, List, Optional, TYPE_CHECKING, Tuple
22
-
23
- from another_ayx_python_sdk.providers.amp_provider import (
24
- AMPInputAnchor,
25
- AMPInputConnection,
26
- AMPOutputAnchor,
27
- )
28
- from another_ayx_python_sdk.providers.amp_provider.builders import OutputAnchorBuilder
29
- from another_ayx_python_sdk.providers.amp_provider.builders.input_anchor_builder import (
30
- InputAnchorBuilder,
31
- )
32
- from another_ayx_python_sdk.providers.amp_provider.data_transport.amp_transport import (
33
- AmpStreamTransport,
34
- )
35
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.plugin_initialization_data_pb2 import (
36
- UpdateMode,
37
- )
38
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.sdk_tool_service_pb2_grpc import (
39
- SdkToolStub,
40
- )
41
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.sdk_tool_service_v2_pb2 import (
42
- ControlIn,
43
- RecordTransferIn,
44
- RecordTransferOut,
45
- )
46
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.sdk_tool_service_v2_pb2_grpc import (
47
- SdkToolV2Stub,
48
- )
49
- from another_ayx_python_sdk.test_harness.process_lifecycle_manager import (
50
- ProcessLifecycleManager,
51
- )
52
-
53
- import grpc
54
-
55
- import pyarrow as pa
56
-
57
- import typer
58
-
59
- import xmltodict
60
-
61
-
62
- if TYPE_CHECKING:
63
- from another_ayx_python_sdk.core import Metadata # noqa: F401
64
- import pandas as pd # noqa: F401
65
-
66
-
67
- class RunMode(str, Enum):
68
- """Run mode types."""
69
-
70
- update_only = "update_only"
71
- full_run = "full"
72
-
73
-
74
- def _handle_sdk_tool_service_exception(method: Callable) -> Callable:
75
- def _log_grpc_errors(*args, **kwargs): # type: ignore
76
- try:
77
- return method(*args, **kwargs)
78
- except grpc.RpcError as e:
79
- typer.echo("SDK Tool Service failed.")
80
- typer.echo(f"gRPC Status Code: {e.code()}")
81
- typer.echo(f"gRPC Details (Stacktrace):\n{e.details()}")
82
- raise typer.Exit(code=1)
83
-
84
- return _log_grpc_errors
85
-
86
-
87
- def _parse_config_xml(
88
- xml_path: Path,
89
- ) -> Tuple[List[AMPInputAnchor], List[AMPOutputAnchor]]:
90
- input_anchors = []
91
- output_anchors = []
92
- typer.echo(f"{xml_path}")
93
- with open(xml_path) as config_xml:
94
- config_dict = xmltodict.parse(config_xml.read())
95
- inputs = config_dict["AlteryxJavaScriptPlugin"]["GuiSettings"][
96
- "InputConnections"
97
- ]["Connection"]
98
- outputs = config_dict["AlteryxJavaScriptPlugin"]["GuiSettings"][
99
- "OutputConnections"
100
- ]["Connection"]
101
- if type(inputs) is list:
102
- for input_anchor in inputs:
103
- anchor = AMPInputAnchor(
104
- name=input_anchor["@Name"],
105
- allow_multiple=input_anchor["@AllowMultiple"],
106
- optional=input_anchor["@Optional"],
107
- )
108
- input_anchors.append(anchor)
109
- else:
110
- anchor = AMPInputAnchor(
111
- name=inputs["@Name"],
112
- allow_multiple=inputs["@AllowMultiple"],
113
- optional=inputs["@Optional"],
114
- )
115
- input_anchors.append(anchor)
116
-
117
- if type(outputs) is list:
118
- for output_anchor in outputs:
119
- anchor = AMPOutputAnchor(
120
- name=output_anchor["@Name"],
121
- allow_multiple=output_anchor["@AllowMultiple"],
122
- optional=output_anchor["@Optional"],
123
- )
124
- output_anchors.append(anchor)
125
- else:
126
- anchor = AMPOutputAnchor(
127
- name=outputs["@Name"],
128
- allow_multiple=outputs["@AllowMultiple"],
129
- optional=outputs["@Optional"],
130
- )
131
- output_anchors.append(anchor)
132
-
133
- return input_anchors, output_anchors
134
-
135
-
136
- class PluginRunner:
137
- """Class for running a plugin out of process with test data."""
138
-
139
- def __init__(
140
- self,
141
- plugin_entrypoint: Path,
142
- plugins_package: str,
143
- tool_name: str,
144
- input_metadata: List["Metadata"],
145
- input_data: List["pd.DataFrame"],
146
- config_xml: Path,
147
- transport_type: str,
148
- ) -> None:
149
- """Construct the plugin runner."""
150
- self._channel = None
151
- self._plugin_entrypoint = plugin_entrypoint
152
- self._plugins_package = plugins_package
153
- self._tool_name = tool_name
154
- self._input_metadata = input_metadata
155
- self._input_data = input_data
156
- self._transport_type = transport_type
157
- self._sdk_tool_client: Optional[SdkToolStub] = None
158
- self._input_anchors, self._output_anchors = _parse_config_xml(config_xml)
159
- self._control_write_queue: asyncio.Queue[ControlIn] = asyncio.Queue()
160
- self._control_read_queue: list = []
161
- self._record_write_queue: asyncio.Queue[RecordTransferIn] = asyncio.Queue()
162
- self._received_records: List[RecordTransferOut] = []
163
- self.stream_transport = AmpStreamTransport()
164
- for i in range(len(self._input_anchors)):
165
- connection = [
166
- AMPInputConnection(
167
- "Connection" + str(i),
168
- metadata=self._input_metadata[i],
169
- anchor=self._input_anchors[i],
170
- )
171
- ]
172
- self._input_anchors[i].connections.extend(connection)
173
- typer.echo(f"{transport_type}")
174
- if not (len(self._input_data) == len(self._input_metadata)):
175
- typer.echo(
176
- f"{len(self._input_data)}\n{self._input_anchors}\n{len(self._input_metadata)}"
177
- )
178
- raise Exception(
179
- "Input datasets, input metadata, and input anchors must match."
180
- )
181
-
182
- async def run_plugin_v2(self, mode: RunMode) -> None:
183
- """Run the plugin out of process."""
184
- with ProcessLifecycleManager(
185
- [
186
- sys.executable,
187
- str(self._plugin_entrypoint.resolve()),
188
- "start-sdk-tool-service",
189
- self._plugins_package,
190
- self._tool_name,
191
- "--sdk-engine-server-address",
192
- "localhost:6500",
193
- ]
194
- ) as plugin_process: # noqa: F841
195
- try:
196
- self.channel = grpc.aio.insecure_channel(
197
- "localhost:6500",
198
- options=[
199
- ("grpc.max_send_message_length", -1),
200
- ("grpc.max_receive_message_length", -1),
201
- ],
202
- )
203
- await self._wait_for_handshake_v2(plugin_process)
204
- self.sdk_client_stub = SdkToolV2Stub(self.channel)
205
- except Exception as e:
206
- typer.echo(f"Error while running handshake")
207
- raise e
208
-
209
- # TODO: should return a status and raise if failed
210
- if mode == RunMode.full_run:
211
- await self._handle_plugin_runtime()
212
-
213
- async def _wait_for_handshake_v2(
214
- self, plugin_process: ProcessLifecycleManager, timeout: float = 30.0
215
- ) -> None:
216
- """Wait for the initialization handshake to complete."""
217
- start = time.time()
218
- await asyncio.wait_for(self.channel.channel_ready(), timeout)
219
- typer.echo("Channel ready")
220
- if not plugin_process.process_alive():
221
- typer.echo(
222
- f"ERROR: Plugin process died before handshake completed with error."
223
- )
224
- raise typer.Exit(code=1)
225
-
226
- if time.time() - start > timeout:
227
- typer.echo("ERROR: Handshake didn't complete within timeout.")
228
- raise typer.Exit(code=1)
229
-
230
- @_handle_sdk_tool_service_exception
231
- def _initialize_plugin_v2_msg(self) -> None:
232
- """Initialize the plugin with metadata and configuration."""
233
- dummy_plugin_data = ControlIn()
234
- dummy_plugin_data.plugin_initialization_data.configXml = "<Configuration />"
235
- dummy_plugin_data.plugin_initialization_data.incomingAnchors.extend(
236
- [
237
- InputAnchorBuilder.to_protobuf(input_anchor)
238
- for input_anchor in self._input_anchors
239
- ]
240
- )
241
- dummy_plugin_data.plugin_initialization_data.outgoingAnchors.extend(
242
- [
243
- OutputAnchorBuilder.to_protobuf(output_anchor)
244
- for output_anchor in self._output_anchors
245
- ]
246
- ),
247
- engine_constants = {
248
- "Engine.TempFilePath": os.getcwd(),
249
- "Engine.WorkflowDirectory": os.getcwd(),
250
- "Engine.Version": "0.0.0.0",
251
- "ToolId": "10",
252
- "AlteryxExecutable": os.getcwd(),
253
- "ProxyConfiguration": "ProxyRequiresCredentials=false\nProxyCommonUserName=\nProxyCommonPassword=\n",
254
- "WorkflowRunGuid": "aa163794-e400-4ec5-85dd-a7de71bedb8a",
255
- }
256
- for k, v in engine_constants.items():
257
- dummy_plugin_data.plugin_initialization_data.engineConstants[k] = v
258
- dummy_plugin_data.plugin_initialization_data.updateMode = UpdateMode.UM_Run
259
- return dummy_plugin_data
260
-
261
- def _push_input_data_to_queue(self) -> None:
262
- try:
263
- for num, anchor in enumerate(self._input_anchors):
264
- batch = pa.RecordBatch.from_pandas(self._input_data[num])
265
- stream = self.stream_transport.get_rec_stream(batch)
266
- try:
267
- for chunk, end_of_chunk in self.stream_transport.iter_stream(
268
- stream
269
- ):
270
- msg = RecordTransferIn()
271
- msg.incoming_records.anchor_name = anchor.name
272
- msg.incoming_records.data = chunk
273
- msg.incoming_records.end_of_chunk = end_of_chunk
274
- msg.incoming_records.connection_name = anchor.connections[
275
- num
276
- ].name
277
- self._record_write_queue.put_nowait(msg)
278
- except StopIteration:
279
- pass
280
- except Exception as e:
281
- typer.echo(f"Exception during push input data {repr(e)}")
282
-
283
- async def record_transfer_producer(
284
- self,
285
- event_plugin_ready: "asyncio.Event",
286
- ) -> "RecordTransferIn":
287
- """Send records to the plugin, notify client is done sending record data."""
288
- # wait for plugin init event
289
- await event_plugin_ready.wait()
290
- typer.echo("Sending initial recordtransfers")
291
- while not self._record_write_queue.empty():
292
- yield await self._record_write_queue.get()
293
- self._record_write_queue.task_done()
294
- typer.echo("Sent initial transfers.")
295
- typer.echo("Notifying plugin to complete")
296
- self._control_write_queue.put_nowait(self._get_notify_complete_msg())
297
-
298
- async def control_producer(
299
- self,
300
- event_notify_complete: "asyncio.Event",
301
- event_plugin_ready: "asyncio.Event",
302
- ) -> "ControlIn":
303
- """Generate initial control messages, then wait for any new msgs to send from the queue."""
304
- typer.echo("Sending init message")
305
- yield self._initialize_plugin_v2_msg()
306
- # await event_plugin_ready.wait() # Wait for plugin to send back init response
307
- typer.echo("Init successful, starting control in loop")
308
- # Start regular producer loop
309
- while not event_notify_complete.is_set():
310
- if not self._control_write_queue.empty():
311
- yield await self._control_write_queue.get()
312
- # send back any handled control_out messages
313
- self._control_write_queue.task_done()
314
- # let the client check on other streams
315
- await asyncio.sleep(0)
316
-
317
- @_handle_sdk_tool_service_exception
318
- async def record_transfer_consumer(
319
- self, resp_iterator: AsyncIterable[RecordTransferOut]
320
- ) -> None:
321
- """Receive and process RecordTransferOut messages from the server."""
322
- # check for notify_complete AFTER handling any remaining pending record_out respones
323
- async for resp in resp_iterator:
324
- typer.echo("Response received on record consumer stream")
325
- if resp.WhichOneof("payload") == "outgoing_records":
326
- typer.echo("Consumer received record msg.")
327
- record_chunk = resp.outgoing_records
328
- try:
329
- completed_stream = self.stream_transport.receive_record(
330
- record_chunk
331
- )
332
- if completed_stream:
333
- self._received_records.append(completed_stream)
334
- except Exception as e:
335
- typer.echo(f"{repr(e)}")
336
-
337
- async def control_consumer(
338
- self,
339
- event_notify_complete: "asyncio.Event",
340
- event_plugin_ready: "asyncio.Event",
341
- resp_iterator: AsyncIterable["RecordTransferOut"],
342
- ) -> None:
343
- """Receives and handles Control msg responses from the server."""
344
- async for resp in resp_iterator:
345
- oneof = resp.WhichOneof("payload")
346
- typer.echo(f"control consumer received oneof {oneof}")
347
- if oneof == "translate_message":
348
- # Return translated message, for now just flip it back
349
- msg = ControlIn()
350
- fake_translated = (
351
- f"'Translated msg': {resp.translate_message.unlocalized_string}"
352
- )
353
- msg.translated_message.translated_message = fake_translated
354
- msg.msg_id = resp.msg_id
355
- typer.echo(
356
- f"Sending translated message response to control write queue..."
357
- )
358
- self._control_write_queue.put_nowait(msg)
359
- elif resp.WhichOneof("payload") == "confirm_complete":
360
- typer.echo("Received plugin complete confirmation from SDK tool")
361
- # Set plugin complete, asyncio.gather should let data streams finish work.
362
- event_notify_complete.set()
363
- elif oneof == "output_message":
364
- if (
365
- event_plugin_ready.is_set() is False
366
- and "Plugin Initialized" in resp.output_message.message
367
- ):
368
- typer.echo("Recieved SDK PLUGIN init confirmation")
369
- event_plugin_ready.set()
370
- typer.echo(
371
- f"Received control out from server. \n {resp.output_message.message}"
372
- )
373
-
374
- def _get_notify_complete_msg(self) -> "ControlIn":
375
- """Create notify complete msg."""
376
- ctrl_msg = ControlIn()
377
- ctrl_msg.notify_complete.SetInParent()
378
- return ctrl_msg
379
-
380
- @_handle_sdk_tool_service_exception
381
- async def _handle_plugin_runtime(self) -> None:
382
- """Send/receive all of the record packets to/from the plugin."""
383
- typer.echo("Starting plugin runtime")
384
- if self.sdk_client_stub is None:
385
- typer.echo("Stub not set")
386
- raise ValueError("SDK Tool Client must be set.")
387
- event_notify_plugin_complete = asyncio.Event()
388
- event_plugin_ready = asyncio.Event()
389
- typer.echo("Setting input data...")
390
- try:
391
- self._push_input_data_to_queue()
392
- except Exception as e:
393
- typer.echo("Exception during setting input data")
394
- raise e
395
- typer.echo("Setting Producers")
396
- record_transfer_responses = self.sdk_client_stub.RecordTransfer(
397
- self.record_transfer_producer(event_plugin_ready)
398
- )
399
- control_responses = self.sdk_client_stub.Control(
400
- self.control_producer(event_notify_plugin_complete, event_plugin_ready)
401
- )
402
- # Separate tasks to thread to let control listen for server msgs
403
- typer.echo("Setting Consumers")
404
- _record_consumer = self.record_transfer_consumer(record_transfer_responses)
405
- _ctrl_consumer = self.control_consumer(
406
- event_notify_plugin_complete,
407
- event_plugin_ready,
408
- control_responses,
409
- )
410
- # TODO: Add task status returns
411
- typer.echo("Gathering...")
412
- tasks = await asyncio.gather(_record_consumer, _ctrl_consumer)
413
- typer.echo(tasks)
414
- typer.echo("Received records:")
415
- for rec in self._received_records:
416
- typer.echo(rec)
@@ -1,80 +0,0 @@
1
- # Copyright (C) 2022 Alteryx, Inc. All rights reserved.
2
- #
3
- # Licensed under the ALTERYX SDK AND API LICENSE AGREEMENT;
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # https://www.alteryx.com/alteryx-sdk-and-api-license-agreement
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- """OS independent process management class."""
15
- import subprocess
16
- import time
17
- from abc import ABC
18
- from pathlib import Path
19
- from typing import Any, List, Optional
20
-
21
- import psutil
22
-
23
- import typer
24
-
25
-
26
- class ProcessLifecycleManager(ABC):
27
- """Class for managing the lifecycle of a process."""
28
-
29
- def __init__(self, args: List[str]) -> None:
30
- """Construct the process lifecycle manager."""
31
- self._args = args
32
- self._process: Optional[subprocess.Popen] = None
33
-
34
- def __enter__(self) -> "ProcessLifecycleManager":
35
- """Enter the context manager and start the process."""
36
- self._start_process()
37
-
38
- if not self.process_alive():
39
- raise RuntimeError("Process didn't start correctly.")
40
-
41
- typer.echo("Plugin process started successfully.\n")
42
-
43
- return self
44
-
45
- def __exit__(self, *_: Any, **__: Any) -> None:
46
- """Exit the process manager and kill the process."""
47
- if self.process_alive():
48
- typer.echo("Attemping to kill plugin process.")
49
- self._kill_process()
50
-
51
- typer.echo("Plugin process killed successfully.\n")
52
-
53
- def _start_process(self) -> None:
54
- """Start the process."""
55
- self._process = subprocess.Popen(
56
- self._args,
57
- cwd=str(Path(__file__).parent.parent.parent),
58
- )
59
-
60
- def _kill_process(self, timeout: float = 10.0) -> None:
61
- """Kill the process and any subprocesses."""
62
- if self._process is None:
63
- raise ValueError("Can't kill before process has started.")
64
-
65
- process = psutil.Process(self._process.pid)
66
- for subprocess_ in process.children(recursive=True):
67
- subprocess_.terminate()
68
- process.terminate()
69
-
70
- start = time.time()
71
- while self.process_alive():
72
- if time.time() - start > timeout:
73
- raise RuntimeError("Timeout reached waiting for process to die.")
74
-
75
- def process_alive(self) -> bool:
76
- """Check if the process is still running."""
77
- if self._process is None:
78
- raise ValueError("Process hasn't been started.")
79
-
80
- return self._process.poll() is None
@@ -1,106 +0,0 @@
1
- # Copyright (C) 2022 Alteryx, Inc. All rights reserved.
2
- #
3
- # Licensed under the ALTERYX SDK AND API LICENSE AGREEMENT;
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # https://www.alteryx.com/alteryx-sdk-and-api-license-agreement
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- """Test harness implementation of the SDK Engine service."""
15
- from another_ayx_python_sdk.providers.amp_provider.grpc_util import SocketAddress
16
- from another_ayx_python_sdk.providers.amp_provider.repositories.test_harness_state_repository import (
17
- TestHarnessStateRepository,
18
- )
19
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.output_message_data_pb2 import (
20
- OutputMessageTypes,
21
- )
22
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.password_data_pb2 import (
23
- PasswordData,
24
- )
25
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.sdk_engine_service_pb2_grpc import (
26
- SdkEngineServicer,
27
- )
28
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.translate_message_data_pb2 import (
29
- TranslatedMessage,
30
- )
31
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.transport_pb2 import (
32
- Empty,
33
- ReturnStatus,
34
- )
35
-
36
- import typer
37
-
38
-
39
- class SdkEngineService(SdkEngineServicer):
40
- """Implementation of the SDK Engine service for the test harness."""
41
-
42
- def ConfirmSdkEngineServiceConnection(self, request, context): # type: ignore # noqa: N802
43
- """Confirm the connection with this server."""
44
- typer.echo(
45
- f"SDK ENGINE SERVICE: ConfirmSdkEngineServiceConnection called with request:\n{request}"
46
- )
47
-
48
- TestHarnessStateRepository().save_handshake_completed_status(True)
49
-
50
- TestHarnessStateRepository().save_sdk_tool_server_address(
51
- SocketAddress.from_address_str(request.sdk_tool_server_address)
52
- )
53
-
54
- return ReturnStatus(success=True, message="Connection successful.")
55
-
56
- def PushOutgoingMetadata(self, request, context): # type: ignore # noqa: N802
57
- """Send any outgoing metadata from Sdk Plugin to SDK Engine Server."""
58
- typer.echo(
59
- f"SDK ENGINE SERVICE: PushOutgoingMetadata called with request:\n{request}"
60
- )
61
-
62
- TestHarnessStateRepository().save_metadata(
63
- request.output_anchor_name, request.metadata
64
- )
65
-
66
- return ReturnStatus(success=True, message="Output anchor and metadata saved.")
67
-
68
- def PushOutgoingRecordPacket(self, request, context): # type: ignore # noqa: N802
69
- """Push any record packets from SDK Plugin to SDK Engine Server."""
70
- typer.echo(
71
- f"SDK ENGINE SERVICE: PushOutgoingRecordPacket called with request:\n{request}"
72
- )
73
-
74
- TestHarnessStateRepository().save_record_packet(
75
- request.anchor_name, request.record_packet
76
- )
77
- return ReturnStatus(success=True, message="Record packet saved.")
78
-
79
- def TranslateMessage(self, request, context): # type: ignore # noqa: N802
80
- """Translate message into the correct locale, passing in any interpolation items."""
81
- typer.echo(
82
- f"SDK ENGINE SERVICE: TranslateMessage called with request:\n{request}"
83
- )
84
-
85
- return TranslatedMessage(translated_message=request.unlocalized_string)
86
-
87
- def OutputMessage(self, request, context): # type: ignore # noqa: N802
88
- """Push output message."""
89
- prefix = {
90
- OutputMessageTypes.OMT_Info: "INFO",
91
- OutputMessageTypes.OMT_Warning: "WARNING",
92
- OutputMessageTypes.OMT_Error: "ERROR",
93
- OutputMessageTypes.OMT_UpdateOutputConfigXml: "XML_UPDATE",
94
- }[request.message_type]
95
-
96
- typer.echo("SDK ENGINE SERVICE: Output message received from plugin")
97
- typer.echo(f"{prefix}: {request.message}\n")
98
-
99
- return Empty()
100
-
101
- def DecryptPassword(self, request, context): # type: ignore # noqa: N802
102
- """Decrypt a passsword."""
103
- typer.echo(
104
- f"SDK ENGINE SERVICE: DecryptPassword {request.password} received from plugin"
105
- )
106
- return PasswordData(password=request.password + "_decrypted")
@@ -1,8 +0,0 @@
1
- """FILE GENERATED FROM SETUP.PY."""
2
- short_version = "2.4.22"
3
- version = "2.4.22"
4
- full_version = "2.4.22"
5
- release = True
6
-
7
- if not release:
8
- version = full_version