another-ayx-python-sdk 2.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. another_ayx_python_sdk-2.4.2/LICENSE +21 -0
  2. another_ayx_python_sdk-2.4.2/PKG-INFO +63 -0
  3. another_ayx_python_sdk-2.4.2/README.md +2 -0
  4. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/__init__.py +14 -0
  5. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/__main__.py +470 -0
  6. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/assets/workspace_files/__init__.py +14 -0
  7. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/assets/workspace_files/setup.py +38 -0
  8. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/cli/__init__.py +14 -0
  9. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/cli/utilities.py +103 -0
  10. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/cli/workspace.py +266 -0
  11. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/cli/yxi_builder.py +125 -0
  12. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/cli/yxi_installer.py +45 -0
  13. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__init__.py +51 -0
  14. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/__init__.cpython-310.pyc +0 -0
  15. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/constants.cpython-310.pyc +0 -0
  16. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/dcm_base.cpython-310.pyc +0 -0
  17. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/doc_utilities.cpython-310.pyc +0 -0
  18. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/environment_base.cpython-310.pyc +0 -0
  19. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/field.cpython-310.pyc +0 -0
  20. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/input_anchor_base.cpython-310.pyc +0 -0
  21. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/input_connection_base.cpython-310.pyc +0 -0
  22. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/io_base.cpython-310.pyc +0 -0
  23. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/metadata.cpython-310.pyc +0 -0
  24. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/output_anchor_base.cpython-310.pyc +0 -0
  25. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/plugin.cpython-310.pyc +0 -0
  26. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/plugin_v2.cpython-310.pyc +0 -0
  27. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/provider_base.cpython-310.pyc +0 -0
  28. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/record_packet.cpython-310.pyc +0 -0
  29. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/record_packet_base.cpython-310.pyc +0 -0
  30. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/__pycache__/register_plugin.cpython-310.pyc +0 -0
  31. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/constants.py +25 -0
  32. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/dcm_base.py +115 -0
  33. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/doc_utilities.py +40 -0
  34. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/environment_base.py +213 -0
  35. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/exceptions.py +59 -0
  36. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/field.py +183 -0
  37. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/input_anchor_base.py +86 -0
  38. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/input_connection_base.py +206 -0
  39. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/io_base.py +139 -0
  40. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/metadata.py +173 -0
  41. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/observable_mixin.py +90 -0
  42. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/output_anchor_base.py +151 -0
  43. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/plugin.py +108 -0
  44. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/plugin_v2.py +97 -0
  45. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/provider_base.py +125 -0
  46. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/proxy_requests.py +51 -0
  47. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/record_packet.py +88 -0
  48. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/record_packet_base.py +123 -0
  49. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/register_plugin.py +127 -0
  50. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/testing.py +191 -0
  51. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/core/utils.py +146 -0
  52. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkInput/main.py +89 -0
  53. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkMultiConnectionsMultiOutputAnchor/__pycache__/main.cpython-310.pyc +0 -0
  54. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkMultiConnectionsMultiOutputAnchor/main.py +102 -0
  55. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkMultipleInputAnchors/AyxSdkMultipleInputAnchorsConfig.xml +24 -0
  56. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkMultipleInputAnchors/__pycache__/main.cpython-310.pyc +0 -0
  57. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkMultipleInputAnchors/main.py +84 -0
  58. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkMultipleOutputAnchors/__pycache__/main.cpython-310.pyc +0 -0
  59. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkMultipleOutputAnchors/main.py +96 -0
  60. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkOptionalInputAnchor/__pycache__/main.cpython-310.pyc +0 -0
  61. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkOptionalInputAnchor/main.py +94 -0
  62. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkOutput/__pycache__/main.cpython-310.pyc +0 -0
  63. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkOutput/main.py +78 -0
  64. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkPassThrough/AyxSdkPassThrough.xml +23 -0
  65. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkPassThrough/__pycache__/main.cpython-310.pyc +0 -0
  66. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/AyxSdkPassThrough/main.py +82 -0
  67. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/examples/requirements.txt +18 -0
  68. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/__init__.py +14 -0
  69. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/__pycache__/__init__.cpython-310.pyc +0 -0
  70. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__init__.py +41 -0
  71. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__main__.py +85 -0
  72. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/__init__.cpython-310.pyc +0 -0
  73. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/__main__.cpython-310.pyc +0 -0
  74. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_dcm.cpython-310.pyc +0 -0
  75. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_driver.cpython-310.pyc +0 -0
  76. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_environment.cpython-310.pyc +0 -0
  77. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_environment_v2.cpython-310.pyc +0 -0
  78. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_input_anchor.cpython-310.pyc +0 -0
  79. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_input_connection.cpython-310.pyc +0 -0
  80. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_io.cpython-310.pyc +0 -0
  81. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_io_components.cpython-310.pyc +0 -0
  82. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_output_anchor.cpython-310.pyc +0 -0
  83. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_provider.cpython-310.pyc +0 -0
  84. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_provider_v2.cpython-310.pyc +0 -0
  85. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_record_packet.cpython-310.pyc +0 -0
  86. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/cng_certs.cpython-310.pyc +0 -0
  87. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/grpc_util.cpython-310.pyc +0 -0
  88. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/logger_config.cpython-310.pyc +0 -0
  89. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/plugin_class_loader.cpython-310.pyc +0 -0
  90. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/sdk_tool_runner.cpython-310.pyc +0 -0
  91. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/sdk_tool_service.cpython-310.pyc +0 -0
  92. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/__pycache__/sdk_tool_service_v2.cpython-310.pyc +0 -0
  93. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_dcm.py +58 -0
  94. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_driver.py +358 -0
  95. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_environment.py +73 -0
  96. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_environment_v2.py +278 -0
  97. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_input_anchor.py +73 -0
  98. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_input_connection.py +132 -0
  99. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_io.py +64 -0
  100. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_io_components.py +407 -0
  101. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_output_anchor.py +107 -0
  102. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_provider.py +68 -0
  103. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_provider_v2.py +128 -0
  104. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/amp_record_packet.py +21 -0
  105. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__init__.py +32 -0
  106. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/__init__.cpython-310.pyc +0 -0
  107. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/input_anchor_builder.cpython-310.pyc +0 -0
  108. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/input_connection_builder.cpython-310.pyc +0 -0
  109. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/metadata_builder.cpython-310.pyc +0 -0
  110. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/output_anchor_builder.cpython-310.pyc +0 -0
  111. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/packers.cpython-310.pyc +0 -0
  112. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/record_builder.cpython-310.pyc +0 -0
  113. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/record_packet_builder.cpython-310.pyc +0 -0
  114. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/tool_config_builder.cpython-310.pyc +0 -0
  115. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/input_anchor_builder.py +123 -0
  116. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/input_connection_builder.py +95 -0
  117. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/metadata_builder.py +118 -0
  118. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/output_anchor_builder.py +110 -0
  119. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/packers.py +458 -0
  120. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/record_builder.py +204 -0
  121. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/record_packet_builder.py +133 -0
  122. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/builders/tool_config_builder.py +59 -0
  123. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/cng_certs.py +197 -0
  124. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/data_transport/__init__.py +18 -0
  125. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/data_transport/__pycache__/__init__.cpython-310.pyc +0 -0
  126. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/data_transport/__pycache__/amp_transport.cpython-310.pyc +0 -0
  127. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/data_transport/__pycache__/transport_base.cpython-310.pyc +0 -0
  128. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/data_transport/amp_transport.py +127 -0
  129. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/data_transport/transport_base.py +35 -0
  130. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__init__.py +14 -0
  131. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/__init__.cpython-310.pyc +0 -0
  132. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/control_msgs.cpython-310.pyc +0 -0
  133. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/dcme_msgs.cpython-310.pyc +0 -0
  134. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/record_transfer_msgs.cpython-310.pyc +0 -0
  135. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/control_msgs.py +189 -0
  136. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/dcme_msgs.py +119 -0
  137. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_helpers/record_transfer_msgs.py +32 -0
  138. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/grpc_util.py +161 -0
  139. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/logger_config.py +63 -0
  140. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/plugin_class_loader.py +77 -0
  141. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__init__.py +67 -0
  142. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/__init__.cpython-310.pyc +0 -0
  143. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/dcm_repository.cpython-310.pyc +0 -0
  144. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/environment_repository.cpython-310.pyc +0 -0
  145. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/grpc_repository.cpython-310.pyc +0 -0
  146. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/input_anchor_repository.cpython-310.pyc +0 -0
  147. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/input_connection_repository.cpython-310.pyc +0 -0
  148. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/input_metadata_repository.cpython-310.pyc +0 -0
  149. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/input_record_packet_repository.cpython-310.pyc +0 -0
  150. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/io_repository.cpython-310.pyc +0 -0
  151. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/output_anchor_repository.cpython-310.pyc +0 -0
  152. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/output_metadata_repository.cpython-310.pyc +0 -0
  153. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/output_record_packet_repository.cpython-310.pyc +0 -0
  154. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/plugin_class_repository.cpython-310.pyc +0 -0
  155. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/singleton.cpython-310.pyc +0 -0
  156. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/test_harness_state_repository.cpython-310.pyc +0 -0
  157. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/tool_config_repository.cpython-310.pyc +0 -0
  158. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/dcm_repository.py +252 -0
  159. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/environment_repository.py +212 -0
  160. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/grpc_repository.py +119 -0
  161. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/input_anchor_repository.py +110 -0
  162. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/input_connection_repository.py +276 -0
  163. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/input_metadata_repository.py +144 -0
  164. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/input_record_packet_repository.py +252 -0
  165. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/io_repository.py +188 -0
  166. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/output_anchor_repository.py +117 -0
  167. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/output_metadata_repository.py +129 -0
  168. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/output_record_packet_repository.py +170 -0
  169. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/plugin_class_repository.py +55 -0
  170. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/singleton.py +32 -0
  171. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/test_harness_state_repository.py +172 -0
  172. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/repositories/tool_config_repository.py +89 -0
  173. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/__init__.py +14 -0
  174. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/__pycache__/__init__.cpython-310.pyc +0 -0
  175. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__init__.py +0 -0
  176. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/__init__.cpython-310.pyc +0 -0
  177. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/close_outgoing_anchor_pb2.cpython-310.pyc +0 -0
  178. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/close_outgoing_anchor_pb2_grpc.cpython-310.pyc +0 -0
  179. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/dcm_e_pb2.cpython-310.pyc +0 -0
  180. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/dcm_e_pb2_grpc.cpython-310.pyc +0 -0
  181. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_anchor_pb2.cpython-310.pyc +0 -0
  182. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_anchor_pb2_grpc.cpython-310.pyc +0 -0
  183. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_connection_complete_pb2.cpython-310.pyc +0 -0
  184. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_connection_complete_pb2_grpc.cpython-310.pyc +0 -0
  185. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_connection_pb2.cpython-310.pyc +0 -0
  186. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_connection_pb2_grpc.cpython-310.pyc +0 -0
  187. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_data_push_pb2.cpython-310.pyc +0 -0
  188. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_data_push_pb2_grpc.cpython-310.pyc +0 -0
  189. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_record_packet_push_pb2.cpython-310.pyc +0 -0
  190. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_record_packet_push_pb2_grpc.cpython-310.pyc +0 -0
  191. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/metadata_pb2.cpython-310.pyc +0 -0
  192. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/metadata_pb2_grpc.cpython-310.pyc +0 -0
  193. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_anchor_pb2.cpython-310.pyc +0 -0
  194. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_anchor_pb2_grpc.cpython-310.pyc +0 -0
  195. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_data_push_pb2.cpython-310.pyc +0 -0
  196. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_data_push_pb2_grpc.cpython-310.pyc +0 -0
  197. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_metadata_push_pb2.cpython-310.pyc +0 -0
  198. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_metadata_push_pb2_grpc.cpython-310.pyc +0 -0
  199. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_record_packet_push_pb2.cpython-310.pyc +0 -0
  200. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_record_packet_push_pb2_grpc.cpython-310.pyc +0 -0
  201. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/output_message_data_pb2.cpython-310.pyc +0 -0
  202. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/output_message_data_pb2_grpc.cpython-310.pyc +0 -0
  203. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/password_data_pb2.cpython-310.pyc +0 -0
  204. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/password_data_pb2_grpc.cpython-310.pyc +0 -0
  205. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/plugin_initialization_data_pb2.cpython-310.pyc +0 -0
  206. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/plugin_initialization_data_pb2_grpc.cpython-310.pyc +0 -0
  207. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/record_batch_pb2.cpython-310.pyc +0 -0
  208. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/record_batch_pb2_grpc.cpython-310.pyc +0 -0
  209. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/record_packet_pb2.cpython-310.pyc +0 -0
  210. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/record_packet_pb2_grpc.cpython-310.pyc +0 -0
  211. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_engine_service_pb2.cpython-310.pyc +0 -0
  212. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_engine_service_pb2_grpc.cpython-310.pyc +0 -0
  213. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_pb2.cpython-310.pyc +0 -0
  214. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_pb2_grpc.cpython-310.pyc +0 -0
  215. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_startup_info_pb2.cpython-310.pyc +0 -0
  216. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_startup_info_pb2_grpc.cpython-310.pyc +0 -0
  217. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_v2_pb2.cpython-310.pyc +0 -0
  218. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_v2_pb2_grpc.cpython-310.pyc +0 -0
  219. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/translate_message_data_pb2.cpython-310.pyc +0 -0
  220. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/translate_message_data_pb2_grpc.cpython-310.pyc +0 -0
  221. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/transport_pb2.cpython-310.pyc +0 -0
  222. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/transport_pb2_grpc.cpython-310.pyc +0 -0
  223. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/update_progress_pb2.cpython-310.pyc +0 -0
  224. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/update_progress_pb2_grpc.cpython-310.pyc +0 -0
  225. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/close_outgoing_anchor_pb2.py +25 -0
  226. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/close_outgoing_anchor_pb2_grpc.py +4 -0
  227. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/dcm_e_pb2.py +38 -0
  228. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/dcm_e_pb2_grpc.py +4 -0
  229. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_anchor_pb2.py +26 -0
  230. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_anchor_pb2_grpc.py +4 -0
  231. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_complete_pb2.py +25 -0
  232. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_complete_pb2_grpc.py +4 -0
  233. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_pb2.py +26 -0
  234. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_pb2_grpc.py +4 -0
  235. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_data_push_pb2.py +26 -0
  236. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_data_push_pb2_grpc.py +4 -0
  237. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_record_packet_push_pb2.py +26 -0
  238. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_record_packet_push_pb2_grpc.py +4 -0
  239. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/metadata_pb2.py +31 -0
  240. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/metadata_pb2_grpc.py +4 -0
  241. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_anchor_pb2.py +28 -0
  242. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_anchor_pb2_grpc.py +4 -0
  243. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_data_push_pb2.py +26 -0
  244. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_data_push_pb2_grpc.py +4 -0
  245. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_metadata_push_pb2.py +26 -0
  246. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_metadata_push_pb2_grpc.py +4 -0
  247. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_record_packet_push_pb2.py +26 -0
  248. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_record_packet_push_pb2_grpc.py +4 -0
  249. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/output_message_data_pb2.py +29 -0
  250. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/output_message_data_pb2_grpc.py +4 -0
  251. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/password_data_pb2.py +25 -0
  252. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/password_data_pb2_grpc.py +4 -0
  253. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/plugin_initialization_data_pb2.py +33 -0
  254. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/plugin_initialization_data_pb2_grpc.py +4 -0
  255. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_batch_pb2.py +25 -0
  256. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_batch_pb2_grpc.py +4 -0
  257. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_packet_pb2.py +29 -0
  258. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/record_packet_pb2_grpc.py +4 -0
  259. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_engine_service_pb2.py +34 -0
  260. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_engine_service_pb2_grpc.py +305 -0
  261. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_pb2.py +30 -0
  262. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_pb2_grpc.py +235 -0
  263. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_startup_info_pb2.py +25 -0
  264. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_startup_info_pb2_grpc.py +4 -0
  265. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_v2_pb2.py +54 -0
  266. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_v2_pb2_grpc.py +99 -0
  267. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/translate_message_data_pb2.py +27 -0
  268. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/translate_message_data_pb2_grpc.py +4 -0
  269. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/transport_pb2.py +31 -0
  270. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/transport_pb2_grpc.py +4 -0
  271. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/update_progress_pb2.py +25 -0
  272. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/resources/generated/update_progress_pb2_grpc.py +4 -0
  273. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/sdk_tool_runner.py +115 -0
  274. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/sdk_tool_service.py +207 -0
  275. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/sdk_tool_service_v2.py +306 -0
  276. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/utilities/__init__.py +14 -0
  277. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/utilities/__pycache__/__init__.cpython-310.pyc +0 -0
  278. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/utilities/__pycache__/constants.cpython-310.pyc +0 -0
  279. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/utilities/__pycache__/conversions.cpython-310.pyc +0 -0
  280. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/utilities/__pycache__/utilities.cpython-310.pyc +0 -0
  281. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/utilities/constants.py +22 -0
  282. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/utilities/conversions.py +55 -0
  283. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/amp_provider/utilities/utilities.py +63 -0
  284. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__init__.py +36 -0
  285. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/__init__.cpython-310.pyc +0 -0
  286. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/anchor_builder.cpython-310.pyc +0 -0
  287. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/cache_e1_sdk_import.cpython-310.pyc +0 -0
  288. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/connection_callback_strategy.cpython-310.pyc +0 -0
  289. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/connection_interface.cpython-310.pyc +0 -0
  290. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_dcm.cpython-310.pyc +0 -0
  291. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_environment.cpython-310.pyc +0 -0
  292. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_input_anchor.cpython-310.pyc +0 -0
  293. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_input_anchor_proxy.cpython-310.pyc +0 -0
  294. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_input_connection.cpython-310.pyc +0 -0
  295. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_io.cpython-310.pyc +0 -0
  296. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_output_anchor.cpython-310.pyc +0 -0
  297. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_output_anchor_proxy.cpython-310.pyc +0 -0
  298. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_plugin_driver.cpython-310.pyc +0 -0
  299. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_plugin_proxy.cpython-310.pyc +0 -0
  300. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_provider.cpython-310.pyc +0 -0
  301. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_record_packet.cpython-310.pyc +0 -0
  302. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/events.cpython-310.pyc +0 -0
  303. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/tool_config_loader.cpython-310.pyc +0 -0
  304. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/__pycache__/workflow_config.cpython-310.pyc +0 -0
  305. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/anchor_builder.py +95 -0
  306. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/cache_e1_sdk_import.py +31 -0
  307. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/connection_callback_strategy.py +155 -0
  308. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/connection_interface.py +125 -0
  309. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_dcm.py +53 -0
  310. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_environment.py +127 -0
  311. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_input_anchor.py +51 -0
  312. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_input_anchor_proxy.py +33 -0
  313. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_input_connection.py +87 -0
  314. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_io.py +71 -0
  315. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_output_anchor.py +157 -0
  316. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_output_anchor_proxy.py +97 -0
  317. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_plugin_driver.py +63 -0
  318. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_plugin_proxy.py +363 -0
  319. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_provider.py +71 -0
  320. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/e1_record_packet.py +21 -0
  321. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/events.py +36 -0
  322. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__init__.py +37 -0
  323. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/__init__.cpython-310.pyc +0 -0
  324. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/alteryx_engine.cpython-310.pyc +0 -0
  325. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/constants.cpython-310.pyc +0 -0
  326. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/field.cpython-310.pyc +0 -0
  327. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/output_anchor.cpython-310.pyc +0 -0
  328. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/output_anchor_manager.cpython-310.pyc +0 -0
  329. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/record_copier.cpython-310.pyc +0 -0
  330. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/record_creator.cpython-310.pyc +0 -0
  331. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/record_info.cpython-310.pyc +0 -0
  332. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/record_ref.cpython-310.pyc +0 -0
  333. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/tool.cpython-310.pyc +0 -0
  334. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/tool_execution_info.cpython-310.pyc +0 -0
  335. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/alteryx_engine.py +105 -0
  336. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/constants.py +50 -0
  337. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/field.py +122 -0
  338. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/output_anchor.py +55 -0
  339. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/output_anchor_manager.py +31 -0
  340. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_copier.py +65 -0
  341. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_creator.py +41 -0
  342. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_info.py +134 -0
  343. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_ref.py +42 -0
  344. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/tool.py +29 -0
  345. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/tool_execution_info.py +43 -0
  346. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/__init__.py +14 -0
  347. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/__pycache__/__init__.cpython-310.pyc +0 -0
  348. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/proxies/__init__.py +18 -0
  349. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/proxies/__pycache__/__init__.cpython-310.pyc +0 -0
  350. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/proxies/__pycache__/field_proxy.cpython-310.pyc +0 -0
  351. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/proxies/__pycache__/record_copier_proxy.cpython-310.pyc +0 -0
  352. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/proxies/field_proxy.py +109 -0
  353. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/proxies/record_copier_proxy.py +49 -0
  354. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/records/__init__.py +23 -0
  355. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/records/__pycache__/__init__.cpython-310.pyc +0 -0
  356. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/records/__pycache__/base_record_container.cpython-310.pyc +0 -0
  357. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/records/__pycache__/parsed_record_container.cpython-310.pyc +0 -0
  358. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/records/__pycache__/raw_record_container.cpython-310.pyc +0 -0
  359. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/records/base_record_container.py +47 -0
  360. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/records/parsed_record_container.py +67 -0
  361. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/records/raw_record_container.py +111 -0
  362. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/tool_config_loader.py +132 -0
  363. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/utilities/__init__.py +35 -0
  364. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/utilities/__pycache__/__init__.cpython-310.pyc +0 -0
  365. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/utilities/__pycache__/utilities.cpython-310.pyc +0 -0
  366. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/utilities/utilities.py +54 -0
  367. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/e1_provider/workflow_config.py +31 -0
  368. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__init__.py +32 -0
  369. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/__init__.cpython-310.pyc +0 -0
  370. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/environment.cpython-310.pyc +0 -0
  371. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/file_adapter.cpython-310.pyc +0 -0
  372. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider.cpython-310.pyc +0 -0
  373. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider_dcm.cpython-310.pyc +0 -0
  374. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider_input_anchor.cpython-310.pyc +0 -0
  375. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider_input_connection.cpython-310.pyc +0 -0
  376. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider_output_anchor.cpython-310.pyc +0 -0
  377. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/file_record_packet.cpython-310.pyc +0 -0
  378. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/iox.cpython-310.pyc +0 -0
  379. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/__pycache__/tool_input.cpython-310.pyc +0 -0
  380. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/environment.py +131 -0
  381. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/file_adapter.py +286 -0
  382. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/file_provider.py +185 -0
  383. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/file_provider_dcm.py +53 -0
  384. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/file_provider_input_anchor.py +70 -0
  385. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/file_provider_input_connection.py +112 -0
  386. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/file_provider_output_anchor.py +114 -0
  387. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/file_record_packet.py +21 -0
  388. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/iox.py +56 -0
  389. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/providers/file_provider/tool_input.py +104 -0
  390. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/__init__.py +14 -0
  391. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/__main__.py +120 -0
  392. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/__pycache__/__init__.cpython-310.pyc +0 -0
  393. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/__pycache__/__main__.cpython-310.pyc +0 -0
  394. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/__pycache__/plugin_runner.cpython-310.pyc +0 -0
  395. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/__pycache__/process_lifecycle_manager.cpython-310.pyc +0 -0
  396. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/__pycache__/sdk_engine_service.cpython-310.pyc +0 -0
  397. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/plugin_runner.py +416 -0
  398. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/process_lifecycle_manager.py +80 -0
  399. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/test_harness/sdk_engine_service.py +106 -0
  400. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk/version.py +8 -0
  401. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk.egg-info/PKG-INFO +63 -0
  402. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk.egg-info/SOURCES.txt +408 -0
  403. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk.egg-info/dependency_links.txt +1 -0
  404. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk.egg-info/entry_points.txt +2 -0
  405. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk.egg-info/not-zip-safe +1 -0
  406. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk.egg-info/requires.txt +31 -0
  407. another_ayx_python_sdk-2.4.2/another_ayx_python_sdk.egg-info/top_level.txt +2 -0
  408. another_ayx_python_sdk-2.4.2/pyproject.toml +97 -0
  409. another_ayx_python_sdk-2.4.2/setup.cfg +4 -0
  410. another_ayx_python_sdk-2.4.2/setup.py +96 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Jupiter Bakakeu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,63 @@
