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,133 +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
- """Record packet building utilities for converting between core and protobuf."""
15
- from typing import List, Tuple
16
-
17
- from another_ayx_python_sdk.core.constants import NULL_VALUE_PLACEHOLDER
18
- from another_ayx_python_sdk.core.metadata import Metadata
19
- from another_ayx_python_sdk.core.record_packet_base import RecordPacketBase
20
- from another_ayx_python_sdk.providers.amp_provider.amp_record_packet import AMPRecordPacket
21
- from another_ayx_python_sdk.providers.amp_provider.builders.record_builder import RecordBuilder
22
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.record_packet_pb2 import (
23
- RecordPacket as ProtobufRecordPacket,
24
- )
25
-
26
-
27
- class RecordPacketBuilder:
28
- """Utilities for converting record packets between protobuf and core objects."""
29
-
30
- record_builder = RecordBuilder()
31
-
32
- @classmethod
33
- def from_protobuf(
34
- cls, protobuf_record_packet: ProtobufRecordPacket, metadata: Metadata
35
- ) -> Tuple[RecordPacketBase, int, float]:
36
- """
37
- Convert a protobuf to a record packet.
38
-
39
- Parameters
40
- ----------
41
- protobuf_record_packet
42
- Protobuf representation of a record packet.
43
- metadata
44
- Metadata associated with the record packet.
45
-
46
- Returns
47
- -------
48
- Tuple[RecordPacketBase, int, float]
49
- AMPRecordPacket representation of the protobuf record packet, sequence, and progress
50
- """
51
- import pandas as pd
52
-
53
- parsed_records = [
54
- cls.record_builder.from_protobuf(protobuf_record)
55
- for protobuf_record in protobuf_record_packet.records
56
- ]
57
-
58
- return (
59
- AMPRecordPacket(
60
- metadata=metadata,
61
- df=pd.DataFrame(
62
- parsed_records, columns=[field.name for field in metadata]
63
- ),
64
- ),
65
- protobuf_record_packet.sequence,
66
- protobuf_record_packet.progress,
67
- )
68
-
69
- @classmethod
70
- def to_protobuf(
71
- cls, amp_record_packet: RecordPacketBase, sequence: int, progress: float
72
- ) -> List["ProtobufRecordPacket"]:
73
- """
74
- Convert a record packet to a protobuf.
75
-
76
- Parameters
77
- ----------
78
- amp_record_packet
79
- Protobuf representation of a record packet.
80
- sequence
81
- Position that the current record packet would be in,
82
- out of all record packets. (First, second, third, etc.)
83
- progress
84
- Overall progress (ranging from 0.0 to 1.0)
85
-
86
- Returns
87
- -------
88
- List[ProtobufRecordPacket]
89
- A list of ProtobufRecordPackets. If the passed in AMPRecordPacket would surpass 64MB,
90
- then there will be more than one element in list
91
- """
92
- df = amp_record_packet.to_dataframe()
93
- df.fillna(NULL_VALUE_PLACEHOLDER, inplace=True)
94
-
95
- metadata = amp_record_packet.metadata
96
-
97
- protobuf_records = [
98
- cls.record_builder.to_protobuf(record, metadata)
99
- for record in df.itertuples(index=False)
100
- ]
101
-
102
- size_limit = 64 * (2**20) # 64 MB
103
- curr_size = 0
104
-
105
- pb_record_packets = []
106
- current_records = []
107
-
108
- for record in protobuf_records:
109
- record_size = len(record.data)
110
- if curr_size + record_size > size_limit:
111
- pb_record_packets.append(
112
- ProtobufRecordPacket(
113
- sequence=sequence,
114
- progress=progress,
115
- records=current_records,
116
- )
117
- )
118
- sequence += 1
119
- current_records = []
120
- curr_size = 0
121
-
122
- current_records.append(record)
123
- curr_size += record_size
124
-
125
- if current_records:
126
- pb_record_packets.append(
127
- ProtobufRecordPacket(
128
- sequence=sequence,
129
- progress=progress,
130
- records=current_records,
131
- )
132
- )
133
- return pb_record_packets
@@ -1,59 +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
- """Tool configuration builder file."""
15
- from typing import Any, Dict
16
-
17
- import xmltodict
18
-
19
-
20
- class ToolConfigBuilder:
21
- """Builder class for converting the tool configuration XML to and from a dict."""
22
-
23
- @staticmethod
24
- def to_xml(config_dict: Dict[str, Any]) -> str:
25
- """
26
- Convert a tool configuration dictionary to the expected XML formatted string.
27
-
28
- Parameters
29
- ----------
30
- config_dict
31
- The dictionary representation of the tool configuration XML
32
-
33
- Returns
34
- -------
35
- str
36
- Tool configuration unparsed into an XML string
37
- """
38
- return xmltodict.unparse(
39
- {"Configuration": config_dict}, short_empty_elements=True
40
- )
41
-
42
- @staticmethod
43
- def from_xml(xml_string: str) -> Dict[str, Any]:
44
- """
45
- Convert a tool configuration XML to the expected dictionary.
46
-
47
- Parameters
48
- ----------
49
- xml_string
50
- The tool configuration XML string to be converted into a Python dict
51
-
52
- Returns
53
- -------
54
- dict
55
- The dictionary representation of the passed in XML
56
- """
57
- return dict(
58
- xmltodict.parse(xml_string, strip_whitespace=False)["Configuration"] or {}
59
- )
@@ -1,197 +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
- # type: ignore
15
- """READ cert/private key from windows STORE."""
16
-
17
-
18
- from ctypes import (
19
- POINTER,
20
- Structure,
21
- WinDLL,
22
- c_char_p,
23
- c_ulong,
24
- c_void_p,
25
- cast,
26
- create_string_buffer,
27
- pointer,
28
- string_at,
29
- )
30
- from ctypes.wintypes import BYTE, DWORD, LPCWSTR
31
- from typing import Optional, Tuple
32
-
33
- import wincertstore as wcs
34
-
35
- if wcs.USE_LAST_ERROR:
36
- Ncrypt = WinDLL("Ncrypt.dll", use_last_error=True)
37
- else:
38
- Ncrypt = WinDLL("Ncrypt.dll")
39
-
40
- NCRYPT_KEY_HANDLE = c_void_p
41
-
42
- NCRYPT_PROV_HANDLE = c_void_p
43
-
44
- NCryptOpenStorageProvider = Ncrypt.NCryptOpenStorageProvider
45
- NCryptOpenStorageProvider.argtypes = [POINTER(NCRYPT_PROV_HANDLE), LPCWSTR, DWORD]
46
- NCryptOpenStorageProvider.restype = DWORD
47
-
48
- MS_KEY_STORAGE_PROVIDER = "Microsoft Software Key Storage Provider"
49
-
50
- NCryptOpenKey = Ncrypt.NCryptOpenKey
51
- NCryptOpenKey.argtypes = [
52
- NCRYPT_PROV_HANDLE,
53
- POINTER(NCRYPT_KEY_HANDLE),
54
- LPCWSTR,
55
- DWORD,
56
- DWORD,
57
- ]
58
- NCryptOpenKey.restype = DWORD
59
-
60
-
61
- BCRYPT_RSAFULLPRIVATE_BLOB = "RSAFULLPRIVATEBLOB"
62
- CNG_RSA_PRIVATE_KEY_BLOB = 83
63
- SZOID_RSA_RSA = "1.2.840.113549.1.1.1"
64
- X509_ASN_ENCODING = 1
65
- CRYPT_ENCODE_ALLOC_FLAG = 0x8000
66
- PKCS_PRIVATE_KEY_INFO = 44
67
-
68
- NCryptExportKey = Ncrypt.NCryptExportKey
69
- NCryptExportKey.argtypes = [
70
- NCRYPT_KEY_HANDLE,
71
- NCRYPT_KEY_HANDLE,
72
- LPCWSTR,
73
- c_void_p,
74
- POINTER(BYTE),
75
- DWORD,
76
- POINTER(DWORD),
77
- DWORD,
78
- ]
79
- NCryptExportKey.restype = DWORD
80
-
81
-
82
- class CryptPrivateKeyInfo(Structure):
83
- """Docstring."""
84
-
85
- __slots__ = ()
86
- _fields_ = [
87
- ("Version", DWORD),
88
- # CRYPT_ALGORITHM_IDENTIFIER/Algorithm
89
- ("pszObjId", c_char_p),
90
- # CRYPT_ALGORITHM_IDENTIFIER.CRYPT_OBJID_BLOB
91
- ("algoCbData", DWORD),
92
- ("algoPbData", POINTER(BYTE)),
93
- # CRYPT_DER_BLOB/PrivateKey
94
- ("pkeyCbData", DWORD),
95
- ("pkeyPbData", POINTER(BYTE)),
96
- ("pAttributes", c_void_p),
97
- ]
98
-
99
-
100
- CryptEncodeObjectEx = wcs.crypt32.CryptEncodeObjectEx
101
- CryptEncodeObjectEx.argtypes = [
102
- DWORD,
103
- c_void_p,
104
- c_void_p,
105
- DWORD,
106
- c_void_p,
107
- POINTER(c_void_p),
108
- POINTER(DWORD),
109
- ]
110
- CryptEncodeObjectEx.restype = DWORD
111
-
112
-
113
- class PrivateKeyPem(wcs.ContextStruct):
114
- """Docstring."""
115
-
116
- cert_type = "PRIVATE KEY"
117
- # WARNING: please DO NOT CHANGE THIS VARIABLE NAME: it is used in wincertstore
118
- dwCertEncodingType = 0 # noqa
119
- # End warning
120
-
121
- def __init__(self, pb_key: c_void_p, cb_key: c_ulong) -> None:
122
- self.pb_key = pb_key
123
- self.cb_key = cb_key
124
-
125
- def get_encoded(self) -> bytes:
126
- """Docstring."""
127
- return string_at(self.pb_key, self.cb_key.value)
128
-
129
-
130
- def read_windows_store_chain(cert_name: str) -> Optional[Tuple[bytes, bytes]]:
131
- """Docstring."""
132
- with wcs.CertSystemStore("MY") as store:
133
- for cert in store.itercerts(usage=wcs.SERVER_AUTH):
134
- if (
135
- cert.get_name() == "localhost"
136
- and cert.get_name(wcs.CERT_NAME_FRIENDLY_DISPLAY_TYPE) == cert_name
137
- ):
138
- certpem = cert.get_pem()
139
- provider_handle = NCRYPT_PROV_HANDLE()
140
- NCryptOpenStorageProvider(provider_handle, MS_KEY_STORAGE_PROVIDER, 0)
141
- key_handle = NCRYPT_KEY_HANDLE()
142
- NCryptOpenKey(provider_handle, key_handle, cert_name, 0, 0)
143
- cb_key = DWORD()
144
- NCryptExportKey(
145
- key_handle,
146
- None,
147
- BCRYPT_RSAFULLPRIVATE_BLOB,
148
- None,
149
- None,
150
- 0,
151
- cb_key,
152
- 0,
153
- )
154
- pb_key = create_string_buffer(cb_key.value)
155
- NCryptExportKey(
156
- key_handle,
157
- None,
158
- BCRYPT_RSAFULLPRIVATE_BLOB,
159
- None,
160
- cast(pb_key, POINTER(BYTE)),
161
- cb_key.value,
162
- cb_key,
163
- 0,
164
- )
165
-
166
- private_key_info = CryptPrivateKeyInfo()
167
- private_key_info.Version = 0
168
- private_key_info.pszObjId = SZOID_RSA_RSA.encode("utf-8")
169
-
170
- enc1_cb_key = DWORD()
171
- enc1_pb_key = c_void_p()
172
- CryptEncodeObjectEx(
173
- X509_ASN_ENCODING,
174
- cast(CNG_RSA_PRIVATE_KEY_BLOB, c_void_p),
175
- pb_key,
176
- CRYPT_ENCODE_ALLOC_FLAG,
177
- None,
178
- enc1_pb_key,
179
- enc1_cb_key,
180
- )
181
- private_key_info.pkeyCbData = enc1_cb_key
182
- private_key_info.pkeyPbData = cast(enc1_pb_key, POINTER(BYTE))
183
- enc_cb_key = DWORD()
184
- enc_pb_key = c_void_p()
185
- CryptEncodeObjectEx(
186
- X509_ASN_ENCODING,
187
- cast(PKCS_PRIVATE_KEY_INFO, c_void_p),
188
- pointer(private_key_info),
189
- CRYPT_ENCODE_ALLOC_FLAG,
190
- None,
191
- enc_pb_key,
192
- enc_cb_key,
193
- )
194
- pkp = PrivateKeyPem(enc_pb_key, enc_cb_key)
195
- keypem = pkp.get_pem()
196
- return bytes(keypem, "utf-8"), bytes(certpem, "utf-8")
197
- return None
@@ -1,18 +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
- """Implementations of TransportBase."""
15
- from .amp_transport import AmpStreamTransport
16
- from .transport_base import TransportBase
17
-
18
- __all__ = ["TransportBase", "AmpStreamTransport"]
@@ -1,127 +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
- """Arrows stream formatted transport interface."""
15
- import logging
16
- from collections import defaultdict
17
- from typing import Generator, TYPE_CHECKING, Tuple
18
-
19
- from another_ayx_python_sdk.providers.amp_provider.data_transport.transport_base import (
20
- TransportBase,
21
- )
22
- from another_ayx_python_sdk.providers.amp_provider.grpc_helpers.record_transfer_msgs import (
23
- new_record_transfer_out_msg,
24
- )
25
-
26
- import pyarrow as pa
27
-
28
- if TYPE_CHECKING:
29
- from another_ayx_python_sdk.providers.amp_provider.resources.generated.sdk_tool_service_v2_pb2 import ( # noqa: F401
30
- RecordTransferIn,
31
- RecordTransferOut,
32
- )
33
-
34
- # Size of stream chunks, in n bytes.
35
- # Desired 1MB default is causing some failures. Fairly sure this is on the slicing
36
- # logic, and just needs better bounds to check so arrow doesn't freak out.
37
- # Boxing that for another ticket after bigger stuff is done, though.
38
- DEFAULT_CHUNK_SIZE = 1 * (10**6)
39
-
40
-
41
- class AmpStreamTransport(TransportBase):
42
- """Transport interface to deliver data in arrows stream format."""
43
-
44
- logger = logging.getLogger()
45
-
46
- def __init__(self) -> None:
47
- self.stream_buffer: dict = defaultdict(dict)
48
- self.chunk_size = DEFAULT_CHUNK_SIZE
49
- self.incomplete_streams = 0
50
-
51
- # TODO: Rename this to something better for Transport interface.
52
- def send_record(
53
- self,
54
- record_batch: "pa.RecordBatch",
55
- anchor_name: str,
56
- connection_name: str = "",
57
- ) -> Generator["RecordTransferOut", None, None]:
58
- """Convert a given record batch into a sequence of RecordTransferOut msgs."""
59
- stream = self.get_rec_stream(record_batch)
60
- for chunk, end_of_chunk in self.iter_stream(stream):
61
- record_out = {
62
- "anchor_name": anchor_name,
63
- "data": chunk,
64
- "connection_name": connection_name,
65
- "end_of_chunk": end_of_chunk,
66
- }
67
- yield new_record_transfer_out_msg(record_out, "outgoing_records")
68
-
69
- def get_rec_stream(self, record_batch: "pa.RecordBatch") -> "pa.Buffer":
70
- """Get an arrows formatted stream buffer."""
71
- try:
72
- sink = pa.BufferOutputStream()
73
- writer = pa.ipc.new_stream(sink, record_batch.schema)
74
- writer.write(record_batch)
75
- writer.close()
76
- except Exception as e:
77
- self.logger.error(repr(e))
78
- raise e
79
- return sink.getvalue()
80
-
81
- def iter_stream(
82
- self, stream: "pa.Buffer"
83
- ) -> Generator[Tuple[bytes, bool], None, None]:
84
- """Break up a given stream by set chunk size."""
85
- buf = pa.BufferReader(stream)
86
- end_of_chunk = False
87
- while not end_of_chunk:
88
- end_of_chunk = buf.tell() + self.chunk_size >= buf.size()
89
- chunk = buf.read() if end_of_chunk else buf.read(self.chunk_size)
90
- yield (chunk, end_of_chunk)
91
-
92
- def _unpack_and_append_rec_in_payload(self, record_in: "RecordTransferIn") -> None:
93
- anchor_name = record_in.incoming_records.anchor_name
94
- connection_name = record_in.incoming_records.connection_name
95
- data = record_in.incoming_records.data
96
- if not self.stream_buffer[anchor_name].get(connection_name):
97
- self.incomplete_streams += 1
98
- self.stream_buffer[anchor_name][connection_name] = pa.BufferOutputStream()
99
- self.stream_buffer[anchor_name][connection_name].write(data)
100
-
101
- def _handle_completed_stream(self, record_in: "RecordTransferIn") -> None:
102
- self.logger.debug("Stream terminater received, completing batch.")
103
- anchor_name = record_in.incoming_records.anchor_name
104
- connection_name = record_in.incoming_records.connection_name
105
- data = self.stream_buffer[anchor_name][connection_name]
106
- try:
107
- reader = pa.ipc.open_stream(data.getvalue())
108
- self.stream_buffer[anchor_name][connection_name] = pa.BufferOutputStream()
109
- self.incomplete_streams -= 1
110
- return reader.read_all()
111
- except pa.ArrowException as ae:
112
- self.logger.error(
113
- "Exception caught reading completed batch chunk: %s", repr(ae)
114
- )
115
- raise ae
116
-
117
- def receive_record(self, record_in_msg: "RecordTransferIn") -> "pa.Table":
118
- """
119
- Receive RecordTransferIn messages.
120
-
121
- Returns None if the data received is only a chunk of a full record.
122
- Returns pa.Table if `end_of_chunk` is True.
123
- """
124
- self._unpack_and_append_rec_in_payload(record_in_msg)
125
- if record_in_msg.incoming_records.end_of_chunk:
126
- return self._handle_completed_stream(record_in_msg)
127
- return None
@@ -1,35 +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
- """
15
- Transport implementation.
16
-
17
- Transports provide the functionality for data management and IO.
18
- An implementation should provide an independant way to receive, parse,
19
- serialize, and send data to another service.
20
- """
21
- from abc import ABC, abstractmethod
22
-
23
-
24
- class TransportBase(ABC):
25
- """Transport Manager for the tool."""
26
-
27
- @abstractmethod
28
- def send_record(self) -> None:
29
- """Push data to destination."""
30
- raise NotImplementedError()
31
-
32
- @abstractmethod
33
- def receive_record(self) -> None:
34
- """Pull data from source."""
35
- raise NotImplementedError()
@@ -1,14 +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
- """gRPC Helper Functions."""