From d1e38cba04e943e2007214ec7f3f3204e635d750 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 9 Aug 2024 10:31:28 -0700 Subject: [PATCH] iso --- .../smithypython/awssdk/AwsSdkCodegenConstants.java | 6 ------ .../shapevisitor/AwsSdkToDafnyShapeVisitor.java | 6 ++---- .../shapevisitor/DafnyToAwsSdkShapeVisitor.java | 5 ++--- .../shapevisitor/LocalServiceToDafnyShapeVisitor.java | 11 ++++------- 4 files changed, 8 insertions(+), 20 deletions(-) diff --git a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/AwsSdkCodegenConstants.java b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/AwsSdkCodegenConstants.java index 03f3fe90ea..2f61080123 100644 --- a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/AwsSdkCodegenConstants.java +++ b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/AwsSdkCodegenConstants.java @@ -2,10 +2,4 @@ public class AwsSdkCodegenConstants { public static String AWS_SDK_CODEGEN_SYMBOLWRITER_DUMP_FILE_FILENAME = "awssdk_codegen_todelete.tmp"; - - // boto3 models `Timestamp` Smithy objects as `datetime.datetime` objects - // with millisecond precision masquerading as microsecond precision; - // e.x. datetime.datetime(2024, 6, 14, 16, 40, 15, 761000, tzinfo=tzlocal()) - // --> 761000 is actually just 761 ms, but boto3 reports it with microsecond precision. - public static String BOTO3_TIMESTAMP_STRING_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"; } diff --git a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/shapevisitor/AwsSdkToDafnyShapeVisitor.java b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/shapevisitor/AwsSdkToDafnyShapeVisitor.java index 4844352dea..4d82be037d 100644 --- a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/shapevisitor/AwsSdkToDafnyShapeVisitor.java +++ b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/shapevisitor/AwsSdkToDafnyShapeVisitor.java @@ -246,10 +246,8 @@ public String enumShape(EnumShape shape) { @Override public String timestampShape(TimestampShape shape) { writer.addStdlibImport("_dafny"); - writer.addStdlibImport("datetime", "timezone"); - return "_dafny.Seq(%1$s.astimezone(timezone.utc).strftime(\"%2$s\"))".formatted( - dataSource, - BOTO3_TIMESTAMP_STRING_FORMAT + return "_dafny.Seq(%1$s.isoformat())".formatted( + dataSource ); } diff --git a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/shapevisitor/DafnyToAwsSdkShapeVisitor.java b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/shapevisitor/DafnyToAwsSdkShapeVisitor.java index a91baa77f1..76f52ebce4 100644 --- a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/shapevisitor/DafnyToAwsSdkShapeVisitor.java +++ b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/awssdk/shapevisitor/DafnyToAwsSdkShapeVisitor.java @@ -233,9 +233,8 @@ public String enumShape(EnumShape shape) { @Override public String timestampShape(TimestampShape shape) { writer.addStdlibImport("datetime", "datetime"); - return "datetime.strptime(%1$s.VerbatimString(False), \"%2$s\")".formatted( - dataSource, - BOTO3_TIMESTAMP_STRING_FORMAT + return "datetime.fromisoformat(%1$s.VerbatimString(False))".formatted( + dataSource ); } diff --git a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/localservice/shapevisitor/LocalServiceToDafnyShapeVisitor.java b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/localservice/shapevisitor/LocalServiceToDafnyShapeVisitor.java index 3f9c45e617..59b307fde4 100644 --- a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/localservice/shapevisitor/LocalServiceToDafnyShapeVisitor.java +++ b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithypython/localservice/shapevisitor/LocalServiceToDafnyShapeVisitor.java @@ -271,13 +271,10 @@ public String enumShape(EnumShape shape) { ); } - @Override - public String timestampShape(TimestampShape shape) { - writer.addStdlibImport("_dafny"); - return "_dafny.Seq(%1$s.isoformat())".formatted( - dataSource - ); - } + @Override + public String timestampShape(TimestampShape shape) { + throw new UnsupportedOperationException("TimestampShape from within a LocalService not supported"); + } @Override public String unionShape(UnionShape unionShape) {