1
+ Metadata-Version: 2.4
2
+ Name: another-ayx-python-sdk
3
+ Version: 2.4.2
4
+ Summary: Python SDK for Alteryx Plugin Development and Testing
5
+ Author: Jupiter Bakakeu
6
+ Author-email: Jupiter Bakakeu <jupiter.bakakeu@gmail.com>
7
+ Maintainer: Jupiter Bakakeu
8
+ Maintainer-email: Jupiter Bakakeu <jupiter.bakakeu@gmail.com>
9
+ License-Expression: MIT
10
+ Project-URL: Homepage, https://github.com/jupiterbak/another-ayx-python-sdk
11
+ Project-URL: Repository, https://github.com/jupiterbak/another-ayx-python-sdk.git
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.8
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Classifier: Topic :: Software Development :: Build Tools
22
+ Classifier: Topic :: Software Development :: Testing
23
+ Classifier: Environment :: Console
24
+ Requires-Python: >=3.8
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Requires-Dist: pydantic
28
+ Requires-Dist: packaging
29
+ Requires-Dist: setuptools>=65.5.0
30
+ Requires-Dist: pyarrow
31
+ Requires-Dist: xmltodict
32
+ Requires-Dist: pyyaml
33
+ Requires-Dist: requests
34
+ Requires-Dist: another-ayx-plugin-cli==1.2.3
35
+ Requires-Dist: typing-extensions
36
+ Requires-Dist: pypac
37
+ Requires-Dist: pandas
38
+ Requires-Dist: numpy
39
+ Requires-Dist: deprecation
40
+ Requires-Dist: grpcio
41
+ Requires-Dist: grpcio-tools
42
+ Requires-Dist: protobuf
43
+ Requires-Dist: psutil
44
+ Requires-Dist: Click
45
+ Requires-Dist: python-dateutil
46
+ Requires-Dist: pytz
47
+ Requires-Dist: six
48
+ Requires-Dist: typer
49
+ Requires-Dist: wincertstore
50
+ Provides-Extra: dev
51
+ Requires-Dist: pytest; extra == "dev"
52
+ Requires-Dist: pytest-cov; extra == "dev"
53
+ Requires-Dist: black; extra == "dev"
54
+ Requires-Dist: isort; extra == "dev"
55
+ Requires-Dist: flake8; extra == "dev"
56
+ Requires-Dist: mypy; extra == "dev"
57
+ Dynamic: author
58
+ Dynamic: license-file
59
+ Dynamic: maintainer
60
+ Dynamic: requires-python
61
+
62
+ # another-ayx-python-sdk
63
+
@@ -0,0 +1,2 @@
1
+ # another-ayx-python-sdk
2
+
@@ -0,0 +1,14 @@
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
+ """Alteryx Python SDK: ayx_python_sdk top-level."""
@@ -0,0 +1,470 @@
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
+ """Alteryx Python SDK: Main program."""
15
+ import filecmp
16
+ import importlib.util
17
+ import json
18
+ import logging
19
+ import os
20
+ import re
21
+ import shutil
22
+ import subprocess
23
+ from enum import Enum
24
+ from functools import wraps
25
+ from pathlib import Path
26
+ from typing import Any, Callable, List
27
+
28
+ from another_ayx_python_sdk.cli.utilities import get_install_dir
29
+ from another_ayx_python_sdk.cli.workspace import (
30
+ WorkspaceError,
31
+ remove_whitespace,
32
+ )
33
+ from another_ayx_python_sdk.providers.file_provider import FileProvider
34
+ from another_ayx_python_sdk.providers.file_provider.tool_input import ToolInput
35
+ from another_ayx_python_sdk.version import short_version
36
+
37
+ import deprecation
38
+
39
+ import typer
40
+
41
+ logger = logging.getLogger(__name__)
42
+ app = typer.Typer(
43
+ help="Run a tool using file inputs and outputs in a pure Python environment."
44
+ )
45
+
46
+ REQ_LOCAL = "requirements-local.txt"
47
+ REQ_THIRDPARTY = "requirements-thirdparty.txt"
48
+
49
+
50
+ class TemplateToolTypes(str, Enum):
51
+ """Installation Type of Designer."""
52
+
53
+ Input = "input"
54
+ MultipleInputs = "multiple-inputs"
55
+ MultipleOutputs = "multiple-outputs"
56
+ Optional = "optional"
57
+ Output = "output"
58
+ SingleInputSingleOutput = "single-input-single-output"
59
+ MultipleInputConnections = "multi-connection-input-anchor"
60
+
61
+
62
+ name_to_tool = {
63
+ TemplateToolTypes.Input: "AyxSdkInput",
64
+ TemplateToolTypes.MultipleInputs: "AyxSdkMultipleInputAnchors",
65
+ TemplateToolTypes.MultipleOutputs: "AyxSdkMultipleOutputAnchors",
66
+ TemplateToolTypes.Optional: "AyxSdkOptionalInputAnchor",
67
+ TemplateToolTypes.Output: "AyxSdkOutput",
68
+ TemplateToolTypes.SingleInputSingleOutput: "AyxSdkPassThrough",
69
+ TemplateToolTypes.MultipleInputConnections: "AyxSdkMultiConnectionsMultiOutputAnchor",
70
+ }
71
+
72
+
73
+ @app.command()
74
+ def init_workspace(
75
+ workspace_directory: str = typer.Option(
76
+ ...,
77
+ help="Directory to create a workspace in. "
78
+ "If the directory doesn't exist, it will be created.",
79
+ ),
80
+ yes_to_all: bool = typer.Option(False, "--y", help="Confirm all"),
81
+ ) -> None:
82
+ """Initialize a plugin workspace with a python backend."""
83
+ backend_directory = Path(workspace_directory) / "backend"
84
+ plugins_directory = backend_directory / "ayx_plugins"
85
+ assets_directory = (
86
+ Path(os.path.realpath(__file__)).parent / "assets" / "workspace_files"
87
+ )
88
+
89
+ typer.echo(f"Creating {plugins_directory}")
90
+ plugins_directory.mkdir(parents=True, exist_ok=True)
91
+
92
+ files_to_create = {
93
+ (assets_directory / REQ_LOCAL)
94
+ .resolve(): (backend_directory / REQ_LOCAL)
95
+ .resolve(),
96
+ (assets_directory / REQ_THIRDPARTY)
97
+ .resolve(): (backend_directory / REQ_THIRDPARTY)
98
+ .resolve(),
99
+ (assets_directory / "setup.py")
100
+ .resolve(): (backend_directory / "setup.py")
101
+ .resolve(),
102
+ (assets_directory / "__init__.py")
103
+ .resolve(): (plugins_directory / "__init__.py")
104
+ .resolve(),
105
+ }
106
+ new_files = []
107
+ files_to_overwrite = []
108
+ for source_path, dest_path in files_to_create.items():
109
+ if not dest_path.exists():
110
+ new_files.append((source_path, dest_path))
111
+ else:
112
+ files_to_overwrite.append((source_path, dest_path))
113
+ for source_path, dest_path in new_files:
114
+ typer.echo(f"Creating file {dest_path}")
115
+ shutil.copy(source_path, dest_path)
116
+ pin_ayx_version_to_requirements((backend_directory / REQ_THIRDPARTY).resolve())
117
+
118
+ if not files_to_overwrite:
119
+ return
120
+ output_paths = [str(path[1]) for path in files_to_overwrite]
121
+ if yes_to_all or typer.confirm(
122
+ "\nThe following files will be overwritten:\n\t"
123
+ + "\n\t".join(output_paths)
124
+ + "\n\nConfirm that it is okay to remove these paths.\n"
125
+ ):
126
+ for source_path, dest_path in files_to_overwrite:
127
+ typer.echo(f"Overwriting file {dest_path}")
128
+ shutil.copy(source_path, dest_path)
129
+ pin_ayx_version_to_requirements((backend_directory / REQ_THIRDPARTY).resolve())
130
+ else:
131
+ typer.echo(f"{', '.join(output_paths)} will not be overwritten")
132
+
133
+
134
+ def pin_ayx_version_to_requirements(requirements_path: Path) -> None:
135
+ """Pins the plugin SDK to third-party requirements."""
136
+ with open(requirements_path, "r") as req_file:
137
+ lines = req_file.readlines()
138
+ for line_num in range(len(lines)):
139
+ if re.match(r"^ayx_python_sdk$", lines[line_num]):
140
+ lines[line_num] = f"ayx_python_sdk=={short_version}"
141
+ req_file = open(requirements_path, "w")
142
+ req_file.writelines(lines)
143
+
144
+
145
+ @deprecation.deprecated(
146
+ deprecated_in="1.0.3",
147
+ removed_in="2.0.0",
148
+ details="Use the Plugin CLI's test harness instead.",
149
+ ) # type: ignore
150
+ @app.command(
151
+ deprecated=True,
152
+ short_help="(DEPRECATED) Run a tool using file inputs and outputs in a pure Python environment.",
153
+ )
154
+ def run_tool_with_file_provider(
155
+ configuration_file: str = typer.Option(
156
+ ...,
157
+ help="JSON file that specifies the input and output "
158
+ "information needed for the file provider to run",
159
+ ),
160
+ ) -> None:
161
+ """
162
+ Run a tool using file inputs and outputs in a pure Python environment.
163
+
164
+ Parameters
165
+ ----------
166
+ configuration_file
167
+ Specifies the path to the JSON file that contains the tool plugin,
168
+ configuration files, input files, and output files.
169
+ """
170
+ try:
171
+ with open(configuration_file) as fd:
172
+ json_dict = json.load(fd)
173
+ except FileNotFoundError:
174
+ raise RuntimeError(f"Couldn't find tool information file {configuration_file}.")
175
+
176
+ tool_input = ToolInput(**json_dict)
177
+ tool_classname = tool_input.tool.plugin
178
+ tool_path = Path(tool_input.tool.path)
179
+
180
+ file_provider = FileProvider(
181
+ tool_input.tool_config.resolve(),
182
+ tool_input.workflow_config.resolve(),
183
+ inputs=tool_input.inputs or [],
184
+ outputs=tool_input.outputs or [],
185
+ update_tool_config=tool_input.update_tool_config,
186
+ )
187
+
188
+ tool_class = _load_user_plugin_class(tool_classname, tool_path)
189
+
190
+ # Initialize and run the plugin
191
+ plugin = tool_class(file_provider)
192
+ for input_anchor in file_provider.input_anchors:
193
+ for input_anchor_connection in input_anchor.connections:
194
+ plugin.on_input_connection_opened(input_anchor_connection)
195
+ # TODO Support multiple calls to on_record_packet
196
+ plugin.on_record_packet(input_anchor_connection)
197
+ plugin.on_complete()
198
+
199
+
200
+ def _load_user_plugin_class(tool_classname: str, tool_path: Path) -> Any:
201
+ """Load the plugin and get a reference to its class."""
202
+ root = Path(os.getcwd())
203
+ tool_full_path = (root / tool_path).resolve()
204
+ original_cwd = os.getcwd()
205
+
206
+ try:
207
+ os.chdir(tool_full_path.parent)
208
+ spec: Any = importlib.util.spec_from_file_location("main", "main.py")
209
+ module = importlib.util.module_from_spec(spec)
210
+ spec.loader.exec_module(module)
211
+ return getattr(module, tool_classname)
212
+ finally:
213
+ os.chdir(original_cwd)
214
+
215
+
216
+ def handle_workspace_errors(function: Callable) -> Callable:
217
+ """Handle any workspace errors that occur."""
218
+
219
+ @wraps(function)
220
+ def decorator(*args: Any, **kwargs: Any) -> None:
221
+ try:
222
+ function(*args, **kwargs)
223
+ except WorkspaceError as e:
224
+ typer.echo(f"ERROR: {e}")
225
+ raise typer.Exit(code=1)
226
+
227
+ return decorator
228
+
229
+
230
+ @app.command()
231
+ @handle_workspace_errors
232
+ def create_ayx_plugin(
233
+ name: str = typer.Option(
234
+ ..., prompt="Tool Name", help="Name of the tool to create."
235
+ ),
236
+ workspace_directory: Path = typer.Option(
237
+ ..., prompt="Workspace directory", help="Directory to put the new tool in."
238
+ ),
239
+ tool_type: TemplateToolTypes = typer.Option(
240
+ ...,
241
+ prompt="Tool type",
242
+ help=f"The type of tool to create. Must be one of: {', '.join(name_to_tool.keys())}",
243
+ ),
244
+ ) -> None:
245
+ """Create a new plugin for Alteryx Designer."""
246
+ typer.echo("Creating Alteryx Plugin...")
247
+ plugin_directory = workspace_directory / "backend" / "ayx_plugins"
248
+ if not plugin_directory.is_dir():
249
+ raise WorkspaceError(f"Plugin directory doesn't exist: {plugin_directory}")
250
+
251
+ if plugin_directory.is_file():
252
+ raise WorkspaceError(
253
+ f"Plugin directory path is a file, not a directory: {plugin_directory}"
254
+ )
255
+
256
+ if not (plugin_directory / "__init__.py").exists():
257
+ raise WorkspaceError(
258
+ "__init__.py not found in the specified directory. "
259
+ "Make sure that you've entered the correct path."
260
+ )
261
+
262
+ new_tool_name = remove_whitespace(name)
263
+ new_tool_file_name = re.sub(r"(?<!^)(?=[A-Z])", "_", new_tool_name).lower()
264
+ new_tool_path = plugin_directory / f"{new_tool_file_name}.py"
265
+
266
+ if not new_tool_name.replace("_", "").isalnum() or not new_tool_name[0].isalpha():
267
+ raise WorkspaceError(
268
+ f"The name of the tool {new_tool_name} must be alpha-numeric, "
269
+ "cannot start with a number, and cannot contain any special characters."
270
+ )
271
+
272
+ if new_tool_path.exists():
273
+ raise WorkspaceError(
274
+ "There is already another tool with this name in the directory."
275
+ )
276
+
277
+ example_tool_name = name_to_tool[tool_type]
278
+ example_tool_dir = get_install_dir() / "examples" / example_tool_name
279
+
280
+ shutil.copy(
281
+ example_tool_dir / "main.py",
282
+ new_tool_path,
283
+ )
284
+ typer.echo(f"Copying example tool to {plugin_directory}...")
285
+
286
+ _update_main_py(new_tool_path, example_tool_name, new_tool_name)
287
+ _update_init_py(plugin_directory, new_tool_file_name, new_tool_name)
288
+
289
+ typer.echo(f"Added new tool to package directory: {new_tool_path}")
290
+
291
+
292
+ def _update_main_py(
293
+ plugin_path: Path,
294
+ example_tool_name: str,
295
+ new_tool_name: str,
296
+ ) -> None:
297
+ try:
298
+ with open(str(plugin_path), "r") as f:
299
+ content = f.read()
300
+
301
+ content = content.replace(example_tool_name, new_tool_name)
302
+ with open(str(plugin_path), "w") as f:
303
+ f.write(content)
304
+ except IOError:
305
+ raise WorkspaceError(f"Error updating {plugin_path}")
306
+
307
+
308
+ def _update_init_py(
309
+ plugin_directory: Path, new_tool_file_name: str, new_tool_name: str
310
+ ) -> None:
311
+ import_line = f"from .{new_tool_file_name} import {new_tool_name}\n"
312
+ try:
313
+ with open(str(Path(plugin_directory) / "__init__.py"), "a") as f:
314
+ f.write(import_line)
315
+ except IOError:
316
+ raise WorkspaceError("Error opening the __init__.py file")
317
+
318
+
319
+ @app.command()
320
+ @handle_workspace_errors
321
+ def install_deps(
322
+ dependency_cache_dir: Path = typer.Option(
323
+ default=Path(".doit_cache"),
324
+ prompt="Distribution directory",
325
+ help="Creates a distribution directory",
326
+ ),
327
+ output_path: Path = typer.Option(
328
+ ...,
329
+ prompt="Output path including filename",
330
+ help="The path to save the .pyz bootstrap artifact, example: './bootstrap.pyz'",
331
+ ),
332
+ ) -> None:
333
+ """Install any dependencies for the current workspace tools."""
334
+ typer.echo("Installing dependencies...")
335
+ logger.info("install_deps called...")
336
+ dist_dir = (dependency_cache_dir / "dist").resolve()
337
+ dist_dir.mkdir(exist_ok=True, parents=True)
338
+ curr_dir = Path(".")
339
+ backend_dir = curr_dir / "backend"
340
+
341
+ if (
342
+ not (backend_dir / REQ_LOCAL).exists()
343
+ or not (backend_dir / REQ_THIRDPARTY).exists()
344
+ ):
345
+ raise WorkspaceError(
346
+ "Missing requirements files. Please make sure that both 'requirements-thirdparty.txt' and 'requirements-local.txt' exist in the backend folder."
347
+ )
348
+ install_local_dependencies = [
349
+ "python",
350
+ "-m",
351
+ "pip",
352
+ "install",
353
+ "-r",
354
+ REQ_LOCAL,
355
+ "--upgrade",
356
+ "--target",
357
+ str(dist_dir),
358
+ ]
359
+ result = _run_build_artifact_command(
360
+ install_local_dependencies, "Installing local dependencies", backend_dir
361
+ )
362
+ if result != 0:
363
+ raise WorkspaceError(
364
+ "Installing local dependencies failed, aborting YXI generation."
365
+ )
366
+ requirements_changed = _check_requirements_changed(
367
+ dist_dir / REQ_THIRDPARTY,
368
+ backend_dir / REQ_THIRDPARTY,
369
+ )
370
+
371
+ if requirements_changed:
372
+ typer.echo("Installing new dependencies...")
373
+ install_third_party_dependencies = [
374
+ "python",
375
+ "-m",
376
+ "pip",
377
+ "install",
378
+ "-r",
379
+ REQ_THIRDPARTY,
380
+ "--upgrade",
381
+ "--target",
382
+ str(dist_dir),
383
+ ]
384
+
385
+ result = _run_build_artifact_command(
386
+ install_third_party_dependencies,
387
+ "Installing third party dependencies",
388
+ backend_dir,
389
+ )
390
+
391
+ if result != 0:
392
+ Path(dist_dir / REQ_THIRDPARTY).unlink(missing_ok=True)
393
+ raise WorkspaceError(
394
+ "Installing third party dependencies failed, aborting YXI generation."
395
+ )
396
+
397
+
398
+ def _run_build_artifact_command(cmd: List[str], label: str, cwd: Path) -> int:
399
+ try:
400
+ typer.echo(f"[{label}]: {' '.join(cmd)} ")
401
+ process = subprocess.run(
402
+ cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=cwd
403
+ )
404
+ if process.returncode != 0:
405
+ typer.echo(
406
+ f"Process [{label}] failed with error code{process.returncode}\nPlease check log for details"
407
+ )
408
+ logger.error(
409
+ "Process returned with non-zero exit code: %s",
410
+ process.stderr,
411
+ exc_info=True,
412
+ )
413
+ return process.returncode
414
+ except subprocess.CalledProcessError as e:
415
+ typer.echo(
416
+ f"Process [{label}] failed with {process.returncode}\nPlease check log for details"
417
+ )
418
+ logger.error(
419
+ "Exception occured during execution of subprocess: %s",
420
+ e.__traceback__,
421
+ exc_info=True,
422
+ )
423
+ return -1
424
+
425
+
426
+ def _check_requirements_changed(
427
+ dist_requirements: Path, backend_requirements: Path
428
+ ) -> bool:
429
+ try:
430
+ if not dist_requirements.exists():
431
+ shutil.copy(backend_requirements, dist_requirements)
432
+ return True
433
+ else:
434
+ file_changed = not filecmp.cmp(dist_requirements, backend_requirements)
435
+ if file_changed:
436
+ shutil.copy(backend_requirements, dist_requirements)
437
+ return file_changed
438
+
439
+ except Exception:
440
+ raise WorkspaceError(
441
+ "Could not find /requirements-thirdparty.txt in the specified directories"
442
+ )
443
+
444
+
445
+ @app.command()
446
+ def docs() -> None:
447
+ """Open the ayx-plugin-sdk documentation in a browser."""
448
+ import webbrowser
449
+
450
+ docs_index_html = Path(os.path.dirname(__file__)) / "docs" / "index.html"
451
+ webbrowser.open_new_tab(str(docs_index_html))
452
+
453
+
454
+ def _log_info(msg: str) -> None:
455
+ logger.info("INFO: %s", msg)
456
+ typer.echo(f"INFO: {msg}")
457
+
458
+
459
+ def _log_error(msg: str) -> None:
460
+ logger.error("ERROR: %s", msg)
461
+ typer.echo(f"ERROR: {msg}")
462
+
463
+
464
+ def main() -> None:
465
+ """Define the main entry point to typer."""
466
+ app()
467
+
468
+
469
+ if __name__ == "__main__":
470
+ main()
@@ -0,0 +1,14 @@
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
+ """Alteryx Designer Plugin implementations."""
@@ -0,0 +1,38 @@
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
+ """Alteryx Designer Plugin implementations."""
15
+ from setuptools import find_packages, setup
16
+
17
+ PACKAGE_NAME = "ayx_plugins"
18
+
19
+ MAJOR = 1
20
+ MINOR = 0
21
+ MICRO = 0
22
+ VERSION = f"{MAJOR}.{MINOR}.{MICRO}"
23
+
24
+ SUMMARY = (__doc__ or "").split("\n")
25
+
26
+ if __name__ == "__main__":
27
+ setup(
28
+ name=PACKAGE_NAME,
29
+ version=VERSION,
30
+ description=SUMMARY,
31
+ long_description_content_type="text/markdown",
32
+ platforms=["Windows"],
33
+ author="Alteryx, Inc.",
34
+ author_email="support@alteryx.com",
35
+ packages=find_packages(
36
+ exclude=["examples", "*.tests", "*.tests.*", "tests.*", "tests"]
37
+ ),
38
+ )
@@ -0,0 +1,14 @@
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
+ """Command line interface definitions."""