another-ayx-python-sdk 2.4.24__py3-none-any.whl → 2.5.0__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 (216) hide show
  1. another_ayx_python_sdk/__main__.py +2 -2
  2. another_ayx_python_sdk/examples/AyxSdkInput/main.py +1 -1
  3. another_ayx_python_sdk/examples/requirements.txt +1 -1
  4. another_ayx_python_sdk/version.py +3 -3
  5. another_ayx_python_sdk-2.5.0.dist-info/METADATA +151 -0
  6. {another_ayx_python_sdk-2.4.24.dist-info → another_ayx_python_sdk-2.5.0.dist-info}/RECORD +10 -215
  7. {another_ayx_python_sdk-2.4.24.dist-info → another_ayx_python_sdk-2.5.0.dist-info}/WHEEL +1 -1
  8. {another_ayx_python_sdk-2.4.24.dist-info → another_ayx_python_sdk-2.5.0.dist-info}/top_level.txt +0 -2
  9. another_ayx_python_sdk-2.4.24.dist-info/METADATA +0 -63
  10. build/lib/another_ayx_python_sdk/__init__.py +0 -14
  11. build/lib/another_ayx_python_sdk/__main__.py +0 -470
  12. build/lib/another_ayx_python_sdk/assets/workspace_files/__init__.py +0 -14
  13. build/lib/another_ayx_python_sdk/assets/workspace_files/setup.py +0 -38
  14. build/lib/another_ayx_python_sdk/cli/__init__.py +0 -14
  15. build/lib/another_ayx_python_sdk/cli/utilities.py +0 -103
  16. build/lib/another_ayx_python_sdk/cli/workspace.py +0 -266
  17. build/lib/another_ayx_python_sdk/cli/yxi_builder.py +0 -125
  18. build/lib/another_ayx_python_sdk/cli/yxi_installer.py +0 -45
  19. build/lib/another_ayx_python_sdk/core/__init__.py +0 -51
  20. build/lib/another_ayx_python_sdk/core/constants.py +0 -25
  21. build/lib/another_ayx_python_sdk/core/dcm_base.py +0 -115
  22. build/lib/another_ayx_python_sdk/core/doc_utilities.py +0 -40
  23. build/lib/another_ayx_python_sdk/core/environment_base.py +0 -213
  24. build/lib/another_ayx_python_sdk/core/exceptions.py +0 -59
  25. build/lib/another_ayx_python_sdk/core/field.py +0 -183
  26. build/lib/another_ayx_python_sdk/core/input_anchor_base.py +0 -86
  27. build/lib/another_ayx_python_sdk/core/input_connection_base.py +0 -206
  28. build/lib/another_ayx_python_sdk/core/io_base.py +0 -139
  29. build/lib/another_ayx_python_sdk/core/metadata.py +0 -173
  30. build/lib/another_ayx_python_sdk/core/observable_mixin.py +0 -90
  31. build/lib/another_ayx_python_sdk/core/output_anchor_base.py +0 -151
  32. build/lib/another_ayx_python_sdk/core/plugin.py +0 -108
  33. build/lib/another_ayx_python_sdk/core/plugin_v2.py +0 -97
  34. build/lib/another_ayx_python_sdk/core/provider_base.py +0 -125
  35. build/lib/another_ayx_python_sdk/core/proxy_requests.py +0 -51
  36. build/lib/another_ayx_python_sdk/core/record_packet.py +0 -88
  37. build/lib/another_ayx_python_sdk/core/record_packet_base.py +0 -123
  38. build/lib/another_ayx_python_sdk/core/register_plugin.py +0 -127
  39. build/lib/another_ayx_python_sdk/core/testing.py +0 -191
  40. build/lib/another_ayx_python_sdk/core/utils.py +0 -146
  41. build/lib/another_ayx_python_sdk/examples/AyxSdkInput/main.py +0 -89
  42. build/lib/another_ayx_python_sdk/examples/AyxSdkMultiConnectionsMultiOutputAnchor/main.py +0 -102
  43. build/lib/another_ayx_python_sdk/examples/AyxSdkMultipleInputAnchors/main.py +0 -84
  44. build/lib/another_ayx_python_sdk/examples/AyxSdkMultipleOutputAnchors/main.py +0 -96
  45. build/lib/another_ayx_python_sdk/examples/AyxSdkOptionalInputAnchor/main.py +0 -94
  46. build/lib/another_ayx_python_sdk/examples/AyxSdkOutput/main.py +0 -78
  47. build/lib/another_ayx_python_sdk/examples/AyxSdkPassThrough/main.py +0 -82
  48. build/lib/another_ayx_python_sdk/providers/__init__.py +0 -14
  49. build/lib/another_ayx_python_sdk/providers/amp_provider/__init__.py +0 -41
  50. build/lib/another_ayx_python_sdk/providers/amp_provider/__main__.py +0 -85
  51. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_dcm.py +0 -58
  52. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_driver.py +0 -358
  53. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_environment.py +0 -73
  54. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_environment_v2.py +0 -278
  55. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_input_anchor.py +0 -73
  56. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_input_connection.py +0 -132
  57. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_io.py +0 -64
  58. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_io_components.py +0 -407
  59. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_output_anchor.py +0 -107
  60. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_provider.py +0 -68
  61. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_provider_v2.py +0 -128
  62. build/lib/another_ayx_python_sdk/providers/amp_provider/amp_record_packet.py +0 -21
  63. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/__init__.py +0 -32
  64. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/input_anchor_builder.py +0 -123
  65. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/input_connection_builder.py +0 -95
  66. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/metadata_builder.py +0 -118
  67. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/output_anchor_builder.py +0 -110
  68. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/packers.py +0 -458
  69. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/record_builder.py +0 -204
  70. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/record_packet_builder.py +0 -133
  71. build/lib/another_ayx_python_sdk/providers/amp_provider/builders/tool_config_builder.py +0 -59
  72. build/lib/another_ayx_python_sdk/providers/amp_provider/cng_certs.py +0 -197
  73. build/lib/another_ayx_python_sdk/providers/amp_provider/data_transport/__init__.py +0 -18
  74. build/lib/another_ayx_python_sdk/providers/amp_provider/data_transport/amp_transport.py +0 -127
  75. build/lib/another_ayx_python_sdk/providers/amp_provider/data_transport/transport_base.py +0 -35
  76. build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__init__.py +0 -14
  77. build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/control_msgs.py +0 -189
  78. build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/dcme_msgs.py +0 -119
  79. build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/record_transfer_msgs.py +0 -32
  80. build/lib/another_ayx_python_sdk/providers/amp_provider/grpc_util.py +0 -161
  81. build/lib/another_ayx_python_sdk/providers/amp_provider/logger_config.py +0 -63
  82. build/lib/another_ayx_python_sdk/providers/amp_provider/plugin_class_loader.py +0 -77
  83. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/__init__.py +0 -67
  84. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/dcm_repository.py +0 -252
  85. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/environment_repository.py +0 -212
  86. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/grpc_repository.py +0 -119
  87. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/input_anchor_repository.py +0 -110
  88. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/input_connection_repository.py +0 -276
  89. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/input_metadata_repository.py +0 -144
  90. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/input_record_packet_repository.py +0 -252
  91. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/io_repository.py +0 -188
  92. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/output_anchor_repository.py +0 -117
  93. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/output_metadata_repository.py +0 -129
  94. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/output_record_packet_repository.py +0 -170
  95. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/plugin_class_repository.py +0 -55
  96. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/singleton.py +0 -32
  97. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/test_harness_state_repository.py +0 -172
  98. build/lib/another_ayx_python_sdk/providers/amp_provider/repositories/tool_config_repository.py +0 -89
  99. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/__init__.py +0 -14
  100. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/__init__.py +0 -0
  101. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/close_outgoing_anchor_pb2.py +0 -25
  102. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/close_outgoing_anchor_pb2_grpc.py +0 -4
  103. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/dcm_e_pb2.py +0 -38
  104. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/dcm_e_pb2_grpc.py +0 -4
  105. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_anchor_pb2.py +0 -26
  106. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_anchor_pb2_grpc.py +0 -4
  107. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_complete_pb2.py +0 -25
  108. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_complete_pb2_grpc.py +0 -4
  109. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_pb2.py +0 -26
  110. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_pb2_grpc.py +0 -4
  111. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_data_push_pb2.py +0 -26
  112. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_data_push_pb2_grpc.py +0 -4
  113. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_record_packet_push_pb2.py +0 -26
  114. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_record_packet_push_pb2_grpc.py +0 -4
  115. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/metadata_pb2.py +0 -31
  116. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/metadata_pb2_grpc.py +0 -4
  117. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_anchor_pb2.py +0 -28
  118. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_anchor_pb2_grpc.py +0 -4
  119. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_data_push_pb2.py +0 -26
  120. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_data_push_pb2_grpc.py +0 -4
  121. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_metadata_push_pb2.py +0 -26
  122. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_metadata_push_pb2_grpc.py +0 -4
  123. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_record_packet_push_pb2.py +0 -26
  124. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_record_packet_push_pb2_grpc.py +0 -4
  125. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/output_message_data_pb2.py +0 -29
  126. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/output_message_data_pb2_grpc.py +0 -4
  127. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/password_data_pb2.py +0 -25
  128. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/password_data_pb2_grpc.py +0 -4
  129. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/plugin_initialization_data_pb2.py +0 -33
  130. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/plugin_initialization_data_pb2_grpc.py +0 -4
  131. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_batch_pb2.py +0 -25
  132. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_batch_pb2_grpc.py +0 -4
  133. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_packet_pb2.py +0 -29
  134. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_packet_pb2_grpc.py +0 -4
  135. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_engine_service_pb2.py +0 -34
  136. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_engine_service_pb2_grpc.py +0 -305
  137. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_pb2.py +0 -30
  138. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_pb2_grpc.py +0 -235
  139. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_startup_info_pb2.py +0 -25
  140. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_startup_info_pb2_grpc.py +0 -4
  141. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_v2_pb2.py +0 -54
  142. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_v2_pb2_grpc.py +0 -99
  143. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/translate_message_data_pb2.py +0 -27
  144. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/translate_message_data_pb2_grpc.py +0 -4
  145. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/transport_pb2.py +0 -31
  146. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/transport_pb2_grpc.py +0 -4
  147. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/update_progress_pb2.py +0 -25
  148. build/lib/another_ayx_python_sdk/providers/amp_provider/resources/generated/update_progress_pb2_grpc.py +0 -4
  149. build/lib/another_ayx_python_sdk/providers/amp_provider/sdk_tool_runner.py +0 -115
  150. build/lib/another_ayx_python_sdk/providers/amp_provider/sdk_tool_service.py +0 -207
  151. build/lib/another_ayx_python_sdk/providers/amp_provider/sdk_tool_service_v2.py +0 -306
  152. build/lib/another_ayx_python_sdk/providers/amp_provider/utilities/__init__.py +0 -14
  153. build/lib/another_ayx_python_sdk/providers/amp_provider/utilities/constants.py +0 -22
  154. build/lib/another_ayx_python_sdk/providers/amp_provider/utilities/conversions.py +0 -55
  155. build/lib/another_ayx_python_sdk/providers/amp_provider/utilities/utilities.py +0 -63
  156. build/lib/another_ayx_python_sdk/providers/e1_provider/__init__.py +0 -36
  157. build/lib/another_ayx_python_sdk/providers/e1_provider/anchor_builder.py +0 -95
  158. build/lib/another_ayx_python_sdk/providers/e1_provider/cache_e1_sdk_import.py +0 -31
  159. build/lib/another_ayx_python_sdk/providers/e1_provider/connection_callback_strategy.py +0 -155
  160. build/lib/another_ayx_python_sdk/providers/e1_provider/connection_interface.py +0 -125
  161. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_dcm.py +0 -53
  162. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_environment.py +0 -127
  163. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_input_anchor.py +0 -51
  164. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_input_anchor_proxy.py +0 -33
  165. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_input_connection.py +0 -87
  166. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_io.py +0 -71
  167. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_output_anchor.py +0 -157
  168. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_output_anchor_proxy.py +0 -97
  169. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_plugin_driver.py +0 -63
  170. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_plugin_proxy.py +0 -363
  171. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_provider.py +0 -71
  172. build/lib/another_ayx_python_sdk/providers/e1_provider/e1_record_packet.py +0 -21
  173. build/lib/another_ayx_python_sdk/providers/e1_provider/events.py +0 -36
  174. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__init__.py +0 -37
  175. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/alteryx_engine.py +0 -105
  176. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/constants.py +0 -50
  177. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/field.py +0 -122
  178. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/output_anchor.py +0 -55
  179. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/output_anchor_manager.py +0 -31
  180. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_copier.py +0 -65
  181. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_creator.py +0 -41
  182. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_info.py +0 -134
  183. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_ref.py +0 -42
  184. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/tool.py +0 -29
  185. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/tool_execution_info.py +0 -43
  186. build/lib/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/__init__.py +0 -14
  187. build/lib/another_ayx_python_sdk/providers/e1_provider/proxies/__init__.py +0 -18
  188. build/lib/another_ayx_python_sdk/providers/e1_provider/proxies/field_proxy.py +0 -109
  189. build/lib/another_ayx_python_sdk/providers/e1_provider/proxies/record_copier_proxy.py +0 -49
  190. build/lib/another_ayx_python_sdk/providers/e1_provider/records/__init__.py +0 -23
  191. build/lib/another_ayx_python_sdk/providers/e1_provider/records/base_record_container.py +0 -47
  192. build/lib/another_ayx_python_sdk/providers/e1_provider/records/parsed_record_container.py +0 -67
  193. build/lib/another_ayx_python_sdk/providers/e1_provider/records/raw_record_container.py +0 -111
  194. build/lib/another_ayx_python_sdk/providers/e1_provider/tool_config_loader.py +0 -132
  195. build/lib/another_ayx_python_sdk/providers/e1_provider/utilities/__init__.py +0 -35
  196. build/lib/another_ayx_python_sdk/providers/e1_provider/utilities/utilities.py +0 -54
  197. build/lib/another_ayx_python_sdk/providers/e1_provider/workflow_config.py +0 -31
  198. build/lib/another_ayx_python_sdk/providers/file_provider/__init__.py +0 -32
  199. build/lib/another_ayx_python_sdk/providers/file_provider/environment.py +0 -131
  200. build/lib/another_ayx_python_sdk/providers/file_provider/file_adapter.py +0 -286
  201. build/lib/another_ayx_python_sdk/providers/file_provider/file_provider.py +0 -185
  202. build/lib/another_ayx_python_sdk/providers/file_provider/file_provider_dcm.py +0 -53
  203. build/lib/another_ayx_python_sdk/providers/file_provider/file_provider_input_anchor.py +0 -70
  204. build/lib/another_ayx_python_sdk/providers/file_provider/file_provider_input_connection.py +0 -112
  205. build/lib/another_ayx_python_sdk/providers/file_provider/file_provider_output_anchor.py +0 -114
  206. build/lib/another_ayx_python_sdk/providers/file_provider/file_record_packet.py +0 -21
  207. build/lib/another_ayx_python_sdk/providers/file_provider/iox.py +0 -56
  208. build/lib/another_ayx_python_sdk/providers/file_provider/tool_input.py +0 -104
  209. build/lib/another_ayx_python_sdk/test_harness/__init__.py +0 -14
  210. build/lib/another_ayx_python_sdk/test_harness/__main__.py +0 -120
  211. build/lib/another_ayx_python_sdk/test_harness/plugin_runner.py +0 -416
  212. build/lib/another_ayx_python_sdk/test_harness/process_lifecycle_manager.py +0 -80
  213. build/lib/another_ayx_python_sdk/test_harness/sdk_engine_service.py +0 -106
  214. build/lib/another_ayx_python_sdk/version.py +0 -8
  215. {another_ayx_python_sdk-2.4.24.dist-info → another_ayx_python_sdk-2.5.0.dist-info}/entry_points.txt +0 -0
  216. {another_ayx_python_sdk-2.4.24.dist-info → another_ayx_python_sdk-2.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,363 +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
- """Base plugin definition."""
15
- import logging
16
- import os
17
- import sys
18
- from pathlib import Path
19
- from typing import List, NoReturn, Optional, TYPE_CHECKING, Type
20
-
21
- import another_ayx_python_sdk.providers.e1_provider.mock_e1_sdk.AlteryxPythonSDK as Sdk
22
-
23
- from another_ayx_python_sdk.core.exceptions import (
24
- AnchorNotFoundException,
25
- WorkflowRuntimeError,
26
- )
27
- from another_ayx_python_sdk.core.observable_mixin import ObservableMixin
28
- from another_ayx_python_sdk.providers.e1_provider.anchor_builder import AnchorBuilder
29
- from another_ayx_python_sdk.providers.e1_provider.connection_callback_strategy import (
30
- UpdateOnlyConnectionCallbackStrategy,
31
- WorkflowRunConnectionCallbackStrategy,
32
- )
33
- from another_ayx_python_sdk.providers.e1_provider.connection_interface import (
34
- ConnectionInterface,
35
- ConnectionStatus,
36
- )
37
- from another_ayx_python_sdk.providers.e1_provider.e1_environment import E1Environment
38
- from another_ayx_python_sdk.providers.e1_provider.e1_input_anchor_proxy import (
39
- E1InputAnchorProxy,
40
- )
41
- from another_ayx_python_sdk.providers.e1_provider.e1_io import E1IO
42
- from another_ayx_python_sdk.providers.e1_provider.e1_output_anchor_proxy import (
43
- E1OutputAnchorProxy,
44
- )
45
- from another_ayx_python_sdk.providers.e1_provider.e1_plugin_driver import E1PluginDriver
46
- from another_ayx_python_sdk.providers.e1_provider.e1_provider import E1Provider
47
- from another_ayx_python_sdk.providers.e1_provider.events import (
48
- ConnectionEvents,
49
- PluginEvents,
50
- )
51
- from another_ayx_python_sdk.providers.e1_provider.tool_config_loader import ToolConfigLoader
52
- from another_ayx_python_sdk.providers.e1_provider.workflow_config import WorkflowConfiguration
53
-
54
- if TYPE_CHECKING:
55
- from another_ayx_python_sdk.core.plugin import Plugin # noqa: F401
56
- from another_ayx_python_sdk.providers.e1_provider.connection_callback_strategy import (
57
- ConnectionCallbackStrategy,
58
- )
59
-
60
-
61
- class E1PluginProxy(ObservableMixin):
62
- """Base plugin to inherit from."""
63
-
64
- __slots__ = [
65
- "tool_id",
66
- "anchor_builder",
67
- "input_anchors",
68
- "output_anchors",
69
- "workflow_config",
70
- "failure_occurred",
71
- "initialized",
72
- "record_batch_size",
73
- "plugin_driver",
74
- "engine",
75
- "user_plugin",
76
- "tool_config_loader",
77
- "_output_anchor_mgr",
78
- "__environment",
79
- "__io",
80
- "__input_connections",
81
- ]
82
-
83
- user_plugin_class: Type["Plugin"]
84
- user_plugin_directory_name: str
85
-
86
- def __init__(
87
- self,
88
- tool_id: int,
89
- alteryx_engine: Sdk.AlteryxEngine,
90
- output_anchor_mgr: Sdk.OutputAnchorManager,
91
- ):
92
- """Construct a plugin."""
93
- ObservableMixin.__init__(self)
94
- self.tool_id = tool_id
95
- self.engine = alteryx_engine
96
- self._output_anchor_mgr = output_anchor_mgr
97
- self.initialized = False
98
- self.failure_occurred = False
99
- self.__environment = E1Environment(alteryx_engine, tool_id, self)
100
- self.__io = E1IO(alteryx_engine, tool_id)
101
- self.__input_connections: List = []
102
-
103
- self.configure_logger()
104
-
105
- # These properties should be assigned before pi_init gets called
106
- self.record_batch_size: Optional[int] = None
107
-
108
- # These properties get assigned in pi_init
109
- self.anchor_builder: Optional[AnchorBuilder] = None
110
- self.workflow_config = WorkflowConfiguration("<Configuration/>")
111
- self.input_anchors: List[E1InputAnchorProxy] = []
112
- self.output_anchors: List[E1OutputAnchorProxy] = []
113
- self.plugin_driver: Optional[E1PluginDriver] = None
114
- self.tool_config_loader = ToolConfigLoader(self.user_plugin_directory_name)
115
-
116
- def pi_init(self, workflow_config_xml_string: str) -> None:
117
- """Plugin initialization from the engine."""
118
- if self.tool_name is None:
119
- raise ValueError("Name must be set before plugin can be used.")
120
-
121
- # DO NOT REMOVE NEXT LINE: The base SDK has issues with sys.path updates,
122
- # and in order to fix some dependency resolution issues we have to update it again here
123
- self.update_sys_path()
124
-
125
- self.anchor_builder = AnchorBuilder(
126
- self.tool_config_loader.get_tool_config(), self._output_anchor_mgr
127
- )
128
- self.workflow_config = WorkflowConfiguration(workflow_config_xml_string)
129
- self.input_anchors = self.anchor_builder.build_input_anchors()
130
- self.output_anchors = self.anchor_builder.build_output_anchors()
131
- self.notify_topic(PluginEvents.PLUGIN_INITIALIZED)
132
- self.plugin_driver = E1PluginDriver(
133
- self.user_plugin_class, E1Provider(self, self.workflow_config)
134
- )
135
-
136
- def pi_add_incoming_connection(
137
- self, anchor_name: str, connection_name: str
138
- ) -> ConnectionInterface:
139
- """Add incoming connection to the tool from the engine."""
140
- anchor = [a for a in self.input_anchors if a.name == anchor_name][0]
141
-
142
- connection = ConnectionInterface(self, connection_name, anchor)
143
- anchor.connections.append(connection)
144
- self._subscribe_to_connection(connection)
145
- return connection
146
-
147
- def _subscribe_to_connection(self, connection: ConnectionInterface) -> None:
148
- """Subscribe to events of interest generated by a connection."""
149
- connection.subscribe(
150
- ConnectionEvents.CONNECTION_INITIALIZED,
151
- self.callback_strategy.connection_initialized_callback,
152
- )
153
- connection.subscribe(
154
- ConnectionEvents.RECORD_RECEIVED,
155
- self.callback_strategy.record_received_callback,
156
- )
157
- connection.subscribe(
158
- ConnectionEvents.CONNECTION_CLOSED,
159
- self.callback_strategy.connection_closed_callback,
160
- )
161
- connection.subscribe(
162
- ConnectionEvents.PROGRESS_UPDATE,
163
- self.callback_strategy.update_progress_callback,
164
- )
165
-
166
- def pi_add_outgoing_connection(self, anchor_name: str) -> bool:
167
- """Register an outgoing connection from this tool."""
168
- anchor = [a for a in self.output_anchors if a.name == anchor_name][0]
169
- anchor.num_connections += 1
170
- return True
171
-
172
- def pi_push_all_records(self, n_record_limit: int) -> bool:
173
- """Push all records when no inputs are connected."""
174
- try:
175
- if len(self.required_input_anchors) == 0:
176
- if self.plugin_driver is None:
177
- raise ValueError("Record provider must be initialized.")
178
- self.plugin_driver.initialize_plugin()
179
- self.initialized = True
180
-
181
- if not self.environment.update_only:
182
- self.plugin_driver.on_complete()
183
-
184
- self.close_output_anchors()
185
- return True
186
-
187
- self.raise_missing_inputs()
188
- except Exception as e:
189
- self.handle_plugin_error(e)
190
-
191
- return False
192
-
193
- def raise_missing_inputs(self) -> NoReturn:
194
- """Send a missing incoming inputs error to Designer."""
195
- raise WorkflowRuntimeError(self.engine.xmsg("Missing Incoming Connection(s)."))
196
-
197
- def pi_close(self, b_has_errors: bool) -> None:
198
- """Cleans-up resources, flushes and closes logger's handlers."""
199
- logger = self.logger
200
- for handler in logger.handlers:
201
- logger.removeHandler(handler)
202
- handler.flush()
203
- handler.close()
204
-
205
- def configure_logger(self) -> None:
206
- """Configure the logger."""
207
- formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")
208
-
209
- file_handler = logging.FileHandler(self.log_filepath)
210
- file_handler.setFormatter(formatter)
211
- self.logger.addHandler(file_handler)
212
-
213
- stream_handler = logging.StreamHandler()
214
- stream_handler.setFormatter(formatter)
215
- self.logger.addHandler(stream_handler)
216
-
217
- self.logger.setLevel(logging.INFO)
218
-
219
- def handle_plugin_error(self, e: Exception) -> None:
220
- """Log a plugin error to the log and a generic error to Designer."""
221
- logger = self.logger
222
-
223
- if isinstance(e, WorkflowRuntimeError):
224
- logger.error(str(e))
225
- self.io.error(str(e))
226
- else:
227
- logger.exception(e)
228
- self.io.error(
229
- f"Unexpected error occurred in plugin please see log file: {str(self.log_filepath)}"
230
- )
231
- self.failure_occurred = True
232
- self.notify_topic(PluginEvents.PLUGIN_FAILURE, exception=e)
233
-
234
- def push_all_metadata(self) -> None:
235
- """Push all metadata for anchors."""
236
- for anchor in self.output_anchors:
237
- anchor.push_metadata()
238
-
239
- def close_output_anchors(self) -> None:
240
- """Close connection for all output anchors."""
241
- for anchor in self.output_anchors:
242
- anchor.close()
243
-
244
- def get_input_anchor(self, input_anchor_name: str) -> E1InputAnchorProxy:
245
- """Get an input anchor by name."""
246
- try:
247
- return [
248
- anchor
249
- for anchor in self.input_anchors
250
- if anchor.name == input_anchor_name
251
- ][0]
252
- except IndexError:
253
- raise AnchorNotFoundException(f"{input_anchor_name} not found.")
254
-
255
- def get_output_anchor(self, output_anchor_name: str) -> E1OutputAnchorProxy:
256
- """Get an output anchor by name."""
257
- try:
258
- return [
259
- anchor
260
- for anchor in self.output_anchors
261
- if anchor.name == output_anchor_name
262
- ][0]
263
- except IndexError:
264
- raise AnchorNotFoundException(f"{output_anchor_name} not found.")
265
-
266
- def update_sys_path(self) -> None:
267
- """
268
- Update the sys.path to fix SDK issues.
269
-
270
- The sys.path must be updated to include:
271
- - The venv path
272
- - The tool directory
273
-
274
- in order for inline imports to work due to base SDK sys.path manipulation issues.
275
- """
276
- install_metadata = self.tool_config_loader.get_tool_install_metadata()
277
-
278
- for path in [
279
- install_metadata.venv_path / "Lib" / "site-packages",
280
- install_metadata.install_path,
281
- ]:
282
- sys.path.append(str(path))
283
-
284
- @property
285
- def tool_name(self) -> str:
286
- """Getter for the tool name."""
287
- return self.user_plugin_class.__name__
288
-
289
- @property
290
- def callback_strategy(self) -> "ConnectionCallbackStrategy":
291
- """Generate the callback strategy for the tool."""
292
- return (
293
- UpdateOnlyConnectionCallbackStrategy(self)
294
- if self.environment.update_only
295
- else WorkflowRunConnectionCallbackStrategy(self)
296
- )
297
-
298
- @property
299
- def log_directory(self) -> Path:
300
- """Get the log directory."""
301
- if sys.platform == "win32":
302
- log_directory = Path(os.environ["localappdata"]) / "Alteryx" / "Log"
303
- else:
304
- # Required for CI/CD pipelines running in linux environment
305
- # + future proofing
306
- log_directory = Path.home() / ".Alteryx" / "Log"
307
-
308
- log_directory.mkdir(parents=True, exist_ok=True)
309
- return log_directory
310
-
311
- @property
312
- def log_filepath(self) -> Path:
313
- """Get the log filename."""
314
- return self.log_directory / f"{self.tool_name}{self.tool_id}.log"
315
-
316
- @property
317
- def all_required_connections_connected(self) -> bool:
318
- """Getter that indicates if all required connections are connected."""
319
- return all(
320
- [len(anchor.connections) > 0 for anchor in self.required_input_anchors]
321
- )
322
-
323
- @property
324
- def all_connections_initialized(self) -> bool:
325
- """Getter that indicates if all input connections are initialized."""
326
- return all(
327
- [
328
- connection.status != ConnectionStatus.CREATED
329
- for anchor in self.input_anchors
330
- for connection in anchor.connections
331
- ]
332
- )
333
-
334
- @property
335
- def all_connections_closed(self) -> bool:
336
- """Getter that indicates if all input connections are closed."""
337
- return all(
338
- [
339
- connection.status == ConnectionStatus.CLOSED
340
- for anchor in self.input_anchors
341
- for connection in anchor.connections
342
- ]
343
- )
344
-
345
- @property
346
- def required_input_anchors(self) -> List[E1InputAnchorProxy]:
347
- """Get the list of required input anchors for this tool."""
348
- return [anchor for anchor in self.input_anchors if not anchor.optional]
349
-
350
- @property
351
- def logger(self) -> logging.Logger:
352
- """Get logger."""
353
- return logging.getLogger(f"{self.tool_name}{self.tool_id}")
354
-
355
- @property
356
- def io(self) -> E1IO:
357
- """Get the IO object from this provider."""
358
- return self.__io
359
-
360
- @property
361
- def environment(self) -> E1Environment:
362
- """Get the Environment object from this provider."""
363
- return self.__environment
@@ -1,71 +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
- """E1 SDK Provider Class."""
15
- from logging import Logger
16
- from typing import Any, TYPE_CHECKING
17
-
18
- from another_ayx_python_sdk.core.doc_utilities import inherit_docs
19
- from another_ayx_python_sdk.core.provider_base import ProviderBase
20
- from another_ayx_python_sdk.providers.e1_provider import E1InputAnchor
21
- from another_ayx_python_sdk.providers.e1_provider.e1_output_anchor import E1OutputAnchor
22
-
23
- if TYPE_CHECKING:
24
- from another_ayx_python_sdk.providers.e1_provider.workflow_config import (
25
- WorkflowConfiguration,
26
- )
27
- from another_ayx_python_sdk.providers.e1_provider.e1_environment import E1Environment
28
- from another_ayx_python_sdk.providers.e1_provider.e1_plugin_proxy import E1PluginProxy
29
- from another_ayx_python_sdk.providers.e1_provider.e1_io import E1IO
30
- from another_ayx_python_sdk.providers.e1_provider.e1_dcm import E1ProviderDCM
31
-
32
-
33
- @inherit_docs
34
- class E1Provider(ProviderBase):
35
- """Provides resources generated from the E1 Python SDK."""
36
-
37
- def __init__(
38
- self, plugin_proxy: "E1PluginProxy", workflow_config: "WorkflowConfiguration"
39
- ):
40
- """Construct the E1Provider."""
41
- self._plugin_proxy = plugin_proxy
42
- self._workflow_config = workflow_config
43
-
44
- @property
45
- def tool_config(self) -> Any:
46
- """Get config XML."""
47
- return self._workflow_config.data
48
-
49
- @property
50
- def logger(self) -> Logger: # noqa: D102
51
- return self._plugin_proxy.logger
52
-
53
- @property
54
- def io(self) -> "E1IO": # noqa: D102
55
- return self._plugin_proxy.io
56
-
57
- @property
58
- def dcm(self) -> "E1ProviderDCM": # noqa: D102
59
- return self._plugin_proxy.dcm
60
-
61
- @property
62
- def environment(self) -> "E1Environment": # noqa: D102
63
- return self._plugin_proxy.environment
64
-
65
- def get_input_anchor(self, name: str) -> E1InputAnchor: # noqa: D102
66
- return E1InputAnchor(self._plugin_proxy.get_input_anchor(name))
67
-
68
- def get_output_anchor(self, name: str) -> E1OutputAnchor: # noqa: D102
69
- return E1OutputAnchor(
70
- self._plugin_proxy.get_output_anchor(name), self._plugin_proxy.engine
71
- )
@@ -1,21 +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
- """E1 SDK Record Packet Definition."""
15
- from another_ayx_python_sdk.core.doc_utilities import inherit_docs
16
- from another_ayx_python_sdk.core.record_packet import RecordPacket
17
-
18
-
19
- @inherit_docs
20
- class E1RecordPacket(RecordPacket):
21
- """E1 SDK Record Packet definition."""
@@ -1,36 +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
- """Observable event definitions."""
15
- from enum import Enum
16
-
17
-
18
- class ConnectionEvents(Enum):
19
- """Events for connection objects."""
20
-
21
- CONNECTION_INITIALIZED = "connection_initialized"
22
- RECORD_RECEIVED = "record_received"
23
- PROGRESS_UPDATE = "progress_update"
24
- CONNECTION_CLOSED = "connection_closed"
25
-
26
-
27
- class PluginEvents:
28
- """Events for plugin objects."""
29
-
30
- PLUGIN_INITIALIZED = "plugin_initialized"
31
- PI_INIT = "pi_init"
32
- INCOMING_CONNECTION_ADDED = "pi_add_incoming_connection"
33
- OUTGOING_CONNECTION_ADDED = "pi_add_outgoing_connection"
34
- PI_CLOSE = "pi_close"
35
- PI_PUSH_ALL_RECORDS = "pi_push_all_records"
36
- PLUGIN_FAILURE = "plugin_failure"
@@ -1,37 +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
- """Mocks for testing."""
15
- from .alteryx_engine import AlteryxEngine
16
- from .constants import EngineMessageType, FieldType, Status
17
- from .field import Field
18
- from .output_anchor import OutputAnchor
19
- from .output_anchor_manager import OutputAnchorManager
20
- from .record_copier import RecordCopier
21
- from .record_creator import RecordCreator
22
- from .record_info import RecordInfo
23
- from .record_ref import RecordRef
24
-
25
- __all__ = [
26
- "AlteryxEngine",
27
- "EngineMessageType",
28
- "FieldType",
29
- "Status",
30
- "Field",
31
- "RecordInfo",
32
- "RecordCopier",
33
- "RecordCreator",
34
- "RecordRef",
35
- "OutputAnchor",
36
- "OutputAnchorManager",
37
- ]
@@ -1,105 +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
- """Mock alteryx engine class definition."""
15
- from collections import defaultdict
16
- from typing import DefaultDict, Dict, Iterable
17
-
18
- import deprecation
19
-
20
- from .constants import EngineMessageType, Status
21
- from .tool_execution_info import ToolExecutionInfo
22
-
23
-
24
- class AlteryxEngine:
25
- """Alteryx Engine mock."""
26
-
27
- def __init__(self) -> None:
28
- """Construct an engine."""
29
- self.init_vars: Dict[str, str] = {
30
- "ActionApplies": "False",
31
- "AllowDesktopInteraction": "False",
32
- "DefaultDir": ".",
33
- "EnablePerformanceProfiling": "False",
34
- "NumThreads": "1",
35
- "OutputRecordCounts": "False",
36
- "RunMode": "Standard",
37
- "RunningAsWizard": "False",
38
- "RuntimeDataPath": ".",
39
- "SerialNumber": "MockSerial#123",
40
- "SettingsPath": ".",
41
- "TempPath": "./temp_dir/",
42
- "UpdateMode": "",
43
- "UpdateOnly": "False",
44
- "Version": "2020.1",
45
- }
46
-
47
- self.tool_execution_info: DefaultDict[int, ToolExecutionInfo] = defaultdict(
48
- ToolExecutionInfo
49
- )
50
-
51
- @staticmethod
52
- def create_temp_file_name(extension: str = "tmp", options: int = 0) -> str:
53
- """Create temp file."""
54
- import tempfile
55
-
56
- return tempfile.NamedTemporaryFile(suffix="." + extension).name
57
-
58
- @deprecation.deprecated(
59
- deprecated_in="1.0.3",
60
- removed_in="2.0.0",
61
- details="Use functions of provider's dcm property instead",
62
- ) # type: ignore
63
- def decrypt_password(self, encrypted_password: str, mode: int) -> str:
64
- """Decrypt password."""
65
- if mode == 0:
66
- return encrypted_password + "_decrypted"
67
- raise NotImplementedError()
68
-
69
- def get_constant(self, tool_id: int, which: int) -> None:
70
- """Get constant."""
71
- raise NotImplementedError()
72
-
73
- def get_init_var(self, tool_id: int, var_name: str) -> str:
74
- """Get initialization variable."""
75
- return self.init_vars[var_name]
76
-
77
- def output_message(self, tool_id: int, status: int, message: str) -> int:
78
- """Output message."""
79
- execution_info = self.tool_execution_info[tool_id]
80
-
81
- {
82
- EngineMessageType.error: execution_info.add_error,
83
- EngineMessageType.warning: execution_info.add_warning,
84
- EngineMessageType.info: execution_info.add_info,
85
- Status.update_output_config_xml: execution_info.set_output_workflow_xml,
86
- }[status](message)
87
-
88
- return 0
89
-
90
- def output_tool_progress(self, tool_id: int, percent_progress: float) -> None:
91
- """Output tool progress."""
92
- self.tool_execution_info[tool_id].progress = percent_progress
93
-
94
- def pre_sort(
95
- self,
96
- incoming_connection_type: str,
97
- incoming_connection_name: str,
98
- sort_info: str,
99
- ) -> None:
100
- """Presort records."""
101
- raise NotImplementedError()
102
-
103
- def xmsg(self, msg: str, *args: Iterable[str]) -> str:
104
- """Translate a message string."""
105
- return msg
@@ -1,50 +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
- """SDK constants."""
15
-
16
-
17
- class Status:
18
- """Status constants."""
19
-
20
- update_output_config_xml = 0
21
-
22
-
23
- class EngineMessageType:
24
- """Engine output message types."""
25
-
26
- error = 100
27
- warning = 101
28
- info = 102
29
-
30
-
31
- class FieldType:
32
- """SDK field types."""
33
-
34
- blob = "blob"
35
- byte = "byte"
36
- int16 = "int16"
37
- int32 = "int32"
38
- int64 = "int64"
39
- float = "float"
40
- double = "double"
41
- date = "date"
42
- time = "time"
43
- datetime = "datetime"
44
- bool = "bool"
45
- string = "string"
46
- v_string = "v_string"
47
- v_wstring = "v_wstring"
48
- wstring = "wstring"
49
- fixeddecimal = "fixeddecimal"
50
- spatialobj = "spatialobj"