localstack-core 4.7.1.dev39__py3-none-any.whl → 4.7.1.dev41__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.

Potentially problematic release.


This version of localstack-core might be problematic. Click here for more details.

Files changed (86) hide show
  1. localstack/aws/handlers/service.py +2 -2
  2. localstack/aws/mocking.py +1 -1
  3. localstack/aws/protocol/serializer.py +1 -1
  4. localstack/config.py +1 -1
  5. localstack/dev/run/__main__.py +1 -1
  6. localstack/services/cloudformation/engine/entities.py +1 -1
  7. localstack/services/cloudformation/engine/parameters.py +1 -1
  8. localstack/services/cloudformation/engine/v2/change_set_model.py +16 -16
  9. localstack/services/cloudformation/engine/v2/change_set_model_describer.py +1 -1
  10. localstack/services/cloudformation/engine/v2/change_set_model_executor.py +3 -3
  11. localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +16 -16
  12. localstack/services/cloudformation/engine/v2/change_set_model_transform.py +3 -3
  13. localstack/services/cloudformation/engine/v2/change_set_model_validator.py +1 -1
  14. localstack/services/cloudformation/scaffolding/__main__.py +5 -5
  15. localstack/services/cloudformation/stores.py +1 -1
  16. localstack/services/cloudformation/v2/provider.py +3 -3
  17. localstack/services/lambda_/api_utils.py +1 -1
  18. localstack/services/lambda_/invocation/docker_runtime_executor.py +1 -1
  19. localstack/services/lambda_/provider.py +1 -1
  20. localstack/services/secretsmanager/provider.py +1 -1
  21. localstack/services/sqs/provider.py +1 -1
  22. localstack/services/stepfunctions/asl/component/common/assign/assign_decl.py +1 -1
  23. localstack/services/stepfunctions/asl/component/common/assign/assign_decl_binding.py +1 -1
  24. localstack/services/stepfunctions/asl/component/common/assign/assign_template_value_array.py +1 -1
  25. localstack/services/stepfunctions/asl/component/common/assign/assign_template_value_object.py +1 -1
  26. localstack/services/stepfunctions/asl/component/common/error_name/states_error_name_type.py +1 -1
  27. localstack/services/stepfunctions/asl/component/common/jsonata/jsonata_template_value_array.py +1 -1
  28. localstack/services/stepfunctions/asl/component/common/jsonata/jsonata_template_value_object.py +1 -1
  29. localstack/services/stepfunctions/asl/component/common/path/input_path.py +1 -1
  30. localstack/services/stepfunctions/asl/component/common/path/output_path.py +1 -1
  31. localstack/services/stepfunctions/asl/component/common/payload/payloadvalue/payloadarr/payload_arr.py +1 -1
  32. localstack/services/stepfunctions/asl/component/common/payload/payloadvalue/payloadtmpl/payload_tmpl.py +1 -1
  33. localstack/services/stepfunctions/asl/component/common/string/string_expression.py +1 -1
  34. localstack/services/stepfunctions/asl/component/intrinsic/argument/argument.py +1 -1
  35. localstack/services/stepfunctions/asl/component/intrinsic/function/statesfunction/array/array_partition.py +1 -1
  36. localstack/services/stepfunctions/asl/component/intrinsic/function/statesfunction/generic/string_format.py +1 -1
  37. localstack/services/stepfunctions/asl/component/intrinsic/function/statesfunction/states_function_array.py +1 -1
  38. localstack/services/stepfunctions/asl/component/intrinsic/function/statesfunction/states_function_format.py +1 -1
  39. localstack/services/stepfunctions/asl/component/intrinsic/jsonata.py +1 -1
  40. localstack/services/stepfunctions/asl/component/program/program.py +1 -1
  41. localstack/services/stepfunctions/asl/component/program/states.py +1 -1
  42. localstack/services/stepfunctions/asl/component/state/state_execution/execute_state.py +1 -1
  43. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/item_reader_decl.py +1 -1
  44. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/resource_eval/resource_output_transformer/resource_output_transformer_csv.py +2 -2
  45. localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branches_decl.py +3 -3
  46. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/lambda_eval_utils.py +1 -1
  47. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_api_gateway.py +3 -3
  48. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_aws_sdk.py +1 -1
  49. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_batch.py +2 -2
  50. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task.py +1 -1
  51. localstack/services/stepfunctions/asl/eval/environment.py +6 -6
  52. localstack/services/stepfunctions/asl/eval/event/event_manager.py +1 -1
  53. localstack/services/stepfunctions/asl/eval/states.py +1 -1
  54. localstack/services/stepfunctions/asl/eval/variable_store.py +3 -3
  55. localstack/services/stepfunctions/asl/jsonata/jsonata.py +1 -1
  56. localstack/services/stepfunctions/asl/parse/asl_parser.py +1 -1
  57. localstack/services/stepfunctions/asl/parse/intrinsic/preprocessor.py +1 -1
  58. localstack/services/stepfunctions/asl/parse/preprocessor.py +14 -14
  59. localstack/services/stepfunctions/asl/static_analyser/intrinsic/variable_names_intrinsic_static_analyser.py +1 -1
  60. localstack/services/stepfunctions/asl/static_analyser/variable_references_static_analyser.py +2 -2
  61. localstack/services/stepfunctions/backend/alias.py +2 -2
  62. localstack/services/stepfunctions/backend/execution.py +2 -2
  63. localstack/services/stepfunctions/backend/state_machine.py +2 -2
  64. localstack/services/stepfunctions/mocking/mock_config.py +4 -4
  65. localstack/services/stepfunctions/provider.py +7 -7
  66. localstack/testing/pytest/cloudformation/fixtures.py +4 -4
  67. localstack/testing/pytest/fixtures.py +2 -2
  68. localstack/testing/pytest/marking.py +1 -1
  69. localstack/testing/pytest/stepfunctions/fixtures.py +4 -4
  70. localstack/testing/pytest/stepfunctions/utils.py +6 -6
  71. localstack/utils/analytics/metrics/counter.py +3 -3
  72. localstack/utils/analytics/metrics/registry.py +1 -1
  73. localstack/utils/scheduler.py +2 -2
  74. localstack/utils/testutil.py +1 -1
  75. localstack/version.py +2 -2
  76. {localstack_core-4.7.1.dev39.dist-info → localstack_core-4.7.1.dev41.dist-info}/METADATA +1 -1
  77. {localstack_core-4.7.1.dev39.dist-info → localstack_core-4.7.1.dev41.dist-info}/RECORD +85 -85
  78. localstack_core-4.7.1.dev41.dist-info/plux.json +1 -0
  79. localstack_core-4.7.1.dev39.dist-info/plux.json +0 -1
  80. {localstack_core-4.7.1.dev39.data → localstack_core-4.7.1.dev41.data}/scripts/localstack +0 -0
  81. {localstack_core-4.7.1.dev39.data → localstack_core-4.7.1.dev41.data}/scripts/localstack-supervisor +0 -0
  82. {localstack_core-4.7.1.dev39.data → localstack_core-4.7.1.dev41.data}/scripts/localstack.bat +0 -0
  83. {localstack_core-4.7.1.dev39.dist-info → localstack_core-4.7.1.dev41.dist-info}/WHEEL +0 -0
  84. {localstack_core-4.7.1.dev39.dist-info → localstack_core-4.7.1.dev41.dist-info}/entry_points.txt +0 -0
  85. {localstack_core-4.7.1.dev39.dist-info → localstack_core-4.7.1.dev41.dist-info}/licenses/LICENSE.txt +0 -0
  86. {localstack_core-4.7.1.dev39.dist-info → localstack_core-4.7.1.dev41.dist-info}/top_level.txt +0 -0
