another-ayx-python-sdk 2.4.2__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.
- another_ayx_python_sdk/__init__.py +14 -0
- another_ayx_python_sdk/__main__.py +470 -0
- another_ayx_python_sdk/assets/workspace_files/__init__.py +14 -0
- another_ayx_python_sdk/assets/workspace_files/setup.py +38 -0
- another_ayx_python_sdk/cli/__init__.py +14 -0
- another_ayx_python_sdk/cli/utilities.py +103 -0
- another_ayx_python_sdk/cli/workspace.py +266 -0
- another_ayx_python_sdk/cli/yxi_builder.py +125 -0
- another_ayx_python_sdk/cli/yxi_installer.py +45 -0
- another_ayx_python_sdk/core/__init__.py +51 -0
- another_ayx_python_sdk/core/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/constants.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/dcm_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/doc_utilities.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/environment_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/field.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/input_anchor_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/input_connection_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/io_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/metadata.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/output_anchor_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/plugin.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/plugin_v2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/provider_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/record_packet.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/record_packet_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/__pycache__/register_plugin.cpython-310.pyc +0 -0
- another_ayx_python_sdk/core/constants.py +25 -0
- another_ayx_python_sdk/core/dcm_base.py +115 -0
- another_ayx_python_sdk/core/doc_utilities.py +40 -0
- another_ayx_python_sdk/core/environment_base.py +213 -0
- another_ayx_python_sdk/core/exceptions.py +59 -0
- another_ayx_python_sdk/core/field.py +183 -0
- another_ayx_python_sdk/core/input_anchor_base.py +86 -0
- another_ayx_python_sdk/core/input_connection_base.py +206 -0
- another_ayx_python_sdk/core/io_base.py +139 -0
- another_ayx_python_sdk/core/metadata.py +173 -0
- another_ayx_python_sdk/core/observable_mixin.py +90 -0
- another_ayx_python_sdk/core/output_anchor_base.py +151 -0
- another_ayx_python_sdk/core/plugin.py +108 -0
- another_ayx_python_sdk/core/plugin_v2.py +97 -0
- another_ayx_python_sdk/core/provider_base.py +125 -0
- another_ayx_python_sdk/core/proxy_requests.py +51 -0
- another_ayx_python_sdk/core/record_packet.py +88 -0
- another_ayx_python_sdk/core/record_packet_base.py +123 -0
- another_ayx_python_sdk/core/register_plugin.py +127 -0
- another_ayx_python_sdk/core/testing.py +191 -0
- another_ayx_python_sdk/core/utils.py +146 -0
- another_ayx_python_sdk/examples/AyxSdkInput/main.py +89 -0
- another_ayx_python_sdk/examples/AyxSdkMultiConnectionsMultiOutputAnchor/__pycache__/main.cpython-310.pyc +0 -0
- another_ayx_python_sdk/examples/AyxSdkMultiConnectionsMultiOutputAnchor/main.py +102 -0
- another_ayx_python_sdk/examples/AyxSdkMultipleInputAnchors/AyxSdkMultipleInputAnchorsConfig.xml +24 -0
- another_ayx_python_sdk/examples/AyxSdkMultipleInputAnchors/__pycache__/main.cpython-310.pyc +0 -0
- another_ayx_python_sdk/examples/AyxSdkMultipleInputAnchors/main.py +84 -0
- another_ayx_python_sdk/examples/AyxSdkMultipleOutputAnchors/__pycache__/main.cpython-310.pyc +0 -0
- another_ayx_python_sdk/examples/AyxSdkMultipleOutputAnchors/main.py +96 -0
- another_ayx_python_sdk/examples/AyxSdkOptionalInputAnchor/__pycache__/main.cpython-310.pyc +0 -0
- another_ayx_python_sdk/examples/AyxSdkOptionalInputAnchor/main.py +94 -0
- another_ayx_python_sdk/examples/AyxSdkOutput/__pycache__/main.cpython-310.pyc +0 -0
- another_ayx_python_sdk/examples/AyxSdkOutput/main.py +78 -0
- another_ayx_python_sdk/examples/AyxSdkPassThrough/AyxSdkPassThrough.xml +23 -0
- another_ayx_python_sdk/examples/AyxSdkPassThrough/__pycache__/main.cpython-310.pyc +0 -0
- another_ayx_python_sdk/examples/AyxSdkPassThrough/main.py +82 -0
- another_ayx_python_sdk/examples/requirements.txt +18 -0
- another_ayx_python_sdk/providers/__init__.py +14 -0
- another_ayx_python_sdk/providers/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__init__.py +41 -0
- another_ayx_python_sdk/providers/amp_provider/__main__.py +85 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/__main__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_dcm.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_driver.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_environment.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_environment_v2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_input_anchor.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_input_connection.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_io.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_io_components.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_output_anchor.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_provider.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_provider_v2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/amp_record_packet.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/cng_certs.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/grpc_util.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/logger_config.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/plugin_class_loader.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/sdk_tool_runner.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/sdk_tool_service.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/__pycache__/sdk_tool_service_v2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/amp_dcm.py +58 -0
- another_ayx_python_sdk/providers/amp_provider/amp_driver.py +358 -0
- another_ayx_python_sdk/providers/amp_provider/amp_environment.py +73 -0
- another_ayx_python_sdk/providers/amp_provider/amp_environment_v2.py +278 -0
- another_ayx_python_sdk/providers/amp_provider/amp_input_anchor.py +73 -0
- another_ayx_python_sdk/providers/amp_provider/amp_input_connection.py +132 -0
- another_ayx_python_sdk/providers/amp_provider/amp_io.py +64 -0
- another_ayx_python_sdk/providers/amp_provider/amp_io_components.py +407 -0
- another_ayx_python_sdk/providers/amp_provider/amp_output_anchor.py +107 -0
- another_ayx_python_sdk/providers/amp_provider/amp_provider.py +68 -0
- another_ayx_python_sdk/providers/amp_provider/amp_provider_v2.py +128 -0
- another_ayx_python_sdk/providers/amp_provider/amp_record_packet.py +21 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__init__.py +32 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/input_anchor_builder.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/input_connection_builder.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/metadata_builder.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/output_anchor_builder.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/packers.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/record_builder.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/record_packet_builder.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/__pycache__/tool_config_builder.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/builders/input_anchor_builder.py +123 -0
- another_ayx_python_sdk/providers/amp_provider/builders/input_connection_builder.py +95 -0
- another_ayx_python_sdk/providers/amp_provider/builders/metadata_builder.py +118 -0
- another_ayx_python_sdk/providers/amp_provider/builders/output_anchor_builder.py +110 -0
- another_ayx_python_sdk/providers/amp_provider/builders/packers.py +458 -0
- another_ayx_python_sdk/providers/amp_provider/builders/record_builder.py +204 -0
- another_ayx_python_sdk/providers/amp_provider/builders/record_packet_builder.py +133 -0
- another_ayx_python_sdk/providers/amp_provider/builders/tool_config_builder.py +59 -0
- another_ayx_python_sdk/providers/amp_provider/cng_certs.py +197 -0
- another_ayx_python_sdk/providers/amp_provider/data_transport/__init__.py +18 -0
- another_ayx_python_sdk/providers/amp_provider/data_transport/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/data_transport/__pycache__/amp_transport.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/data_transport/__pycache__/transport_base.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/data_transport/amp_transport.py +127 -0
- another_ayx_python_sdk/providers/amp_provider/data_transport/transport_base.py +35 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__init__.py +14 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/control_msgs.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/dcme_msgs.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/record_transfer_msgs.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_helpers/control_msgs.py +189 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_helpers/dcme_msgs.py +119 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_helpers/record_transfer_msgs.py +32 -0
- another_ayx_python_sdk/providers/amp_provider/grpc_util.py +161 -0
- another_ayx_python_sdk/providers/amp_provider/logger_config.py +63 -0
- another_ayx_python_sdk/providers/amp_provider/plugin_class_loader.py +77 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__init__.py +67 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/dcm_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/environment_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/grpc_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/input_anchor_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/input_connection_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/input_metadata_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/input_record_packet_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/io_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/output_anchor_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/output_metadata_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/output_record_packet_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/plugin_class_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/singleton.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/test_harness_state_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/__pycache__/tool_config_repository.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/dcm_repository.py +252 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/environment_repository.py +212 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/grpc_repository.py +119 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/input_anchor_repository.py +110 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/input_connection_repository.py +276 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/input_metadata_repository.py +144 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/input_record_packet_repository.py +252 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/io_repository.py +188 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/output_anchor_repository.py +117 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/output_metadata_repository.py +129 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/output_record_packet_repository.py +170 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/plugin_class_repository.py +55 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/singleton.py +32 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/test_harness_state_repository.py +172 -0
- another_ayx_python_sdk/providers/amp_provider/repositories/tool_config_repository.py +89 -0
- another_ayx_python_sdk/providers/amp_provider/resources/__init__.py +14 -0
- another_ayx_python_sdk/providers/amp_provider/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__init__.py +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/close_outgoing_anchor_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/close_outgoing_anchor_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/dcm_e_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/dcm_e_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_anchor_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_anchor_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_connection_complete_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_connection_complete_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_connection_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_connection_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_data_push_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_data_push_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_record_packet_push_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/incoming_record_packet_push_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/metadata_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/metadata_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_anchor_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_anchor_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_data_push_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_data_push_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_metadata_push_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_metadata_push_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_record_packet_push_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/outgoing_record_packet_push_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/output_message_data_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/output_message_data_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/password_data_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/password_data_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/plugin_initialization_data_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/plugin_initialization_data_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/record_batch_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/record_batch_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/record_packet_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/record_packet_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_engine_service_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_engine_service_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_startup_info_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_startup_info_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_v2_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/sdk_tool_service_v2_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/translate_message_data_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/translate_message_data_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/transport_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/transport_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/update_progress_pb2.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/__pycache__/update_progress_pb2_grpc.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/close_outgoing_anchor_pb2.py +25 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/close_outgoing_anchor_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/dcm_e_pb2.py +38 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/dcm_e_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_anchor_pb2.py +26 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_anchor_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_complete_pb2.py +25 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_complete_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_pb2.py +26 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_connection_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_data_push_pb2.py +26 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_data_push_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_record_packet_push_pb2.py +26 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/incoming_record_packet_push_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/metadata_pb2.py +31 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/metadata_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_anchor_pb2.py +28 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_anchor_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_data_push_pb2.py +26 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_data_push_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_metadata_push_pb2.py +26 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_metadata_push_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_record_packet_push_pb2.py +26 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/outgoing_record_packet_push_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/output_message_data_pb2.py +29 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/output_message_data_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/password_data_pb2.py +25 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/password_data_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/plugin_initialization_data_pb2.py +33 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/plugin_initialization_data_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/record_batch_pb2.py +25 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/record_batch_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/record_packet_pb2.py +29 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/record_packet_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_engine_service_pb2.py +34 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_engine_service_pb2_grpc.py +305 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_pb2.py +30 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_pb2_grpc.py +235 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_startup_info_pb2.py +25 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_startup_info_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_v2_pb2.py +54 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/sdk_tool_service_v2_pb2_grpc.py +99 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/translate_message_data_pb2.py +27 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/translate_message_data_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/transport_pb2.py +31 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/transport_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/update_progress_pb2.py +25 -0
- another_ayx_python_sdk/providers/amp_provider/resources/generated/update_progress_pb2_grpc.py +4 -0
- another_ayx_python_sdk/providers/amp_provider/sdk_tool_runner.py +115 -0
- another_ayx_python_sdk/providers/amp_provider/sdk_tool_service.py +207 -0
- another_ayx_python_sdk/providers/amp_provider/sdk_tool_service_v2.py +306 -0
- another_ayx_python_sdk/providers/amp_provider/utilities/__init__.py +14 -0
- another_ayx_python_sdk/providers/amp_provider/utilities/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/utilities/__pycache__/constants.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/utilities/__pycache__/conversions.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/utilities/__pycache__/utilities.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/amp_provider/utilities/constants.py +22 -0
- another_ayx_python_sdk/providers/amp_provider/utilities/conversions.py +55 -0
- another_ayx_python_sdk/providers/amp_provider/utilities/utilities.py +63 -0
- another_ayx_python_sdk/providers/e1_provider/__init__.py +36 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/anchor_builder.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/cache_e1_sdk_import.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/connection_callback_strategy.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/connection_interface.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_dcm.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_environment.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_input_anchor.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_input_anchor_proxy.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_input_connection.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_io.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_output_anchor.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_output_anchor_proxy.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_plugin_driver.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_plugin_proxy.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_provider.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/e1_record_packet.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/events.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/tool_config_loader.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/__pycache__/workflow_config.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/anchor_builder.py +95 -0
- another_ayx_python_sdk/providers/e1_provider/cache_e1_sdk_import.py +31 -0
- another_ayx_python_sdk/providers/e1_provider/connection_callback_strategy.py +155 -0
- another_ayx_python_sdk/providers/e1_provider/connection_interface.py +125 -0
- another_ayx_python_sdk/providers/e1_provider/e1_dcm.py +53 -0
- another_ayx_python_sdk/providers/e1_provider/e1_environment.py +127 -0
- another_ayx_python_sdk/providers/e1_provider/e1_input_anchor.py +51 -0
- another_ayx_python_sdk/providers/e1_provider/e1_input_anchor_proxy.py +33 -0
- another_ayx_python_sdk/providers/e1_provider/e1_input_connection.py +87 -0
- another_ayx_python_sdk/providers/e1_provider/e1_io.py +71 -0
- another_ayx_python_sdk/providers/e1_provider/e1_output_anchor.py +157 -0
- another_ayx_python_sdk/providers/e1_provider/e1_output_anchor_proxy.py +97 -0
- another_ayx_python_sdk/providers/e1_provider/e1_plugin_driver.py +63 -0
- another_ayx_python_sdk/providers/e1_provider/e1_plugin_proxy.py +363 -0
- another_ayx_python_sdk/providers/e1_provider/e1_provider.py +71 -0
- another_ayx_python_sdk/providers/e1_provider/e1_record_packet.py +21 -0
- another_ayx_python_sdk/providers/e1_provider/events.py +36 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__init__.py +37 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/alteryx_engine.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/constants.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/field.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/output_anchor.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/output_anchor_manager.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/record_copier.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/record_creator.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/record_info.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/record_ref.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/tool.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/__pycache__/tool_execution_info.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/alteryx_engine.py +105 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/constants.py +50 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/field.py +122 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/output_anchor.py +55 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/output_anchor_manager.py +31 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_copier.py +65 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_creator.py +41 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_info.py +134 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/record_ref.py +42 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/tool.py +29 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/AlteryxPythonSDK/tool_execution_info.py +43 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/__init__.py +14 -0
- another_ayx_python_sdk/providers/e1_provider/mock_e1_sdk/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/proxies/__init__.py +18 -0
- another_ayx_python_sdk/providers/e1_provider/proxies/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/proxies/__pycache__/field_proxy.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/proxies/__pycache__/record_copier_proxy.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/proxies/field_proxy.py +109 -0
- another_ayx_python_sdk/providers/e1_provider/proxies/record_copier_proxy.py +49 -0
- another_ayx_python_sdk/providers/e1_provider/records/__init__.py +23 -0
- another_ayx_python_sdk/providers/e1_provider/records/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/records/__pycache__/base_record_container.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/records/__pycache__/parsed_record_container.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/records/__pycache__/raw_record_container.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/records/base_record_container.py +47 -0
- another_ayx_python_sdk/providers/e1_provider/records/parsed_record_container.py +67 -0
- another_ayx_python_sdk/providers/e1_provider/records/raw_record_container.py +111 -0
- another_ayx_python_sdk/providers/e1_provider/tool_config_loader.py +132 -0
- another_ayx_python_sdk/providers/e1_provider/utilities/__init__.py +35 -0
- another_ayx_python_sdk/providers/e1_provider/utilities/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/utilities/__pycache__/utilities.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/e1_provider/utilities/utilities.py +54 -0
- another_ayx_python_sdk/providers/e1_provider/workflow_config.py +31 -0
- another_ayx_python_sdk/providers/file_provider/__init__.py +32 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/environment.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/file_adapter.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider_dcm.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider_input_anchor.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider_input_connection.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/file_provider_output_anchor.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/file_record_packet.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/iox.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/__pycache__/tool_input.cpython-310.pyc +0 -0
- another_ayx_python_sdk/providers/file_provider/environment.py +131 -0
- another_ayx_python_sdk/providers/file_provider/file_adapter.py +286 -0
- another_ayx_python_sdk/providers/file_provider/file_provider.py +185 -0
- another_ayx_python_sdk/providers/file_provider/file_provider_dcm.py +53 -0
- another_ayx_python_sdk/providers/file_provider/file_provider_input_anchor.py +70 -0
- another_ayx_python_sdk/providers/file_provider/file_provider_input_connection.py +112 -0
- another_ayx_python_sdk/providers/file_provider/file_provider_output_anchor.py +114 -0
- another_ayx_python_sdk/providers/file_provider/file_record_packet.py +21 -0
- another_ayx_python_sdk/providers/file_provider/iox.py +56 -0
- another_ayx_python_sdk/providers/file_provider/tool_input.py +104 -0
- another_ayx_python_sdk/test_harness/__init__.py +14 -0
- another_ayx_python_sdk/test_harness/__main__.py +120 -0
- another_ayx_python_sdk/test_harness/__pycache__/__init__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/test_harness/__pycache__/__main__.cpython-310.pyc +0 -0
- another_ayx_python_sdk/test_harness/__pycache__/plugin_runner.cpython-310.pyc +0 -0
- another_ayx_python_sdk/test_harness/__pycache__/process_lifecycle_manager.cpython-310.pyc +0 -0
- another_ayx_python_sdk/test_harness/__pycache__/sdk_engine_service.cpython-310.pyc +0 -0
- another_ayx_python_sdk/test_harness/plugin_runner.py +416 -0
- another_ayx_python_sdk/test_harness/process_lifecycle_manager.py +80 -0
- another_ayx_python_sdk/test_harness/sdk_engine_service.py +106 -0
- another_ayx_python_sdk/version.py +8 -0
- another_ayx_python_sdk-2.4.2.dist-info/METADATA +63 -0
- another_ayx_python_sdk-2.4.2.dist-info/RECORD +403 -0
- another_ayx_python_sdk-2.4.2.dist-info/WHEEL +5 -0
- another_ayx_python_sdk-2.4.2.dist-info/entry_points.txt +2 -0
- another_ayx_python_sdk-2.4.2.dist-info/licenses/LICENSE +21 -0
- another_ayx_python_sdk-2.4.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,133 @@
|
|
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
|
@@ -0,0 +1,59 @@
|
|
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
|
+
)
|
@@ -0,0 +1,197 @@
|
|
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
|
@@ -0,0 +1,18 @@
|
|
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"]
|
another_ayx_python_sdk/providers/amp_provider/data_transport/__pycache__/__init__.cpython-310.pyc
ADDED
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,127 @@
|
|
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
|
@@ -0,0 +1,35 @@
|
|
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()
|
@@ -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
|
+
"""gRPC Helper Functions."""
|
another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/__init__.cpython-310.pyc
ADDED
Binary file
|
another_ayx_python_sdk/providers/amp_provider/grpc_helpers/__pycache__/control_msgs.cpython-310.pyc
ADDED
Binary file
|