localstack-core 4.7.1.dev22__py3-none-any.whl → 4.7.1.dev24__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.
- localstack/aws/api/apigateway/__init__.py +87 -110
- localstack/aws/api/core.py +2 -3
- localstack/aws/api/events/__init__.py +12 -16
- localstack/aws/api/logs/__init__.py +5 -8
- localstack/aws/api/pipes/__init__.py +24 -32
- localstack/aws/api/scheduler/__init__.py +14 -16
- localstack/aws/api/stepfunctions/__init__.py +88 -114
- localstack/aws/api/support/__init__.py +8 -9
- localstack/aws/chain.py +2 -2
- localstack/aws/client.py +7 -9
- localstack/aws/connect.py +40 -39
- localstack/aws/forwarder.py +5 -4
- localstack/aws/gateway.py +1 -3
- localstack/aws/handlers/analytics.py +1 -2
- localstack/aws/handlers/cors.py +4 -5
- localstack/aws/handlers/logging.py +1 -2
- localstack/aws/handlers/metric_handler.py +3 -4
- localstack/aws/handlers/service.py +5 -5
- localstack/aws/mocking.py +15 -24
- localstack/aws/protocol/op_router.py +11 -10
- localstack/aws/protocol/parser.py +16 -17
- localstack/aws/protocol/serializer.py +37 -40
- localstack/aws/protocol/service_router.py +13 -13
- localstack/aws/protocol/validate.py +5 -5
- localstack/aws/scaffold.py +8 -9
- localstack/aws/serving/edge.py +5 -6
- localstack/aws/serving/hypercorn.py +2 -2
- localstack/aws/serving/twisted.py +1 -2
- localstack/aws/serving/werkzeug.py +2 -2
- localstack/aws/skeleton.py +7 -8
- localstack/aws/spec.py +29 -30
- localstack/cli/localstack.py +6 -6
- localstack/cli/lpm.py +2 -2
- localstack/config.py +14 -15
- localstack/deprecations.py +5 -5
- localstack/dev/run/__main__.py +4 -4
- localstack/dev/run/paths.py +5 -5
- localstack/dns/models.py +2 -1
- localstack/dns/server.py +3 -2
- localstack/http/dispatcher.py +1 -2
- localstack/http/response.py +2 -2
- localstack/http/router.py +1 -1
- localstack/http/trace.py +2 -1
- localstack/logging/format.py +3 -3
- localstack/packages/api.py +5 -5
- localstack/packages/core.py +3 -3
- localstack/packages/debugpy.py +1 -3
- localstack/packages/ffmpeg.py +1 -2
- localstack/packages/java.py +1 -2
- localstack/packages/terraform.py +1 -2
- localstack/runtime/init.py +6 -7
- localstack/runtime/shutdown.py +2 -1
- localstack/services/apigateway/exporter.py +1 -2
- localstack/services/apigateway/helpers.py +6 -6
- localstack/services/apigateway/legacy/context.py +21 -21
- localstack/services/apigateway/legacy/helpers.py +20 -20
- localstack/services/apigateway/legacy/integration.py +7 -7
- localstack/services/apigateway/legacy/router_asf.py +2 -2
- localstack/services/apigateway/legacy/templates.py +5 -5
- localstack/services/apigateway/models.py +16 -16
- localstack/services/apigateway/next_gen/execute_api/api.py +2 -2
- localstack/services/apigateway/next_gen/execute_api/context.py +25 -25
- localstack/services/apigateway/next_gen/execute_api/handlers/api_key_validation.py +2 -5
- localstack/services/apigateway/next_gen/execute_api/handlers/parse.py +1 -2
- localstack/services/apigateway/next_gen/execute_api/handlers/resource_router.py +1 -1
- localstack/services/apigateway/next_gen/execute_api/header_utils.py +1 -1
- localstack/services/apigateway/next_gen/execute_api/helpers.py +2 -2
- localstack/services/apigateway/next_gen/execute_api/integrations/aws.py +6 -6
- localstack/services/apigateway/next_gen/execute_api/integrations/http.py +9 -9
- localstack/services/apigateway/next_gen/execute_api/variables.py +63 -63
- localstack/services/apigateway/resource_providers/aws_apigateway_account.py +3 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_account_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_apikey.py +14 -14
- localstack/services/apigateway/resource_providers/aws_apigateway_apikey_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_basepathmapping.py +5 -5
- localstack/services/apigateway/resource_providers/aws_apigateway_basepathmapping_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_deployment.py +46 -46
- localstack/services/apigateway/resource_providers/aws_apigateway_deployment_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_domainname.py +18 -18
- localstack/services/apigateway/resource_providers/aws_apigateway_domainname_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_gatewayresponse.py +7 -7
- localstack/services/apigateway/resource_providers/aws_apigateway_gatewayresponse_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_method.py +36 -36
- localstack/services/apigateway/resource_providers/aws_apigateway_method_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_model.py +6 -6
- localstack/services/apigateway/resource_providers/aws_apigateway_model_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_requestvalidator.py +6 -6
- localstack/services/apigateway/resource_providers/aws_apigateway_requestvalidator_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_resource.py +5 -5
- localstack/services/apigateway/resource_providers/aws_apigateway_resource_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_restapi.py +26 -26
- localstack/services/apigateway/resource_providers/aws_apigateway_restapi_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_stage.py +33 -33
- localstack/services/apigateway/resource_providers/aws_apigateway_stage_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_usageplan.py +18 -18
- localstack/services/apigateway/resource_providers/aws_apigateway_usageplan_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_usageplankey.py +5 -5
- localstack/services/apigateway/resource_providers/aws_apigateway_usageplankey_plugin.py +1 -3
- localstack/services/cdk/resource_providers/cdk_metadata.py +2 -2
- localstack/services/cdk/resource_providers/cdk_metadata_plugin.py +1 -3
- localstack/services/certificatemanager/resource_providers/aws_certificatemanager_certificate.py +14 -14
- localstack/services/certificatemanager/resource_providers/aws_certificatemanager_certificate_plugin.py +1 -3
- localstack/services/cloudformation/cfn_utils.py +1 -1
- localstack/services/cloudformation/deployment_utils.py +2 -2
- localstack/services/cloudformation/engine/changes.py +3 -3
- localstack/services/cloudformation/engine/entities.py +12 -12
- localstack/services/cloudformation/engine/parameters.py +3 -3
- localstack/services/cloudformation/engine/template_deployer.py +9 -10
- localstack/services/cloudformation/engine/transformers.py +5 -4
- localstack/services/cloudformation/engine/types.py +5 -4
- localstack/services/cloudformation/engine/v2/change_set_model.py +31 -9
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py +6 -6
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py +62 -80
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +15 -14
- localstack/services/cloudformation/engine/v2/change_set_model_transform.py +5 -5
- localstack/services/cloudformation/provider_utils.py +2 -2
- localstack/services/cloudformation/resource_provider.py +10 -9
- localstack/services/cloudformation/resource_providers/aws_cloudformation_macro.py +7 -7
- localstack/services/cloudformation/resource_providers/aws_cloudformation_macro_plugin.py +1 -3
- localstack/services/cloudformation/resource_providers/aws_cloudformation_stack.py +9 -9
- localstack/services/cloudformation/resource_providers/aws_cloudformation_stack_plugin.py +1 -3
- localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcondition.py +6 -6
- localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcondition_plugin.py +1 -3
- localstack/services/cloudformation/resource_providers/aws_cloudformation_waitconditionhandle.py +2 -2
- localstack/services/cloudformation/resource_providers/aws_cloudformation_waitconditionhandle_plugin.py +1 -3
- localstack/services/cloudformation/scaffolding/__main__.py +8 -7
- localstack/services/cloudformation/scaffolding/propgen.py +2 -2
- localstack/services/cloudformation/stores.py +2 -3
- localstack/services/cloudformation/v2/entities.py +57 -36
- localstack/services/cloudformation/v2/provider.py +155 -29
- localstack/services/cloudwatch/alarm_scheduler.py +7 -7
- localstack/services/cloudwatch/cloudwatch_database_helper.py +4 -5
- localstack/services/cloudwatch/models.py +5 -7
- localstack/services/cloudwatch/provider.py +12 -12
- localstack/services/cloudwatch/provider_v2.py +2 -4
- localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm.py +40 -40
- localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm_plugin.py +1 -3
- localstack/services/cloudwatch/resource_providers/aws_cloudwatch_compositealarm.py +12 -12
- localstack/services/cloudwatch/resource_providers/aws_cloudwatch_compositealarm_plugin.py +1 -3
- localstack/services/dynamodb/packages.py +1 -2
- localstack/services/dynamodb/provider.py +7 -8
- localstack/services/dynamodb/resource_providers/aws_dynamodb_globaltable.py +63 -63
- localstack/services/dynamodb/resource_providers/aws_dynamodb_globaltable_plugin.py +1 -3
- localstack/services/dynamodb/resource_providers/aws_dynamodb_table.py +57 -57
- localstack/services/dynamodb/resource_providers/aws_dynamodb_table_plugin.py +1 -3
- localstack/services/dynamodb/utils.py +13 -14
- localstack/services/dynamodb/v2/provider.py +6 -7
- localstack/services/dynamodbstreams/dynamodbstreams_api.py +2 -2
- localstack/services/dynamodbstreams/models.py +1 -3
- localstack/services/ec2/patches.py +4 -5
- localstack/services/ec2/provider.py +3 -3
- localstack/services/ec2/resource_providers/aws_ec2_dhcpoptions.py +10 -10
- localstack/services/ec2/resource_providers/aws_ec2_dhcpoptions_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_instance.py +96 -96
- localstack/services/ec2/resource_providers/aws_ec2_instance_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_internetgateway.py +5 -5
- localstack/services/ec2/resource_providers/aws_ec2_internetgateway_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_keypair.py +10 -10
- localstack/services/ec2/resource_providers/aws_ec2_keypair_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_natgateway.py +13 -13
- localstack/services/ec2/resource_providers/aws_ec2_natgateway_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_networkacl.py +6 -6
- localstack/services/ec2/resource_providers/aws_ec2_networkacl_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_prefixlist.py +14 -14
- localstack/services/ec2/resource_providers/aws_ec2_prefixlist_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_route.py +15 -15
- localstack/services/ec2/resource_providers/aws_ec2_route_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_routetable.py +6 -6
- localstack/services/ec2/resource_providers/aws_ec2_routetable_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_securitygroup.py +29 -29
- localstack/services/ec2/resource_providers/aws_ec2_securitygroup_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_subnet.py +19 -19
- localstack/services/ec2/resource_providers/aws_ec2_subnet_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_subnetroutetableassociation.py +4 -4
- localstack/services/ec2/resource_providers/aws_ec2_subnetroutetableassociation_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_transitgateway.py +16 -16
- localstack/services/ec2/resource_providers/aws_ec2_transitgateway_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_transitgatewayattachment.py +9 -9
- localstack/services/ec2/resource_providers/aws_ec2_transitgatewayattachment_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_vpc.py +15 -15
- localstack/services/ec2/resource_providers/aws_ec2_vpc_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_vpcendpoint.py +13 -13
- localstack/services/ec2/resource_providers/aws_ec2_vpcendpoint_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_vpcgatewayattachment.py +5 -5
- localstack/services/ec2/resource_providers/aws_ec2_vpcgatewayattachment_plugin.py +1 -3
- localstack/services/ecr/resource_providers/aws_ecr_repository.py +17 -17
- localstack/services/ecr/resource_providers/aws_ecr_repository_plugin.py +1 -3
- localstack/services/edge.py +5 -5
- localstack/services/es/provider.py +19 -19
- localstack/services/events/archive.py +2 -2
- localstack/services/events/connection.py +5 -5
- localstack/services/events/event_bus.py +9 -9
- localstack/services/events/models.py +25 -25
- localstack/services/events/provider.py +12 -12
- localstack/services/events/replay.py +3 -3
- localstack/services/events/resource_providers/aws_events_apidestination.py +8 -8
- localstack/services/events/resource_providers/aws_events_apidestination_plugin.py +1 -3
- localstack/services/events/resource_providers/aws_events_connection.py +27 -27
- localstack/services/events/resource_providers/aws_events_connection_plugin.py +1 -3
- localstack/services/events/resource_providers/aws_events_eventbus.py +9 -9
- localstack/services/events/resource_providers/aws_events_eventbus_plugin.py +1 -3
- localstack/services/events/resource_providers/aws_events_eventbuspolicy.py +11 -11
- localstack/services/events/resource_providers/aws_events_eventbuspolicy_plugin.py +1 -3
- localstack/services/events/resource_providers/aws_events_rule.py +82 -82
- localstack/services/events/resource_providers/aws_events_rule_plugin.py +1 -3
- localstack/services/events/rule.py +15 -15
- localstack/services/events/target.py +5 -5
- localstack/services/events/utils.py +7 -7
- localstack/services/events/v1/models.py +1 -3
- localstack/services/events/v1/provider.py +10 -10
- localstack/services/firehose/models.py +1 -3
- localstack/services/firehose/provider.py +11 -12
- localstack/services/iam/iam_patches.py +5 -6
- localstack/services/iam/provider.py +4 -4
- localstack/services/iam/resource_providers/aws_iam_accesskey.py +6 -6
- localstack/services/iam/resource_providers/aws_iam_accesskey_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_group.py +9 -9
- localstack/services/iam/resource_providers/aws_iam_group_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_instanceprofile.py +5 -5
- localstack/services/iam/resource_providers/aws_iam_instanceprofile_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_managedpolicy.py +9 -9
- localstack/services/iam/resource_providers/aws_iam_managedpolicy_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_policy.py +7 -7
- localstack/services/iam/resource_providers/aws_iam_policy_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_role.py +16 -16
- localstack/services/iam/resource_providers/aws_iam_role_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_servercertificate.py +10 -10
- localstack/services/iam/resource_providers/aws_iam_servercertificate_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_servicelinkedrole.py +5 -5
- localstack/services/iam/resource_providers/aws_iam_servicelinkedrole_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_user.py +17 -17
- localstack/services/iam/resource_providers/aws_iam_user_plugin.py +1 -3
- localstack/services/kinesis/kinesis_mock_server.py +7 -8
- localstack/services/kinesis/models.py +2 -3
- localstack/services/kinesis/packages.py +3 -3
- localstack/services/kinesis/resource_providers/aws_kinesis_stream.py +13 -13
- localstack/services/kinesis/resource_providers/aws_kinesis_stream_plugin.py +1 -3
- localstack/services/kinesis/resource_providers/aws_kinesis_streamconsumer.py +7 -7
- localstack/services/kinesis/resource_providers/aws_kinesis_streamconsumer_plugin.py +1 -3
- localstack/services/kinesisfirehose/resource_providers/aws_kinesisfirehose_deliverystream.py +191 -191
- localstack/services/kinesisfirehose/resource_providers/aws_kinesisfirehose_deliverystream_plugin.py +1 -3
- localstack/services/kms/models.py +14 -17
- localstack/services/kms/provider.py +2 -3
- localstack/services/kms/resource_providers/aws_kms_alias.py +3 -3
- localstack/services/kms/resource_providers/aws_kms_alias_plugin.py +1 -3
- localstack/services/kms/resource_providers/aws_kms_key.py +14 -14
- localstack/services/kms/resource_providers/aws_kms_key_plugin.py +1 -3
- localstack/services/kms/utils.py +3 -2
- localstack/services/lambda_/api_utils.py +12 -12
- localstack/services/lambda_/custom_endpoints.py +2 -2
- localstack/services/lambda_/event_source_mapping/esm_worker_factory.py +1 -1
- localstack/services/lambda_/event_source_mapping/pipe_utils.py +2 -2
- localstack/services/lambda_/event_source_mapping/pollers/stream_poller.py +1 -1
- localstack/services/lambda_/event_source_mapping/senders/sender_utils.py +2 -1
- localstack/services/lambda_/invocation/assignment.py +1 -2
- localstack/services/lambda_/invocation/docker_runtime_executor.py +5 -4
- localstack/services/lambda_/invocation/execution_environment.py +4 -4
- localstack/services/lambda_/invocation/executor_endpoint.py +5 -5
- localstack/services/lambda_/invocation/internal_sqs_queue.py +1 -1
- localstack/services/lambda_/invocation/lambda_models.py +23 -23
- localstack/services/lambda_/invocation/lambda_service.py +4 -4
- localstack/services/lambda_/invocation/logs.py +2 -3
- localstack/services/lambda_/invocation/runtime_executor.py +3 -3
- localstack/services/lambda_/ldm.py +2 -3
- localstack/services/lambda_/packages.py +2 -3
- localstack/services/lambda_/provider.py +3 -3
- localstack/services/lambda_/resource_providers/aws_lambda_codesigningconfig.py +8 -8
- localstack/services/lambda_/resource_providers/aws_lambda_codesigningconfig_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig.py +11 -11
- localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping.py +39 -39
- localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_function.py +54 -54
- localstack/services/lambda_/resource_providers/aws_lambda_function_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_layerversion.py +11 -11
- localstack/services/lambda_/resource_providers/aws_lambda_layerversion_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_layerversionpermission.py +6 -6
- localstack/services/lambda_/resource_providers/aws_lambda_layerversionpermission_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_permission.py +10 -10
- localstack/services/lambda_/resource_providers/aws_lambda_permission_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_url.py +14 -14
- localstack/services/lambda_/resource_providers/aws_lambda_url_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_version.py +8 -8
- localstack/services/lambda_/resource_providers/aws_lambda_version_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/lambda_alias.py +12 -12
- localstack/services/lambda_/resource_providers/lambda_alias_plugin.py +1 -3
- localstack/services/lambda_/runtimes.py +1 -3
- localstack/services/logs/models.py +1 -3
- localstack/services/logs/provider.py +3 -3
- localstack/services/logs/resource_providers/aws_logs_loggroup.py +9 -9
- localstack/services/logs/resource_providers/aws_logs_loggroup_plugin.py +1 -3
- localstack/services/logs/resource_providers/aws_logs_logstream.py +4 -4
- localstack/services/logs/resource_providers/aws_logs_logstream_plugin.py +1 -3
- localstack/services/logs/resource_providers/aws_logs_subscriptionfilter.py +7 -7
- localstack/services/logs/resource_providers/aws_logs_subscriptionfilter_plugin.py +1 -3
- localstack/services/moto.py +3 -3
- localstack/services/opensearch/cluster.py +13 -13
- localstack/services/opensearch/cluster_manager.py +13 -14
- localstack/services/opensearch/models.py +1 -3
- localstack/services/opensearch/packages.py +1 -2
- localstack/services/opensearch/provider.py +7 -8
- localstack/services/opensearch/resource_providers/aws_elasticsearch_domain.py +61 -61
- localstack/services/opensearch/resource_providers/aws_elasticsearch_domain_plugin.py +1 -3
- localstack/services/opensearch/resource_providers/aws_opensearchservice_domain.py +89 -89
- localstack/services/opensearch/resource_providers/aws_opensearchservice_domain_plugin.py +1 -3
- localstack/services/opensearch/versions.py +1 -3
- localstack/services/plugins.py +26 -25
- localstack/services/redshift/resource_providers/aws_redshift_cluster.py +57 -57
- localstack/services/redshift/resource_providers/aws_redshift_cluster_plugin.py +1 -3
- localstack/services/resource_groups/resource_providers/aws_resourcegroups_group.py +21 -21
- localstack/services/resource_groups/resource_providers/aws_resourcegroups_group_plugin.py +1 -3
- localstack/services/route53/models.py +1 -3
- localstack/services/route53/provider.py +1 -2
- localstack/services/route53/resource_providers/aws_route53_healthcheck.py +6 -6
- localstack/services/route53/resource_providers/aws_route53_healthcheck_plugin.py +1 -3
- localstack/services/route53/resource_providers/aws_route53_recordset.py +27 -27
- localstack/services/route53/resource_providers/aws_route53_recordset_plugin.py +1 -3
- localstack/services/route53resolver/models.py +8 -10
- localstack/services/route53resolver/provider.py +12 -12
- localstack/services/s3/codec.py +2 -2
- localstack/services/s3/cors.py +4 -4
- localstack/services/s3/models.py +72 -72
- localstack/services/s3/notifications.py +19 -19
- localstack/services/s3/presigned_url.py +6 -5
- localstack/services/s3/provider.py +13 -14
- localstack/services/s3/resource_providers/aws_s3_bucket.py +180 -180
- localstack/services/s3/resource_providers/aws_s3_bucket_plugin.py +1 -3
- localstack/services/s3/resource_providers/aws_s3_bucketpolicy.py +4 -4
- localstack/services/s3/resource_providers/aws_s3_bucketpolicy_plugin.py +1 -3
- localstack/services/s3/storage/core.py +4 -3
- localstack/services/s3/storage/ephemeral.py +7 -6
- localstack/services/s3/utils.py +11 -11
- localstack/services/s3/validation.py +1 -1
- localstack/services/s3/website_hosting.py +5 -5
- localstack/services/scheduler/resource_providers/aws_scheduler_schedule.py +60 -60
- localstack/services/scheduler/resource_providers/aws_scheduler_schedule_plugin.py +1 -3
- localstack/services/scheduler/resource_providers/aws_scheduler_schedulegroup.py +9 -9
- localstack/services/scheduler/resource_providers/aws_scheduler_schedulegroup_plugin.py +1 -3
- localstack/services/secretsmanager/provider.py +9 -11
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_resourcepolicy.py +5 -5
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_resourcepolicy_plugin.py +1 -3
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_rotationschedule.py +21 -21
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_rotationschedule_plugin.py +1 -3
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret.py +23 -23
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret_plugin.py +1 -3
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secrettargetattachment.py +5 -5
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secrettargetattachment_plugin.py +1 -3
- localstack/services/ses/provider.py +8 -8
- localstack/services/ses/resource_providers/aws_ses_emailidentity.py +21 -21
- localstack/services/ses/resource_providers/aws_ses_emailidentity_plugin.py +1 -3
- localstack/services/sns/models.py +25 -25
- localstack/services/sns/provider.py +1 -2
- localstack/services/sns/publisher.py +6 -7
- localstack/services/sns/resource_providers/aws_sns_subscription.py +13 -13
- localstack/services/sns/resource_providers/aws_sns_subscription_plugin.py +1 -3
- localstack/services/sns/resource_providers/aws_sns_topic.py +16 -16
- localstack/services/sns/resource_providers/aws_sns_topic_plugin.py +1 -3
- localstack/services/sns/resource_providers/aws_sns_topicpolicy.py +4 -4
- localstack/services/sns/resource_providers/aws_sns_topicpolicy_plugin.py +1 -3
- localstack/services/sqs/models.py +21 -22
- localstack/services/sqs/provider.py +19 -18
- localstack/services/sqs/query_api.py +2 -3
- localstack/services/sqs/resource_providers/aws_sqs_queue.py +21 -21
- localstack/services/sqs/resource_providers/aws_sqs_queue_plugin.py +1 -3
- localstack/services/sqs/resource_providers/aws_sqs_queuepolicy.py +4 -4
- localstack/services/sqs/resource_providers/aws_sqs_queuepolicy_plugin.py +1 -3
- localstack/services/sqs/utils.py +3 -3
- localstack/services/ssm/provider.py +2 -3
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindow.py +15 -15
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindow_plugin.py +1 -3
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtarget.py +10 -10
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtarget_plugin.py +1 -3
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtask.py +48 -48
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtask_plugin.py +1 -3
- localstack/services/ssm/resource_providers/aws_ssm_parameter.py +10 -10
- localstack/services/ssm/resource_providers/aws_ssm_parameter_plugin.py +1 -3
- localstack/services/ssm/resource_providers/aws_ssm_patchbaseline.py +29 -29
- localstack/services/ssm/resource_providers/aws_ssm_patchbaseline_plugin.py +1 -3
- localstack/services/stepfunctions/asl/antlt4utils/antlr4utils.py +3 -4
- localstack/services/stepfunctions/asl/component/common/catch/catcher_decl.py +9 -9
- localstack/services/stepfunctions/asl/component/common/error_name/custom_error_name.py +2 -2
- localstack/services/stepfunctions/asl/component/common/error_name/error_name.py +4 -4
- localstack/services/stepfunctions/asl/component/common/error_name/failure_event.py +8 -8
- localstack/services/stepfunctions/asl/component/common/jsonata/jsonata_template_binding.py +2 -2
- localstack/services/stepfunctions/asl/component/common/path/input_path.py +3 -3
- localstack/services/stepfunctions/asl/component/common/path/output_path.py +3 -3
- localstack/services/stepfunctions/asl/component/common/path/result_path.py +3 -3
- localstack/services/stepfunctions/asl/component/common/payload/payloadvalue/payloadbinding/payload_binding.py +3 -3
- localstack/services/stepfunctions/asl/component/common/retry/retrier_decl.py +8 -8
- localstack/services/stepfunctions/asl/component/common/string/string_expression.py +2 -2
- localstack/services/stepfunctions/asl/component/common/timeouts/timeout.py +3 -3
- localstack/services/stepfunctions/asl/component/eval_component.py +2 -3
- localstack/services/stepfunctions/asl/component/intrinsic/argument/argument.py +3 -3
- localstack/services/stepfunctions/asl/component/intrinsic/jsonata.py +2 -2
- localstack/services/stepfunctions/asl/component/program/program.py +8 -8
- localstack/services/stepfunctions/asl/component/state/state.py +10 -11
- localstack/services/stepfunctions/asl/component/state/state_choice/choice_rule.py +11 -11
- localstack/services/stepfunctions/asl/component/state/state_choice/comparison/operator/implementations/is_operator.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_choice/state_choice.py +1 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/execute_state.py +8 -8
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/item_reader_decl.py +6 -6
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/reader_config/reader_config_decl.py +5 -5
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/resource_eval/resource_eval_s3.py +2 -1
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/distributed_iteration_component.py +8 -8
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/inline_iteration_component.py +7 -7
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/distributed_item_processor_worker.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/inline_item_processor_worker.py +5 -5
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/map_run_record.py +10 -10
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_component.py +3 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_declaration.py +3 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_worker.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/distributed_iterator_worker.py +3 -5
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/inline_iterator.py +1 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/inline_iterator_worker.py +5 -5
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/job.py +9 -9
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/result_writer/resource_eval/resource_eval_s3.py +2 -1
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py +10 -11
- localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branch_worker.py +3 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branches_decl.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/state_parallel.py +1 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/lambda_eval_utils.py +6 -6
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/resource.py +3 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py +10 -10
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_api_gateway.py +15 -15
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_batch.py +5 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_callback.py +18 -17
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_dynamodb.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_ecs.py +5 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_events.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_glue.py +7 -6
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_lambda.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sfn.py +9 -8
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sns.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sqs.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task_lambda.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_fail/state_fail.py +2 -4
- localstack/services/stepfunctions/asl/component/state/state_pass/state_pass.py +3 -5
- localstack/services/stepfunctions/asl/component/state/state_wait/wait_function/timestamp.py +2 -2
- localstack/services/stepfunctions/asl/eval/callback/callback.py +18 -18
- localstack/services/stepfunctions/asl/eval/environment.py +15 -17
- localstack/services/stepfunctions/asl/eval/evaluation_details.py +3 -5
- localstack/services/stepfunctions/asl/eval/event/event_manager.py +9 -9
- localstack/services/stepfunctions/asl/eval/event/logging.py +3 -3
- localstack/services/stepfunctions/asl/eval/program_state.py +8 -8
- localstack/services/stepfunctions/asl/eval/states.py +11 -11
- localstack/services/stepfunctions/asl/eval/test_state/environment.py +3 -5
- localstack/services/stepfunctions/asl/eval/variable_store.py +3 -3
- localstack/services/stepfunctions/asl/jsonata/jsonata.py +5 -4
- localstack/services/stepfunctions/asl/parse/intrinsic/preprocessor.py +1 -2
- localstack/services/stepfunctions/asl/parse/preprocessor.py +30 -30
- localstack/services/stepfunctions/asl/parse/typed_props.py +2 -2
- localstack/services/stepfunctions/asl/utils/encoding.py +2 -2
- localstack/services/stepfunctions/asl/utils/json_path.py +2 -2
- localstack/services/stepfunctions/backend/activity.py +4 -4
- localstack/services/stepfunctions/backend/alias.py +6 -6
- localstack/services/stepfunctions/backend/execution.py +25 -27
- localstack/services/stepfunctions/backend/execution_worker.py +7 -7
- localstack/services/stepfunctions/backend/state_machine.py +26 -26
- localstack/services/stepfunctions/backend/test_state/execution.py +3 -4
- localstack/services/stepfunctions/backend/test_state/execution_worker.py +1 -3
- localstack/services/stepfunctions/mocking/mock_config.py +5 -5
- localstack/services/stepfunctions/mocking/mock_config_file.py +10 -10
- localstack/services/stepfunctions/provider.py +27 -37
- localstack/services/stepfunctions/quotas.py +2 -3
- localstack/services/stepfunctions/resource_providers/aws_stepfunctions_activity.py +6 -6
- localstack/services/stepfunctions/resource_providers/aws_stepfunctions_activity_plugin.py +1 -3
- localstack/services/stepfunctions/resource_providers/aws_stepfunctions_statemachine.py +25 -25
- localstack/services/stepfunctions/resource_providers/aws_stepfunctions_statemachine_plugin.py +1 -3
- localstack/services/stepfunctions/stepfunctions_utils.py +1 -2
- localstack/services/stores.py +7 -7
- localstack/services/transcribe/packages.py +1 -3
- localstack/services/transcribe/provider.py +2 -2
- localstack/state/inspect.py +4 -4
- localstack/state/pickle.py +16 -15
- localstack/testing/aws/asf_utils.py +3 -2
- localstack/testing/aws/lambda_utils.py +15 -14
- localstack/testing/aws/util.py +3 -2
- localstack/testing/pytest/cloudformation/fixtures.py +13 -3
- localstack/testing/pytest/container.py +5 -4
- localstack/testing/pytest/filters.py +1 -3
- localstack/testing/pytest/fixtures.py +11 -11
- localstack/testing/pytest/marking.py +6 -6
- localstack/testing/pytest/path_filter.py +1 -1
- localstack/testing/pytest/stepfunctions/utils.py +1 -1
- localstack/testing/pytest/validation_tracking.py +3 -3
- localstack/testing/scenario/provisioning.py +11 -10
- localstack/testing/snapshots/transformer_utility.py +2 -2
- localstack/testing/testselection/matching.py +2 -2
- localstack/testing/testselection/opt_out.py +1 -1
- localstack/testing/testselection/scripts/filter_by_test_selection.py +1 -1
- localstack/testing/testselection/scripts/generate_test_selection.py +1 -1
- localstack/testing/testselection/testselection.py +2 -2
- localstack/utils/analytics/cli.py +2 -3
- localstack/utils/analytics/client.py +5 -5
- localstack/utils/analytics/events.py +2 -2
- localstack/utils/analytics/metrics/registry.py +1 -1
- localstack/utils/analytics/publisher.py +4 -4
- localstack/utils/analytics/service_request_aggregator.py +3 -3
- localstack/utils/aws/arns.py +2 -2
- localstack/utils/aws/aws_responses.py +14 -21
- localstack/utils/aws/aws_stack.py +7 -11
- localstack/utils/aws/dead_letter_queue.py +3 -4
- localstack/utils/aws/message_forwarding.py +9 -11
- localstack/utils/aws/request_context.py +4 -4
- localstack/utils/aws/templating.py +3 -3
- localstack/utils/batch_policy.py +2 -2
- localstack/utils/bootstrap.py +19 -20
- localstack/utils/collections.py +16 -23
- localstack/utils/config_listener.py +2 -2
- localstack/utils/container_networking.py +3 -3
- localstack/utils/container_utils/container_client.py +72 -75
- localstack/utils/container_utils/docker_cmd_client.py +33 -33
- localstack/utils/container_utils/docker_sdk_client.py +35 -35
- localstack/utils/crypto.py +2 -3
- localstack/utils/diagnose.py +11 -11
- localstack/utils/docker_utils.py +4 -4
- localstack/utils/files.py +1 -2
- localstack/utils/functions.py +2 -2
- localstack/utils/http.py +6 -6
- localstack/utils/iputils.py +2 -1
- localstack/utils/json.py +1 -1
- localstack/utils/net.py +10 -9
- localstack/utils/objects.py +10 -10
- localstack/utils/patch.py +5 -5
- localstack/utils/platform.py +2 -2
- localstack/utils/run.py +7 -7
- localstack/utils/scheduler.py +3 -2
- localstack/utils/strings.py +2 -2
- localstack/utils/tagging.py +3 -3
- localstack/utils/testutil.py +9 -9
- localstack/utils/threads.py +2 -2
- localstack/utils/xml.py +1 -1
- localstack/version.py +2 -2
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/METADATA +1 -1
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/RECORD +544 -544
- localstack_core-4.7.1.dev24.dist-info/plux.json +1 -0
- localstack_core-4.7.1.dev22.dist-info/plux.json +0 -1
- {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack +0 -0
- {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/WHEEL +0 -0
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/entry_points.txt +0 -0
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
1
|
from localstack.aws.api.stepfunctions import HistoryEventType
|
|
4
2
|
from localstack.services.stepfunctions.asl.component.common.flow.end import End
|
|
5
3
|
from localstack.services.stepfunctions.asl.component.common.flow.next import Next
|
|
@@ -16,7 +14,7 @@ from localstack.services.stepfunctions.asl.eval.environment import Environment
|
|
|
16
14
|
|
|
17
15
|
class StateChoice(CommonStateField):
|
|
18
16
|
choices_decl: ChoicesDecl
|
|
19
|
-
default_state:
|
|
17
|
+
default_state: DefaultDecl | None
|
|
20
18
|
|
|
21
19
|
def __init__(self):
|
|
22
20
|
super(StateChoice, self).__init__(
|
|
@@ -3,7 +3,7 @@ import copy
|
|
|
3
3
|
import logging
|
|
4
4
|
import threading
|
|
5
5
|
from threading import Thread
|
|
6
|
-
from typing import Any
|
|
6
|
+
from typing import Any
|
|
7
7
|
|
|
8
8
|
from localstack.aws.api.stepfunctions import HistoryEventType, TaskFailedEventDetails
|
|
9
9
|
from localstack.services.stepfunctions.asl.component.common.catch.catch_decl import CatchDecl
|
|
@@ -44,7 +44,7 @@ class ExecutionState(CommonStateField, abc.ABC):
|
|
|
44
44
|
def __init__(
|
|
45
45
|
self,
|
|
46
46
|
state_entered_event_type: HistoryEventType,
|
|
47
|
-
state_exited_event_type:
|
|
47
|
+
state_exited_event_type: HistoryEventType | None,
|
|
48
48
|
):
|
|
49
49
|
super().__init__(
|
|
50
50
|
state_entered_event_type=state_entered_event_type,
|
|
@@ -54,20 +54,20 @@ class ExecutionState(CommonStateField, abc.ABC):
|
|
|
54
54
|
# Specifies where (in the input) to place the results of executing the state_task that's specified in Resource.
|
|
55
55
|
# The input is then filtered as specified by the OutputPath field (if present) before being used as the
|
|
56
56
|
# state's output.
|
|
57
|
-
self.result_path:
|
|
57
|
+
self.result_path: ResultPath | None = None
|
|
58
58
|
|
|
59
59
|
# ResultSelector (Optional)
|
|
60
60
|
# Pass a collection of key value pairs, where the values are static or selected from the result.
|
|
61
|
-
self.result_selector:
|
|
61
|
+
self.result_selector: ResultSelector | None = None
|
|
62
62
|
|
|
63
63
|
# Retry (Optional)
|
|
64
64
|
# An array of objects, called Retriers, that define a retry policy if the state encounters runtime errors.
|
|
65
|
-
self.retry:
|
|
65
|
+
self.retry: RetryDecl | None = None
|
|
66
66
|
|
|
67
67
|
# Catch (Optional)
|
|
68
68
|
# An array of objects, called Catchers, that define a fallback state. This state is executed if the state
|
|
69
69
|
# encounters runtime errors and its retry policy is exhausted or isn't defined.
|
|
70
|
-
self.catch:
|
|
70
|
+
self.catch: CatchDecl | None = None
|
|
71
71
|
|
|
72
72
|
# TimeoutSeconds (Optional)
|
|
73
73
|
# If the state_task runs longer than the specified seconds, this state fails with a States.Timeout error name.
|
|
@@ -93,7 +93,7 @@ class ExecutionState(CommonStateField, abc.ABC):
|
|
|
93
93
|
# HeartbeatSecondsPath. When resolved, the reference path must select fields whose values are positive integers.
|
|
94
94
|
# A Task state cannot include both HeartbeatSeconds and HeartbeatSecondsPath
|
|
95
95
|
# HeartbeatSeconds and HeartbeatSecondsPath fields are encoded by the Heartbeat type.
|
|
96
|
-
self.heartbeat:
|
|
96
|
+
self.heartbeat: Heartbeat | None = None
|
|
97
97
|
|
|
98
98
|
def from_state_props(self, state_props: StateProps) -> None:
|
|
99
99
|
super().from_state_props(state_props=state_props)
|
|
@@ -171,7 +171,7 @@ class ExecutionState(CommonStateField, abc.ABC):
|
|
|
171
171
|
frame.states.reset(input_value=env.states.get_input())
|
|
172
172
|
frame.stack = copy.deepcopy(env.stack)
|
|
173
173
|
execution_outputs: list[Any] = list()
|
|
174
|
-
execution_exceptions: list[
|
|
174
|
+
execution_exceptions: list[Exception | None] = [None]
|
|
175
175
|
terminated_event = threading.Event()
|
|
176
176
|
|
|
177
177
|
def _exec_and_notify():
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import copy
|
|
2
|
-
from typing import Final
|
|
2
|
+
from typing import Final
|
|
3
3
|
|
|
4
4
|
from localstack.services.stepfunctions.asl.component.common.parargs import Parargs
|
|
5
5
|
from localstack.services.stepfunctions.asl.component.eval_component import EvalComponent
|
|
@@ -26,15 +26,15 @@ from localstack.services.stepfunctions.asl.eval.environment import Environment
|
|
|
26
26
|
|
|
27
27
|
class ItemReader(EvalComponent):
|
|
28
28
|
resource_eval: Final[ResourceEval]
|
|
29
|
-
parargs: Final[
|
|
30
|
-
reader_config: Final[
|
|
31
|
-
resource_output_transformer:
|
|
29
|
+
parargs: Final[Parargs | None]
|
|
30
|
+
reader_config: Final[ReaderConfig | None]
|
|
31
|
+
resource_output_transformer: ResourceOutputTransformer | None
|
|
32
32
|
|
|
33
33
|
def __init__(
|
|
34
34
|
self,
|
|
35
35
|
resource: Resource,
|
|
36
|
-
parargs:
|
|
37
|
-
reader_config:
|
|
36
|
+
parargs: Parargs | None,
|
|
37
|
+
reader_config: ReaderConfig | None,
|
|
38
38
|
):
|
|
39
39
|
self.resource_eval = resource_eval_for(resource=resource)
|
|
40
40
|
self.parargs = parargs
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Final,
|
|
1
|
+
from typing import Final, TypedDict
|
|
2
2
|
|
|
3
3
|
from localstack.services.stepfunctions.asl.component.eval_component import EvalComponent
|
|
4
4
|
from localstack.services.stepfunctions.asl.component.state.state_execution.state_map.item_reader.reader_config.csv_header_location import (
|
|
@@ -34,7 +34,7 @@ MaxItemsValueOutput = int
|
|
|
34
34
|
class ReaderConfigOutput(TypedDict):
|
|
35
35
|
InputType: InputTypeOutput
|
|
36
36
|
CSVHeaderLocation: CSVHeaderLocationOutput
|
|
37
|
-
CSVHeaders:
|
|
37
|
+
CSVHeaders: CSVHeadersOutput | None
|
|
38
38
|
MaxItemsValue: MaxItemsValueOutput
|
|
39
39
|
|
|
40
40
|
|
|
@@ -42,14 +42,14 @@ class ReaderConfig(EvalComponent):
|
|
|
42
42
|
input_type: Final[InputType]
|
|
43
43
|
max_items_decl: Final[MaxItemsDecl]
|
|
44
44
|
csv_header_location: Final[CSVHeaderLocation]
|
|
45
|
-
csv_headers:
|
|
45
|
+
csv_headers: CSVHeaders | None
|
|
46
46
|
|
|
47
47
|
def __init__(
|
|
48
48
|
self,
|
|
49
49
|
input_type: InputType,
|
|
50
50
|
csv_header_location: CSVHeaderLocation,
|
|
51
|
-
csv_headers:
|
|
52
|
-
max_items_decl:
|
|
51
|
+
csv_headers: CSVHeaders | None,
|
|
52
|
+
max_items_decl: MaxItemsDecl | None,
|
|
53
53
|
):
|
|
54
54
|
self.input_type = input_type
|
|
55
55
|
self.max_items_decl = max_items_decl or MaxItemsInt()
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from collections.abc import Callable
|
|
4
|
+
from typing import Final
|
|
4
5
|
|
|
5
6
|
from localstack.services.stepfunctions.asl.component.state.state_execution.state_map.item_reader.resource_eval.resource_eval import (
|
|
6
7
|
ResourceEval,
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import abc
|
|
4
4
|
import json
|
|
5
|
-
from typing import Any, Final
|
|
5
|
+
from typing import Any, Final
|
|
6
6
|
|
|
7
7
|
from localstack.aws.api.stepfunctions import (
|
|
8
8
|
HistoryEventType,
|
|
@@ -50,8 +50,8 @@ from localstack.services.stepfunctions.asl.eval.event.event_manager import (
|
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
class DistributedIterationComponentEvalInput(InlineIterationComponentEvalInput):
|
|
53
|
-
item_reader: Final[
|
|
54
|
-
label: Final[
|
|
53
|
+
item_reader: Final[ItemReader | None]
|
|
54
|
+
label: Final[str | None]
|
|
55
55
|
map_run_record: Final[MapRunRecord]
|
|
56
56
|
|
|
57
57
|
def __init__(
|
|
@@ -59,12 +59,12 @@ class DistributedIterationComponentEvalInput(InlineIterationComponentEvalInput):
|
|
|
59
59
|
state_name: str,
|
|
60
60
|
max_concurrency: int,
|
|
61
61
|
input_items: list[json],
|
|
62
|
-
parameters:
|
|
63
|
-
item_selector:
|
|
64
|
-
item_reader:
|
|
62
|
+
parameters: Parameters | None,
|
|
63
|
+
item_selector: ItemSelector | None,
|
|
64
|
+
item_reader: ItemReader | None,
|
|
65
65
|
tolerated_failure_count: int,
|
|
66
66
|
tolerated_failure_percentage: float,
|
|
67
|
-
label:
|
|
67
|
+
label: str | None,
|
|
68
68
|
map_run_record: MapRunRecord,
|
|
69
69
|
):
|
|
70
70
|
super().__init__(
|
|
@@ -118,7 +118,7 @@ class DistributedIterationComponent(InlineIterationComponent, abc.ABC):
|
|
|
118
118
|
|
|
119
119
|
job_pool.await_jobs()
|
|
120
120
|
|
|
121
|
-
worker_exception:
|
|
121
|
+
worker_exception: Exception | None = job_pool.get_worker_exception()
|
|
122
122
|
if worker_exception is not None:
|
|
123
123
|
raise worker_exception
|
|
124
124
|
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import abc
|
|
4
4
|
import json
|
|
5
5
|
import threading
|
|
6
|
-
from typing import Any, Final
|
|
6
|
+
from typing import Any, Final
|
|
7
7
|
|
|
8
8
|
from localstack.services.stepfunctions.asl.component.common.comment import Comment
|
|
9
9
|
from localstack.services.stepfunctions.asl.component.common.flow.start_at import StartAt
|
|
@@ -38,16 +38,16 @@ class InlineIterationComponentEvalInput:
|
|
|
38
38
|
state_name: Final[str]
|
|
39
39
|
max_concurrency: Final[int]
|
|
40
40
|
input_items: Final[list[json]]
|
|
41
|
-
parameters: Final[
|
|
42
|
-
item_selector: Final[
|
|
41
|
+
parameters: Final[Parameters | None]
|
|
42
|
+
item_selector: Final[ItemSelector | None]
|
|
43
43
|
|
|
44
44
|
def __init__(
|
|
45
45
|
self,
|
|
46
46
|
state_name: str,
|
|
47
47
|
max_concurrency: int,
|
|
48
48
|
input_items: list[json],
|
|
49
|
-
parameters:
|
|
50
|
-
item_selector:
|
|
49
|
+
parameters: Parameters | None,
|
|
50
|
+
item_selector: ItemSelector | None,
|
|
51
51
|
):
|
|
52
52
|
self.state_name = state_name
|
|
53
53
|
self.max_concurrency = max_concurrency
|
|
@@ -65,7 +65,7 @@ class InlineIterationComponent(IterationComponent, abc.ABC):
|
|
|
65
65
|
start_at: StartAt,
|
|
66
66
|
states: States,
|
|
67
67
|
processor_config: ProcessorConfig,
|
|
68
|
-
comment:
|
|
68
|
+
comment: Comment | None,
|
|
69
69
|
):
|
|
70
70
|
super().__init__(
|
|
71
71
|
query_language=query_language, start_at=start_at, states=states, comment=comment
|
|
@@ -105,7 +105,7 @@ class InlineIterationComponent(IterationComponent, abc.ABC):
|
|
|
105
105
|
|
|
106
106
|
job_pool.await_jobs()
|
|
107
107
|
|
|
108
|
-
worker_exception:
|
|
108
|
+
worker_exception: Exception | None = job_pool.get_worker_exception()
|
|
109
109
|
if worker_exception is not None:
|
|
110
110
|
raise worker_exception
|
|
111
111
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from typing import Final
|
|
2
|
+
from typing import Final
|
|
3
3
|
|
|
4
4
|
from localstack.services.stepfunctions.asl.component.common.error_name.failure_event import (
|
|
5
5
|
FailureEventException,
|
|
@@ -44,8 +44,8 @@ class DistributedItemProcessorWorker(InlineItemProcessorWorker):
|
|
|
44
44
|
job_pool: JobPool,
|
|
45
45
|
env: Environment,
|
|
46
46
|
item_reader: ItemReader,
|
|
47
|
-
parameters:
|
|
48
|
-
item_selector:
|
|
47
|
+
parameters: Parameters | None,
|
|
48
|
+
item_selector: ItemSelector | None,
|
|
49
49
|
map_run_record: MapRunRecord,
|
|
50
50
|
):
|
|
51
51
|
super().__init__(
|
|
@@ -124,7 +124,7 @@ class DistributedItemProcessorWorker(InlineItemProcessorWorker):
|
|
|
124
124
|
self._map_run_record.item_counter.running.offset(-1)
|
|
125
125
|
job.job_output = job_output
|
|
126
126
|
|
|
127
|
-
def _eval_pool(self, job:
|
|
127
|
+
def _eval_pool(self, job: Job | None, worker_frame: Environment) -> None:
|
|
128
128
|
if job is None:
|
|
129
129
|
self._env.delete_frame(worker_frame)
|
|
130
130
|
return
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from typing import Final
|
|
2
|
+
from typing import Final
|
|
3
3
|
|
|
4
4
|
from localstack.services.stepfunctions.asl.component.common.parargs import Parameters
|
|
5
5
|
from localstack.services.stepfunctions.asl.component.state.state_execution.state_map.item_selector import (
|
|
@@ -17,16 +17,16 @@ LOG = logging.getLogger(__name__)
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class InlineItemProcessorWorker(IterationWorker):
|
|
20
|
-
_parameters: Final[
|
|
21
|
-
_item_selector: Final[
|
|
20
|
+
_parameters: Final[Parameters | None]
|
|
21
|
+
_item_selector: Final[ItemSelector | None]
|
|
22
22
|
|
|
23
23
|
def __init__(
|
|
24
24
|
self,
|
|
25
25
|
work_name: str,
|
|
26
26
|
job_pool: JobPool,
|
|
27
27
|
env: Environment,
|
|
28
|
-
item_selector:
|
|
29
|
-
parameters:
|
|
28
|
+
item_selector: ItemSelector | None,
|
|
29
|
+
parameters: Parameters | None,
|
|
30
30
|
):
|
|
31
31
|
super().__init__(work_name=work_name, job_pool=job_pool, env=env)
|
|
32
32
|
self._item_selector = item_selector
|
|
@@ -2,7 +2,7 @@ import abc
|
|
|
2
2
|
import datetime
|
|
3
3
|
import threading
|
|
4
4
|
from collections import OrderedDict
|
|
5
|
-
from typing import Final
|
|
5
|
+
from typing import Final
|
|
6
6
|
|
|
7
7
|
from localstack.aws.api.stepfunctions import (
|
|
8
8
|
Arn,
|
|
@@ -98,7 +98,7 @@ class MapRunRecord:
|
|
|
98
98
|
item_counter: Final[ItemCounter]
|
|
99
99
|
start_date: Timestamp
|
|
100
100
|
status: MapRunStatus
|
|
101
|
-
stop_date:
|
|
101
|
+
stop_date: Timestamp | None
|
|
102
102
|
# TODO: add support for failure toleration fields.
|
|
103
103
|
tolerated_failure_count: int
|
|
104
104
|
tolerated_failure_percentage: float
|
|
@@ -110,7 +110,7 @@ class MapRunRecord:
|
|
|
110
110
|
max_concurrency: int,
|
|
111
111
|
tolerated_failure_count: int,
|
|
112
112
|
tolerated_failure_percentage: float,
|
|
113
|
-
label:
|
|
113
|
+
label: str | None,
|
|
114
114
|
):
|
|
115
115
|
self.update_event = threading.Event()
|
|
116
116
|
(
|
|
@@ -123,7 +123,7 @@ class MapRunRecord:
|
|
|
123
123
|
self.max_concurrency = max_concurrency
|
|
124
124
|
self.execution_counter = ExecutionCounter()
|
|
125
125
|
self.item_counter = ItemCounter()
|
|
126
|
-
self.start_date = datetime.datetime.now(tz=datetime.
|
|
126
|
+
self.start_date = datetime.datetime.now(tz=datetime.UTC)
|
|
127
127
|
self.status = MapRunStatus.RUNNING
|
|
128
128
|
self.stop_date = None
|
|
129
129
|
self.tolerated_failure_count = tolerated_failure_count
|
|
@@ -131,7 +131,7 @@ class MapRunRecord:
|
|
|
131
131
|
|
|
132
132
|
@staticmethod
|
|
133
133
|
def _generate_map_run_arns(
|
|
134
|
-
state_machine_arn: Arn, label:
|
|
134
|
+
state_machine_arn: Arn, label: str | None
|
|
135
135
|
) -> tuple[LongArn, LongArn]:
|
|
136
136
|
# Generate a new MapRunArn given the StateMachineArn, such that:
|
|
137
137
|
# inp: arn:aws:states:<region>:111111111111:stateMachine:<ArnPart_0idx>
|
|
@@ -144,7 +144,7 @@ class MapRunRecord:
|
|
|
144
144
|
|
|
145
145
|
def set_stop(self, status: MapRunStatus):
|
|
146
146
|
self.status = status
|
|
147
|
-
self.stop_date = datetime.datetime.now(tz=datetime.
|
|
147
|
+
self.stop_date = datetime.datetime.now(tz=datetime.UTC)
|
|
148
148
|
|
|
149
149
|
def describe(self) -> DescribeMapRunOutput:
|
|
150
150
|
describe_output = DescribeMapRunOutput(
|
|
@@ -176,9 +176,9 @@ class MapRunRecord:
|
|
|
176
176
|
|
|
177
177
|
def update(
|
|
178
178
|
self,
|
|
179
|
-
max_concurrency:
|
|
180
|
-
tolerated_failure_count:
|
|
181
|
-
tolerated_failure_percentage:
|
|
179
|
+
max_concurrency: int | None,
|
|
180
|
+
tolerated_failure_count: int | None,
|
|
181
|
+
tolerated_failure_percentage: float | None,
|
|
182
182
|
) -> None:
|
|
183
183
|
if max_concurrency is not None:
|
|
184
184
|
self.max_concurrency = max_concurrency
|
|
@@ -198,7 +198,7 @@ class MapRunRecordPoolManager:
|
|
|
198
198
|
def add(self, map_run_record: MapRunRecord) -> None:
|
|
199
199
|
self._pool[map_run_record.map_run_arn] = map_run_record
|
|
200
200
|
|
|
201
|
-
def get(self, map_run_arn: LongArn) ->
|
|
201
|
+
def get(self, map_run_arn: LongArn) -> MapRunRecord | None:
|
|
202
202
|
return self._pool.get(map_run_arn)
|
|
203
203
|
|
|
204
204
|
def get_all(self) -> list[MapRunRecord]:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import abc
|
|
4
|
-
from typing import Final
|
|
4
|
+
from typing import Final
|
|
5
5
|
|
|
6
6
|
from localstack.services.stepfunctions.asl.component.common.comment import Comment
|
|
7
7
|
from localstack.services.stepfunctions.asl.component.common.flow.start_at import StartAt
|
|
@@ -18,14 +18,14 @@ class IterationComponent(EvalComponent, abc.ABC):
|
|
|
18
18
|
_query_language: Final[QueryLanguage]
|
|
19
19
|
_start_at: Final[StartAt]
|
|
20
20
|
_states: Final[States]
|
|
21
|
-
_comment: Final[
|
|
21
|
+
_comment: Final[Comment | None]
|
|
22
22
|
|
|
23
23
|
def __init__(
|
|
24
24
|
self,
|
|
25
25
|
query_language: QueryLanguage,
|
|
26
26
|
start_at: StartAt,
|
|
27
27
|
states: States,
|
|
28
|
-
comment:
|
|
28
|
+
comment: Comment | None,
|
|
29
29
|
):
|
|
30
30
|
self._query_language = query_language
|
|
31
31
|
self._start_at = start_at
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Final
|
|
1
|
+
from typing import Final
|
|
2
2
|
|
|
3
3
|
from localstack.services.stepfunctions.asl.component.common.comment import Comment
|
|
4
4
|
from localstack.services.stepfunctions.asl.component.common.flow.start_at import StartAt
|
|
@@ -11,7 +11,7 @@ from localstack.services.stepfunctions.asl.component.state.state_execution.state
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class IterationDecl(Component):
|
|
14
|
-
comment: Final[
|
|
14
|
+
comment: Final[Comment | None]
|
|
15
15
|
query_language: Final[QueryLanguage]
|
|
16
16
|
start_at: Final[StartAt]
|
|
17
17
|
states: Final[States]
|
|
@@ -19,7 +19,7 @@ class IterationDecl(Component):
|
|
|
19
19
|
|
|
20
20
|
def __init__(
|
|
21
21
|
self,
|
|
22
|
-
comment:
|
|
22
|
+
comment: Comment | None,
|
|
23
23
|
query_language: QueryLanguage,
|
|
24
24
|
start_at: StartAt,
|
|
25
25
|
states: States,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import abc
|
|
2
2
|
import logging
|
|
3
|
-
from typing import Final
|
|
3
|
+
from typing import Final
|
|
4
4
|
|
|
5
5
|
from localstack.aws.api.stepfunctions import HistoryEventType, MapIterationEventDetails
|
|
6
6
|
from localstack.services.stepfunctions.asl.component.common.error_name.custom_error_name import (
|
|
@@ -169,7 +169,7 @@ class IterationWorker(abc.ABC):
|
|
|
169
169
|
finally:
|
|
170
170
|
job.job_output = job_output
|
|
171
171
|
|
|
172
|
-
def _eval_pool(self, job:
|
|
172
|
+
def _eval_pool(self, job: Job | None, worker_frame: Environment) -> None:
|
|
173
173
|
# Note: the frame has to be closed before the job, to ensure the owner environment is correctly updated
|
|
174
174
|
# before the evaluation continues; map states await for job termination not workers termination.
|
|
175
175
|
if job is None:
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
1
|
from localstack.services.stepfunctions.asl.component.common.error_name.failure_event import (
|
|
4
2
|
FailureEventException,
|
|
5
3
|
)
|
|
@@ -35,9 +33,9 @@ class DistributedIteratorWorker(InlineIteratorWorker):
|
|
|
35
33
|
work_name: str,
|
|
36
34
|
job_pool: JobPool,
|
|
37
35
|
env: Environment,
|
|
38
|
-
parameters:
|
|
36
|
+
parameters: Parameters | None,
|
|
39
37
|
map_run_record: MapRunRecord,
|
|
40
|
-
item_selector:
|
|
38
|
+
item_selector: ItemSelector | None,
|
|
41
39
|
):
|
|
42
40
|
super().__init__(
|
|
43
41
|
work_name=work_name,
|
|
@@ -99,7 +97,7 @@ class DistributedIteratorWorker(InlineIteratorWorker):
|
|
|
99
97
|
self._map_run_record.item_counter.running.offset(-1)
|
|
100
98
|
job.job_output = job_output
|
|
101
99
|
|
|
102
|
-
def _eval_pool(self, job:
|
|
100
|
+
def _eval_pool(self, job: Job | None, worker_frame: Environment) -> None:
|
|
103
101
|
# Note: the frame has to be closed before the job, to ensure the owner environment is correctly updated
|
|
104
102
|
# before the evaluation continues; map states await for job termination not workers termination.
|
|
105
103
|
if job is None:
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
-
from typing import Optional
|
|
5
4
|
|
|
6
5
|
from localstack.services.stepfunctions.asl.component.state.state_execution.state_map.iteration.inline_iteration_component import (
|
|
7
6
|
InlineIterationComponent,
|
|
@@ -26,7 +25,7 @@ class InlineIteratorEvalInput(InlineIterationComponentEvalInput):
|
|
|
26
25
|
|
|
27
26
|
|
|
28
27
|
class InlineIterator(InlineIterationComponent):
|
|
29
|
-
_eval_input:
|
|
28
|
+
_eval_input: InlineIteratorEvalInput | None
|
|
30
29
|
|
|
31
30
|
def _create_worker(
|
|
32
31
|
self, env: Environment, eval_input: InlineIteratorEvalInput, job_pool: JobPool
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from typing import Final
|
|
2
|
+
from typing import Final
|
|
3
3
|
|
|
4
4
|
from localstack.services.stepfunctions.asl.component.common.parargs import Parameters
|
|
5
5
|
from localstack.services.stepfunctions.asl.component.state.state_execution.state_map.item_selector import (
|
|
@@ -17,16 +17,16 @@ LOG = logging.getLogger(__name__)
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class InlineIteratorWorker(IterationWorker):
|
|
20
|
-
_parameters: Final[
|
|
21
|
-
_item_selector: Final[
|
|
20
|
+
_parameters: Final[Parameters | None]
|
|
21
|
+
_item_selector: Final[ItemSelector | None]
|
|
22
22
|
|
|
23
23
|
def __init__(
|
|
24
24
|
self,
|
|
25
25
|
work_name: str,
|
|
26
26
|
job_pool: JobPool,
|
|
27
27
|
env: Environment,
|
|
28
|
-
item_selector:
|
|
29
|
-
parameters:
|
|
28
|
+
item_selector: ItemSelector | None,
|
|
29
|
+
parameters: Parameters | None,
|
|
30
30
|
):
|
|
31
31
|
super().__init__(work_name=work_name, job_pool=job_pool, env=env)
|
|
32
32
|
self._item_selector = item_selector
|
localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/job.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import copy
|
|
2
2
|
import logging
|
|
3
3
|
import threading
|
|
4
|
-
from typing import Any, Final
|
|
4
|
+
from typing import Any, Final
|
|
5
5
|
|
|
6
6
|
from localstack.services.stepfunctions.asl.component.program.program import Program
|
|
7
7
|
from localstack.services.stepfunctions.asl.utils.encoding import to_json_str
|
|
@@ -12,10 +12,10 @@ LOG = logging.getLogger(__name__)
|
|
|
12
12
|
class Job:
|
|
13
13
|
job_index: Final[int]
|
|
14
14
|
job_program: Final[Program]
|
|
15
|
-
job_input: Final[
|
|
16
|
-
job_output:
|
|
15
|
+
job_input: Final[Any | None]
|
|
16
|
+
job_output: Any | None
|
|
17
17
|
|
|
18
|
-
def __init__(self, job_index: int, job_program: Program, job_input:
|
|
18
|
+
def __init__(self, job_index: int, job_program: Program, job_input: Any | None):
|
|
19
19
|
self.job_index = job_index
|
|
20
20
|
self.job_program = job_program
|
|
21
21
|
self.job_input = job_input
|
|
@@ -24,9 +24,9 @@ class Job:
|
|
|
24
24
|
|
|
25
25
|
class JobClosed:
|
|
26
26
|
job_index: Final[int]
|
|
27
|
-
job_output:
|
|
27
|
+
job_output: Any | None
|
|
28
28
|
|
|
29
|
-
def __init__(self, job_index: int, job_output:
|
|
29
|
+
def __init__(self, job_index: int, job_output: Any | None):
|
|
30
30
|
self.job_index = job_index
|
|
31
31
|
self.job_output = job_output
|
|
32
32
|
|
|
@@ -37,7 +37,7 @@ class JobClosed:
|
|
|
37
37
|
class JobPool:
|
|
38
38
|
_mutex: Final[threading.Lock]
|
|
39
39
|
_termination_event: Final[threading.Event]
|
|
40
|
-
_worker_exception:
|
|
40
|
+
_worker_exception: Exception | None
|
|
41
41
|
|
|
42
42
|
_jobs_number: Final[int]
|
|
43
43
|
_open_jobs: Final[list[Job]]
|
|
@@ -56,7 +56,7 @@ class JobPool:
|
|
|
56
56
|
self._open_jobs.reverse()
|
|
57
57
|
self._closed_jobs = set()
|
|
58
58
|
|
|
59
|
-
def next_job(self) ->
|
|
59
|
+
def next_job(self) -> Any | None:
|
|
60
60
|
with self._mutex:
|
|
61
61
|
if self._worker_exception is not None:
|
|
62
62
|
return None
|
|
@@ -72,7 +72,7 @@ class JobPool:
|
|
|
72
72
|
if self._is_terminated():
|
|
73
73
|
self._termination_event.set()
|
|
74
74
|
|
|
75
|
-
def get_worker_exception(self) ->
|
|
75
|
+
def get_worker_exception(self) -> Exception | None:
|
|
76
76
|
return self._worker_exception
|
|
77
77
|
|
|
78
78
|
def close_job(self, job: Job) -> None:
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
|
-
from
|
|
4
|
+
from collections.abc import Callable
|
|
5
|
+
from typing import Final
|
|
5
6
|
|
|
6
7
|
from localstack.services.stepfunctions.asl.component.state.state_execution.state_map.result_writer.resource_eval.resource_eval import (
|
|
7
8
|
ResourceEval,
|
localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import copy
|
|
2
|
-
from typing import Optional
|
|
3
2
|
|
|
4
3
|
from localstack.aws.api.stepfunctions import (
|
|
5
4
|
EvaluationFailedEventDetails,
|
|
@@ -99,21 +98,21 @@ from localstack.services.stepfunctions.asl.eval.event.event_detail import EventD
|
|
|
99
98
|
|
|
100
99
|
|
|
101
100
|
class StateMap(ExecutionState):
|
|
102
|
-
items:
|
|
103
|
-
items_path:
|
|
101
|
+
items: Items | None
|
|
102
|
+
items_path: ItemsPath | None
|
|
104
103
|
iteration_component: IterationComponent
|
|
105
|
-
item_reader:
|
|
106
|
-
item_selector:
|
|
107
|
-
parameters:
|
|
104
|
+
item_reader: ItemReader | None
|
|
105
|
+
item_selector: ItemSelector | None
|
|
106
|
+
parameters: Parameters | None
|
|
108
107
|
max_concurrency_decl: MaxConcurrencyDecl
|
|
109
108
|
tolerated_failure_count_decl: ToleratedFailureCountDecl
|
|
110
109
|
tolerated_failure_percentage_decl: ToleratedFailurePercentage
|
|
111
|
-
result_path:
|
|
110
|
+
result_path: ResultPath | None
|
|
112
111
|
result_selector: ResultSelector
|
|
113
|
-
retry:
|
|
114
|
-
catch:
|
|
115
|
-
label:
|
|
116
|
-
result_writer:
|
|
112
|
+
retry: RetryDecl | None
|
|
113
|
+
catch: CatchDecl | None
|
|
114
|
+
label: Label | None
|
|
115
|
+
result_writer: ResultWriter | None
|
|
117
116
|
|
|
118
117
|
def __init__(self):
|
|
119
118
|
super(StateMap, self).__init__(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import abc
|
|
2
2
|
import logging
|
|
3
3
|
import threading
|
|
4
|
-
from typing import Final
|
|
4
|
+
from typing import Final
|
|
5
5
|
|
|
6
6
|
from localstack.aws.api.stepfunctions import Timestamp
|
|
7
7
|
from localstack.services.stepfunctions.asl.component.program.program import Program
|
|
@@ -18,7 +18,7 @@ class BranchWorker:
|
|
|
18
18
|
|
|
19
19
|
_branch_worker_comm: Final[BranchWorkerComm]
|
|
20
20
|
_program: Final[Program]
|
|
21
|
-
_worker_thread:
|
|
21
|
+
_worker_thread: threading.Thread | None
|
|
22
22
|
env: Final[Environment]
|
|
23
23
|
|
|
24
24
|
def __init__(self, branch_worker_comm: BranchWorkerComm, program: Program, env: Environment):
|
|
@@ -43,7 +43,7 @@ class BranchWorker:
|
|
|
43
43
|
TMP_THREADS.append(self._worker_thread)
|
|
44
44
|
self._worker_thread.start()
|
|
45
45
|
|
|
46
|
-
def stop(self, stop_date: Timestamp, cause:
|
|
46
|
+
def stop(self, stop_date: Timestamp, cause: str | None, error: str | None) -> None:
|
|
47
47
|
env = self.env
|
|
48
48
|
if env:
|
|
49
49
|
try:
|