@@ -52,7 +52,7 @@ class ServiceRequestParser(Handler):
52
52
  parsers: dict[str, RequestParser]
53
53
 
54
54
  def __init__(self):
55
- self.parsers = dict()
55
+ self.parsers = {}
56
56
 
57
57
  def __call__(self, chain: HandlerChain, context: RequestContext, response: Response):
58
58
  # determine service
@@ -92,7 +92,7 @@ class ServiceRequestRouter(Handler):
92
92
  handlers: dict[ServiceOperation, Handler]
93
93
 
94
94
  def __init__(self):
95
- self.handlers = dict()
95
+ self.handlers = {}
96
96
 
97
97
  def __call__(self, chain: HandlerChain, context: RequestContext, response: Response):
98
98
  if not context.service:
localstack/aws/mocking.py CHANGED
@@ -99,7 +99,7 @@ def shape_graph(root: Shape) -> ShapeGraph:
99
99
  graph.root = root
100
100
  populate_graph(graph, root)
101
101
 
102
- cycles = list()
102
+ cycles = []
103
103
  shapes = set()
104
104
  for node in graph.nodes:
105
105
  try:
@@ -1215,7 +1215,7 @@ class JSONResponseSerializer(ResponseSerializer):
1215
1215
  mime_type: str,
1216
1216
  request_id: str,
1217
1217
  ) -> None:
1218
- body = dict()
1218
+ body = {}
1219
1219
 
1220
1220
  # TODO implement different service-specific serializer configurations
1221
1221
  # - currently we set both, the `__type` member as well as the `X-Amzn-Errortype` header
localstack/config.py CHANGED
@@ -660,7 +660,7 @@ class UniqueHostAndPortList(list[HostAndPort]):
660
660
  if len(self) <= 1:
661
661
  return
662
662
 
663
- unique: list[HostAndPort] = list()
663
+ unique: list[HostAndPort] = []
664
664
 
665
665
  # Build a dictionary of hosts by port
666
666
  hosts_by_port: dict[int, list[str]] = defaultdict(list)
