From b8fbf3d5f95d40863e5e15e19f13421fbba7fa78 Mon Sep 17 00:00:00 2001 From: jonathan343 Date: Wed, 22 Oct 2025 12:55:21 -0400 Subject: [PATCH 1/2] Increment member index on skipped member --- .../smithy/python/codegen/generators/StructureGenerator.java | 1 + 1 file changed, 1 insertion(+) diff --git a/codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/StructureGenerator.java b/codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/StructureGenerator.java index 492e032a9..a418384f4 100644 --- a/codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/StructureGenerator.java +++ b/codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/StructureGenerator.java @@ -425,6 +425,7 @@ private void deserializeMembers(Collection members) { for (MemberShape member : members) { var target = model.expectShape(member.getTarget()); if (target.hasTrait(StreamingTrait.class) && target.isUnionShape()) { + index++; continue; } writer.write(""" From 26c742fa1176010e13e60d7b6693704024d88319 Mon Sep 17 00:00:00 2001 From: jonathan343 Date: Thu, 23 Oct 2025 14:33:05 -0400 Subject: [PATCH 2/2] increment once at the start of the loop --- .../python/codegen/generators/StructureGenerator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/StructureGenerator.java b/codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/StructureGenerator.java index a418384f4..1cfa9c2cf 100644 --- a/codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/StructureGenerator.java +++ b/codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/StructureGenerator.java @@ -421,18 +421,18 @@ def _consumer(schema: Schema, de: ShapeDeserializer) -> None: } private void deserializeMembers(Collection members) { - int index = 0; + int index = -1; for (MemberShape member : members) { + index++; var target = model.expectShape(member.getTarget()); if (target.hasTrait(StreamingTrait.class) && target.isUnionShape()) { - index++; continue; } writer.write(""" case $L: kwargs[$S] = ${C|} """, - index++, + index, symbolProvider.toMemberName(member), writer.consumer( w -> target.accept(new MemberDeserializerGenerator(context, writer, member, "de"))));