@@ -266,7 +266,7 @@ def run(
266
266
  remove=True,
267
267
  interactive=True,
268
268
  tty=True,
269
- env_vars=dict(),
269
+ env_vars={},
270
270
  volumes=VolumeMappings(),
271
271
  ports=PortMappings(),
272
272
  network=network,
@@ -93,7 +93,7 @@ class Stack:
93
93
  if template is None:
94
94
  template = {}
95
95
 
96
- self.resolved_outputs = list() # TODO
96
+ self.resolved_outputs = [] # TODO
97
97
  self.resolved_parameters: dict[str, StackParameter] = {}
98
98
  self.resolved_conditions: dict[str, bool] = {}
99
99
 
@@ -76,7 +76,7 @@ def resolve_parameters(
76
76
  :param old_parameters: The old parameters from the previous stack deployment, if available
77
77
  :return: a copy of new_parameters with resolved values
78
78
  """
79
- resolved_parameters = dict()
79
+ resolved_parameters = {}
80
80
 
81
81
  # populate values for every parameter declared in the template
82
82
  for pm in parameter_declarations.values():
@@ -174,8 +174,8 @@ class UpdateModel:
174
174
  node_template: NodeTemplate,
175
175
  ):
176
176
  self.node_template = node_template
177
- self.before_runtime_cache = dict()
178
- self.after_runtime_cache = dict()
177
+ self.before_runtime_cache = {}
178
+ self.after_runtime_cache = {}
179
179
 
180
180
 
181
181
  class NodeTemplate(ChangeSetNode):
@@ -555,7 +555,7 @@ class ChangeSetModel:
555
555
  self._after_template = after_template or Nothing
556
556
  self._before_parameters = before_parameters or Nothing
557
557
  self._after_parameters = after_parameters or Nothing
558
- self._visited_scopes = dict()
558
+ self._visited_scopes = {}
559
559
  # TODO: move this modeling process to the `get_update_model` method as constructors shouldn't do work
560
560
  self._node_template = self._model(
561
561
  before_template=self._before_template, after_template=self._after_template
@@ -767,7 +767,7 @@ class ChangeSetModel:
767
767
  def _visit_array(
768
768
  self, scope: Scope, before_array: Maybe[list], after_array: Maybe[list]
769
769
  ) -> NodeArray:
770
- array: list[ChangeSetEntity] = list()
770
+ array: list[ChangeSetEntity] = []
771
771
  for index, (before_value, after_value) in enumerate(
772
772
  zip_longest(before_array, after_array, fillvalue=Nothing)
773
773
  ):
@@ -786,7 +786,7 @@ class ChangeSetModel:
786
786
  if isinstance(node_object, NodeObject):
787
787
  return node_object
788
788
  binding_names = self._safe_keys_of(before_object, after_object)
789
- bindings: dict[str, ChangeSetEntity] = dict()
789
+ bindings: dict[str, ChangeSetEntity] = {}
790
790
  for binding_name in binding_names:
791
791
  binding_scope, (before_value, after_value) = self._safe_access_in(
792
792
  scope, binding_name, before_object, after_object
@@ -888,7 +888,7 @@ class ChangeSetModel:
888
888
  if isinstance(node_properties, NodeProperties):
889
889
  return node_properties
890
890
  property_names: list[str] = self._safe_keys_of(before_properties, after_properties)
891
- properties: list[NodeProperty] = list()
891
+ properties: list[NodeProperty] = []
892
892
  for property_name in property_names:
893
893
  property_scope, (before_property, after_property) = self._safe_access_in(
894
894
  scope, property_name, before_properties, after_properties
@@ -1027,7 +1027,7 @@ class ChangeSetModel:
1027
1027
  self, scope: Scope, before_resources: Maybe[dict], after_resources: Maybe[dict]
1028
1028
  ) -> NodeResources:
1029
1029
  # TODO: investigate type changes behavior.
1030
- resources: list[NodeResource] = list()
1030
+ resources: list[NodeResource] = []
1031
1031
  resource_names = self._safe_keys_of(before_resources, after_resources)
1032
1032
  for resource_name in resource_names:
1033
1033
  resource_scope, (before_resource, after_resource) = self._safe_access_in(
@@ -1053,7 +1053,7 @@ class ChangeSetModel:
1053
1053
  def _visit_mappings(
1054
1054
  self, scope: Scope, before_mappings: Maybe[dict], after_mappings: Maybe[dict]
1055
1055
  ) -> NodeMappings:
1056
- mappings: list[NodeMapping] = list()
1056
+ mappings: list[NodeMapping] = []
1057
1057
  mapping_names = self._safe_keys_of(before_mappings, after_mappings)
1058
1058
  for mapping_name in mapping_names:
1059
1059
  scope_mapping, (before_mapping, after_mapping) = self._safe_access_in(
@@ -1131,7 +1131,7 @@ class ChangeSetModel:
1131
1131
  if isinstance(node_parameters, NodeParameters):
1132
1132
  return node_parameters
1133
1133
  parameter_names: list[str] = self._safe_keys_of(before_parameters, after_parameters)
1134
- parameters: list[NodeParameter] = list()
1134
+ parameters: list[NodeParameter] = []
1135
1135
  for parameter_name in parameter_names:
1136
1136
  parameter_scope, (before_parameter, after_parameter) = self._safe_access_in(
1137
1137
  scope, parameter_name, before_parameters, after_parameters
@@ -1201,7 +1201,7 @@ class ChangeSetModel:
1201
1201
  if isinstance(node_conditions, NodeConditions):
1202
1202
  return node_conditions
1203
1203
  condition_names: list[str] = self._safe_keys_of(before_conditions, after_conditions)
1204
- conditions: list[NodeCondition] = list()
1204
+ conditions: list[NodeCondition] = []
1205
1205
  for condition_name in condition_names:
1206
1206
  condition_scope, (before_condition, after_condition) = self._safe_access_in(
1207
1207
  scope, condition_name, before_conditions, after_conditions
@@ -1253,7 +1253,7 @@ class ChangeSetModel:
1253
1253
  def _visit_outputs(
1254
1254
  self, scope: Scope, before_outputs: Maybe[dict], after_outputs: Maybe[dict]
1255
1255
  ) -> NodeOutputs:
1256
- outputs: list[NodeOutput] = list()
1256
+ outputs: list[NodeOutput] = []
1257
1257
  output_names: list[str] = self._safe_keys_of(before_outputs, after_outputs)
1258
1258
  for output_name in output_names:
1259
1259
  scope_output, (before_output, after_output) = self._safe_access_in(
@@ -1300,7 +1300,7 @@ class ChangeSetModel:
1300
1300
  elif isinstance(value, str):
1301
1301
  value = [NormalisedGlobalTransformDefinition(Name=value, Parameters=Nothing)]
1302
1302
  elif isinstance(value, list):
1303
- tmp_value = list()
1303
+ tmp_value = []
1304
1304
  for item in value:
1305
1305
  if isinstance(item, str):
1306
1306
  tmp_value.append(
@@ -1324,7 +1324,7 @@ class ChangeSetModel:
1324
1324
  ) -> NodeTransform:
1325
1325
  before_transform_normalised = self._normalise_transformer_value(before_transform)
1326
1326
  after_transform_normalised = self._normalise_transformer_value(after_transform)
1327
- global_transforms = list()
1327
+ global_transforms = []
1328
1328
  for index, (before_global_transform, after_global_transform) in enumerate(
1329
1329
  zip_longest(before_transform_normalised, after_transform_normalised, fillvalue=Nothing)
1330
1330
  ):
@@ -1405,8 +1405,8 @@ class ChangeSetModel:
1405
1405
  conditions_scope, (before_conditions, after_conditions) = self._safe_access_in(
1406
1406
  Scope(), ConditionsKey, self._before_template, self._after_template
1407
1407
  )
1408
- before_conditions = before_conditions or dict()
1409
- after_conditions = after_conditions or dict()
1408
+ before_conditions = before_conditions or {}
1409
+ after_conditions = after_conditions or {}
1410
1410
  if condition_name in before_conditions or condition_name in after_conditions:
1411
1411
  condition_scope, (before_condition, after_condition) = self._safe_access_in(
1412
1412
  conditions_scope, condition_name, before_conditions, after_conditions
@@ -1476,7 +1476,7 @@ class ChangeSetModel:
1476
1476
 
1477
1477
  @staticmethod
1478
1478
  def _safe_access_in(scope: Scope, key: str, *objects: Maybe[dict]) -> tuple[Scope, Maybe[Any]]:
1479
- results = list()
1479
+ results = []
1480
1480
  for obj in objects:
1481
1481
  if not isinstance(obj, (dict, NothingType)):
1482
1482
  raise RuntimeError(f"Invalid definition type at '{obj}'")
@@ -35,7 +35,7 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
35
35
  ):
36
36
  super().__init__(change_set=change_set)
37
37
  self._include_property_values = include_property_values
38
- self._changes = list()
38
+ self._changes = []
39
39
 
40
40
  def get_changes(self) -> cfn_api.Changes:
41
41
  self._changes.clear()
@@ -66,9 +66,9 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
66
66
 
67
67
  def __init__(self, change_set: ChangeSet):
68
68
  super().__init__(change_set=change_set)
69
- self.resources = dict()
69
+ self.resources = {}
70
70
  self.outputs = []
71
- self._deferred_actions = list()
71
+ self._deferred_actions = []
72
72
  self.resource_provider_executor = ResourceProviderExecutor(
73
73
  stack_name=change_set.stack.stack_name,
74
74
  stack_id=change_set.stack.stack_id,
@@ -205,7 +205,7 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
205
205
  # references or other downstream operations.
206
206
  if not is_nothing(before):
207
207
  before_logical_id = delta.before.logical_id
208
- before_resource = self._before_resolved_resources.get(before_logical_id, dict())
208
+ before_resource = self._before_resolved_resources.get(before_logical_id, {})
209
209
  self.resources[before_logical_id] = before_resource
210
210
 
211
211
  # Update the latest version of this resource for downstream references.
@@ -186,8 +186,8 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
186
186
  def __init__(self, change_set: ChangeSet):
187
187
  self._change_set = change_set
188
188
  self._before_resolved_resources = change_set.stack.resolved_resources
189
- self._before_cache = dict()
190
- self._after_cache = dict()
189
+ self._before_cache = {}
190
+ self._after_cache = {}
191
191
 
192
192
  def _setup_runtime_cache(self) -> None:
193
193
  runtime_cache_key = self.__class__.__name__
@@ -259,7 +259,7 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
259
259
  raise RuntimeError(
260
260
  f"No deployed instances of resource '{resource_logical_id}' were found"
261
261
  )
262
- properties = resolved_resource.get("Properties", dict())
262
+ properties = resolved_resource.get("Properties", {})
263
263
  # support structured properties, e.g. NestedStack.Outputs.OutputName
264
264
  property_value: Any | None = get_value_from_path(properties, property_name)
265
265
 
@@ -480,8 +480,8 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
480
480
 
481
481
  def visit_node_object(self, node_object: NodeObject) -> PreprocEntityDelta:
482
482
  node_change_type = node_object.change_type
483
- before = dict() if node_change_type != ChangeType.CREATED else Nothing
484
- after = dict() if node_change_type != ChangeType.REMOVED else Nothing
483
+ before = {} if node_change_type != ChangeType.CREATED else Nothing
484
+ after = {} if node_change_type != ChangeType.REMOVED else Nothing
485
485
  for name, change_set_entity in node_object.bindings.items():
486
486
  delta: PreprocEntityDelta = self.visit(change_set_entity=change_set_entity)
487
487
  delta_before = delta.before
@@ -650,7 +650,7 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
650
650
  sub_parameters: dict
651
651
  if isinstance(args, str):
652
652
  string_template = args
653
- sub_parameters = dict()
653
+ sub_parameters = {}
654
654
  elif (
655
655
  isinstance(args, list)
656
656
  and len(args) == 2
@@ -757,7 +757,7 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
757
757
  if values == "":
758
758
  return ""
759
759
  raise RuntimeError(f"Invalid arguments list definition for Fn::Join: '{args}'")
760
- str_values: list[str] = list()
760
+ str_values: list[str] = []
761
761
  for value in values:
762
762
  if value is None:
763
763
  continue
@@ -898,8 +898,8 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
898
898
  def visit_node_parameters(
899
899
  self, node_parameters: NodeParameters
900
900
  ) -> PreprocEntityDelta[dict[str, Any], dict[str, Any]]:
901
- before_parameters = dict()
902
- after_parameters = dict()
901
+ before_parameters = {}
902
+ after_parameters = {}
903
903
  for parameter in node_parameters.parameters:
904
904
  parameter_delta = self.visit(parameter)
905
905
  parameter_before = parameter_delta.before
@@ -945,7 +945,7 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
945
945
  self, logical_resource_id: str, resolved_resources: dict
946
946
  ) -> str:
947
947
  # TODO: typing around resolved resources is needed and should be reflected here.
948
- resolved_resource = resolved_resources.get(logical_resource_id, dict())
948
+ resolved_resource = resolved_resources.get(logical_resource_id, {})
949
949
  physical_resource_id: str | None = resolved_resource.get("PhysicalResourceId")
950
950
  if not isinstance(physical_resource_id, str):
951
951
  raise RuntimeError(f"No PhysicalResourceId found for resource '{logical_resource_id}'")
@@ -1001,8 +1001,8 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
1001
1001
 
1002
1002
  def visit_node_array(self, node_array: NodeArray) -> PreprocEntityDelta:
1003
1003
  node_change_type = node_array.change_type
1004
- before = list() if node_change_type != ChangeType.CREATED else Nothing
1005
- after = list() if node_change_type != ChangeType.REMOVED else Nothing
1004
+ before = [] if node_change_type != ChangeType.CREATED else Nothing
1005
+ after = [] if node_change_type != ChangeType.REMOVED else Nothing
1006
1006
  for change_set_entity in node_array.array:
1007
1007
  delta: PreprocEntityDelta = self.visit(change_set_entity=change_set_entity)
1008
1008
  delta_before = delta.before
@@ -1036,8 +1036,8 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
1036
1036
  self, node_properties: NodeProperties
1037
1037
  ) -> PreprocEntityDelta[PreprocProperties, PreprocProperties]:
1038
1038
  node_change_type = node_properties.change_type
1039
- before_bindings = dict() if node_change_type != ChangeType.CREATED else Nothing
1040
- after_bindings = dict() if node_change_type != ChangeType.REMOVED else Nothing
1039
+ before_bindings = {} if node_change_type != ChangeType.CREATED else Nothing
1040
+ after_bindings = {} if node_change_type != ChangeType.REMOVED else Nothing
1041
1041
  for node_property in node_properties.properties:
1042
1042
  property_name = node_property.name
1043
1043
  delta = self.visit(node_property)
@@ -1184,8 +1184,8 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
1184
1184
  def visit_node_outputs(
1185
1185
  self, node_outputs: NodeOutputs
1186
1186
  ) -> PreprocEntityDelta[list[PreprocOutput], list[PreprocOutput]]:
1187
- before: list[PreprocOutput] = list()
1188
- after: list[PreprocOutput] = list()
1187
+ before: list[PreprocOutput] = []
1188
+ after: list[PreprocOutput] = []
1189
1189
  for node_output in node_outputs.outputs:
1190
1190
  output_delta: PreprocEntityDelta[PreprocOutput, PreprocOutput] = self.visit(node_output)
1191
1191
  output_before = output_delta.before
@@ -184,7 +184,7 @@ class ChangeSetModelTransform(ChangeSetModelPreproc):
184
184
  macro = macros_store.get(macro_name)
185
185
  if macro is None:
186
186
  raise RuntimeError(f"No definitions for global transform '{macro_name}'")
187
- transformation_parameters = global_transform.parameters or dict()
187
+ transformation_parameters = global_transform.parameters or {}
188
188
  transformed_template = execute_macro(
189
189
  account_id,
190
190
  region_name,
@@ -298,8 +298,8 @@ class ChangeSetModelTransform(ChangeSetModelPreproc):
298
298
  self, node_transform: NodeTransform
299
299
  ) -> PreprocEntityDelta[list[GlobalTransform], list[GlobalTransform]]:
300
300
  change_type = node_transform.change_type
301
- before = list() if change_type != ChangeType.CREATED else Nothing
302
- after = list() if change_type != ChangeType.REMOVED else Nothing
301
+ before = [] if change_type != ChangeType.CREATED else Nothing
302
+ after = [] if change_type != ChangeType.REMOVED else Nothing
303
303
  for change_set_entity in node_transform.global_transforms:
304
304
  delta: PreprocEntityDelta[GlobalTransform, GlobalTransform] = self.visit(
305
305
  change_set_entity=change_set_entity
@@ -50,7 +50,7 @@ class ChangeSetModelValidator(ChangeSetModelPreproc):
50
50
  sub_parameters: dict
51
51
  if isinstance(args, str):
52
52
  string_template = args
53
- sub_parameters = dict()
53
+ sub_parameters = {}
54
54
  elif (
55
55
  isinstance(args, list)
56
56
  and len(args) == 2
@@ -267,11 +267,11 @@ class TemplateRenderer:
267
267
  # FileType.cloudcontrol_test: "test_cloudcontrol_template.py.j2",
268
268
  FileType.parity_test: "test_parity_template.py.j2",
269
269
  }
270
- kwargs = dict(
271
- name=resource_name.full_name, # AWS::SNS::Topic
272
- resource=resource_name.provider_name(), # SNSTopic
273
- scaffolding_version=f"v{SCAFFOLDING_VERSION}",
274
- )
270
+ kwargs = {
271
+ "name": resource_name.full_name, # AWS::SNS::Topic
272
+ "resource": resource_name.provider_name(), # SNSTopic
273
+ "scaffolding_version": f"v{SCAFFOLDING_VERSION}",
274
+ }
275
275
  # TODO: we might want to segregate each provider in its own directory
276
276
  # e.g. .../resource_providers/aws_iam_role/test_X.py vs. .../resource_providers/iam/test_X.py
277
277
  # add extra parameters
@@ -52,7 +52,7 @@ class CloudFormationStore(BaseStore):
52
52
 
53
53
  @property
54
54
  def exports_v2(self) -> dict[str, Export]:
55
- exports = dict()
55
+ exports = {}
56
56
  stacks_v2 = self.stacks_v2.values()
57
57
  for stack in stacks_v2:
58
58
  if stack.status == StackStatus.DELETE_COMPLETE:
@@ -423,7 +423,7 @@ class CloudformationProviderV2(CloudformationProvider):
423
423
  # The options might be reduce to using the current style, or passing the extra information
424
424
  # as a metadata object. The choice should be made considering when the extra information
425
425
  # is needed for the update graph building, or only looked up in downstream tasks (metadata).
426
- request_parameters = request.get("Parameters", list())
426
+ request_parameters = request.get("Parameters", [])
427
427
  # TODO: handle parameter defaults and resolution
428
428
  after_parameters = self._extract_after_parameters(request_parameters, before_parameters)
429
429
 
@@ -707,7 +707,7 @@ class CloudformationProviderV2(CloudformationProvider):
707
707
  # The options might be reduce to using the current style, or passing the extra information
708
708
  # as a metadata object. The choice should be made considering when the extra information
709
709
  # is needed for the update graph building, or only looked up in downstream tasks (metadata).
710
- request_parameters = request.get("Parameters", list())
710
+ request_parameters = request.get("Parameters", [])
711
711
  # TODO: handle parameter defaults and resolution
712
712
  after_parameters = self._extract_after_parameters(request_parameters)
713
713
  after_template = structured_template
@@ -1328,7 +1328,7 @@ class CloudformationProviderV2(CloudformationProvider):
1328
1328
  # The options might be reduce to using the current style, or passing the extra information
1329
1329
  # as a metadata object. The choice should be made considering when the extra information
1330
1330
  # is needed for the update graph building, or only looked up in downstream tasks (metadata).
1331
- request_parameters = request.get("Parameters", list())
1331
+ request_parameters = request.get("Parameters", [])
1332
1332
  # TODO: handle parameter defaults and resolution
1333
1333
  after_parameters = self._extract_after_parameters(request_parameters, before_parameters)
1334
1334
 
@@ -377,7 +377,7 @@ def build_statement(
377
377
  Type="User",
378
378
  )
379
379
 
380
- condition = dict()
380
+ condition = {}
381
381
  if auth_type:
382
382
  update = {"StringEquals": {"lambda:FunctionUrlAuthType": auth_type}}
383
383
  condition = merge_recursive(condition, update)
@@ -146,7 +146,7 @@ class RuntimeImageResolver:
146
146
  def __init__(
147
147
  self, default_resolve_fn: Callable[[Runtime], str] = get_default_image_for_runtime
148
148
  ):
149
- self._mapping = dict()
149
+ self._mapping = {}
150
150
  self._default_resolve_fn = default_resolve_fn
151
151
 
152
152
  def _resolve(self, runtime: Runtime, custom_image_mapping: str = "") -> str:
@@ -709,7 +709,7 @@ class LambdaProvider(LambdaApi, ServiceLifecycleHook):
709
709
  "Cannot reference more than 5 layers.", Type="User"
710
710
  )
711
711
 
712
- visited_layers = dict()
712
+ visited_layers = {}
713
713
  for layer_version_arn in new_layers:
714
714
  (
715
715
  layer_region,
@@ -521,7 +521,7 @@ def moto_smb_list_secret_version_ids(
521
521
  secret = self.secrets[secret_id]
522
522
 
523
523
  # Patch: output format, report exact createdate instead of current time.
524
- versions: list[SecretVersionsListEntry] = list()
524
+ versions: list[SecretVersionsListEntry] = []
525
525
  for version_id, version in secret.versions.items():
526
526
  version_stages = version["version_stages"]
527
527
  # Patch: include deprecated versions if include_deprecated is True.
@@ -461,7 +461,7 @@ class MessageMoveTaskManager:
461
461
  def __init__(self, stores: AccountRegionBundle[SqsStore] = None) -> None:
462
462
  self.stores = stores or sqs_stores
463
463
  self.mutex = threading.RLock()
464
- self.move_tasks: dict[str, MessageMoveTask] = dict()
464
+ self.move_tasks: dict[str, MessageMoveTask] = {}
465
465
  self.executor = ThreadPoolExecutor(max_workers=100, thread_name_prefix="sqs-move-message")
466
466
 
467
467
  def submit(self, move_task: MessageMoveTask):
@@ -15,7 +15,7 @@ class AssignDecl(EvalComponent):
15
15
  self.declaration_bindings = declaration_bindings
16
16
 
17
17
  def _eval_body(self, env: Environment) -> None:
18
- declarations: dict[str, Any] = dict()
18
+ declarations: dict[str, Any] = {}
19
19
  for declaration_binding in self.declaration_bindings:
20
20
  declaration_binding.eval(env=env)
21
21
  binding: dict[str, Any] = env.stack.pop()
@@ -15,5 +15,5 @@ class AssignDeclBinding(EvalComponent):
15
15
  self.binding = binding
16
16
 
17
17
  def _eval_body(self, env: Environment) -> None:
18
- env.stack.append(dict())
18
+ env.stack.append({})
19
19
  self.binding.eval(env=env)
@@ -13,7 +13,7 @@ class AssignTemplateValueArray(AssignTemplateValue):
13
13
  self.values = values
14
14
 
15
15
  def _eval_body(self, env: Environment) -> None:
16
- arr = list()
16
+ arr = []
17
17
  for value in self.values:
18
18
  value.eval(env)
19
19
  arr.append(env.stack.pop())
@@ -16,6 +16,6 @@ class AssignTemplateValueObject(AssignTemplateValue):
16
16
  self.bindings = bindings
17
17
 
18
18
  def _eval_body(self, env: Environment) -> None:
19
- env.stack.append(dict())
19
+ env.stack.append({})
20
20
  for binding in self.bindings:
21
21
  binding.eval(env)
@@ -40,7 +40,7 @@ def _error_name(error_name: StatesErrorNameType) -> str:
40
40
 
41
41
 
42
42
  def _reverse_error_name_lookup() -> dict[str, StatesErrorNameType]:
43
- lookup: dict[str, StatesErrorNameType] = dict()
43
+ lookup: dict[str, StatesErrorNameType] = {}
44
44
  for error_name in StatesErrorNameType:
45
45
  error_text: str = _error_name(error_name)
46
46
  lookup[error_text] = error_name
@@ -13,7 +13,7 @@ class JSONataTemplateValueArray(JSONataTemplateValue):
13
13
  self.values = values
14
14
 
15
15
  def _eval_body(self, env: Environment) -> None:
16
- arr = list()
16
+ arr = []
17
17
  for value in self.values:
18
18
  value.eval(env)
19
19
  arr.append(env.stack.pop())
@@ -16,6 +16,6 @@ class JSONataTemplateValueObject(JSONataTemplateValue):
16
16
  self.bindings = bindings
17
17
 
18
18
  def _eval_body(self, env: Environment) -> None:
19
- env.stack.append(dict())
19
+ env.stack.append({})
20
20
  for binding in self.bindings:
21
21
  binding.eval(env)
@@ -29,7 +29,7 @@ class InputPath(EvalComponent):
29
29
 
30
30
  def _eval_body(self, env: Environment) -> None:
31
31
  if self.string_sampler is None:
32
- env.stack.append(dict())
32
+ env.stack.append({})
33
33
  return
34
34
  if isinstance(self.string_sampler, StringJsonPath):
35
35
  # JsonPaths are sampled from a given state, hence pass the state's input.
@@ -28,7 +28,7 @@ class OutputPath(EvalComponent):
28
28
 
29
29
  def _eval_body(self, env: Environment) -> None:
30
30
  if self.string_sampler is None:
31
- env.states.reset(input_value=dict())
31
+ env.states.reset(input_value={})
32
32
  return
33
33
  try:
34
34
  self.string_sampler.eval(env=env)
@@ -11,7 +11,7 @@ class PayloadArr(PayloadValue):
11
11
  self.payload_values: Final[list[PayloadValue]] = payload_values
12
12
 
13
13
  def _eval_body(self, env: Environment) -> None:
14
- arr = list()
14
+ arr = []
15
15
  for payload_value in self.payload_values:
16
16
  payload_value.eval(env)
17
17
  arr.append(env.stack.pop())
@@ -14,6 +14,6 @@ class PayloadTmpl(PayloadValue):
14
14
  self.payload_bindings: Final[list[PayloadBinding]] = payload_bindings
15
15
 
16
16
  def _eval_body(self, env: Environment) -> None:
17
- env.stack.append(dict())
17
+ env.stack.append({})
18
18
  for payload_binding in self.payload_bindings:
19
19
  payload_binding.eval(env)
@@ -129,7 +129,7 @@ class StringVariableSample(StringSampler):
129
129
  expression_variable_references: set[VariableReference] = (
130
130
  extract_jsonata_variable_references(self.expression)
131
131
  )
132
- variable_declarations_list = list()
132
+ variable_declarations_list = []
133
133
  if self.query_language_mode == QueryLanguageMode.JSONata:
134
134
  # Sample $states values into expression.
135
135
  states_variable_declarations: VariableDeclarations = (
@@ -97,7 +97,7 @@ class ArgumentList(Argument):
97
97
  self.size = len(arguments)
98
98
 
99
99
  def _eval_argument(self, env: Environment) -> Any:
100
- values = list()
100
+ values = []
101
101
  for argument in self.arguments:
102
102
  argument.eval(env=env)
103
103
  argument_value = env.stack.pop()
@@ -60,7 +60,7 @@ class ArrayPartition(StatesFunction):
60
60
 
61
61
  @staticmethod
62
62
  def _to_chunks(array: list, chunk_size: int):
63
- chunks = list()
63
+ chunks = []
64
64
  for i in range(0, len(array), chunk_size):
65
65
  chunks.append(array[i : i + chunk_size])
66
66
  return chunks
@@ -95,7 +95,7 @@ class StringFormat(StatesFunction):
95
95
  value_parts: list[str] = list(map(StringFormat._to_str_repr, value))
96
96
  return f"[{', '.join(value_parts)}]"
97
97
  elif isinstance(value, dict):
98
- dict_items = list()
98
+ dict_items = []
99
99
  for d_key, d_value in value.items():
100
100
  d_value_lit = StringFormat._to_str_repr(d_value)
101
101
  dict_items.append(f"{d_key}={d_value_lit}")
@@ -24,7 +24,7 @@ class StatesFunctionArray(StatesFunction):
24
24
 
25
25
  def _eval_body(self, env: Environment) -> None:
26
26
  self.argument_list.eval(env=env)
27
- values: list[Any] = list()
27
+ values: list[Any] = []
28
28
  for _ in range(self.argument_list.size):
29
29
  values.append(env.stack.pop())
30
30
  values.reverse()