Skip to content

Commit cec8afa

Browse files
committed
Cleanup
1 parent 8d9d8bb commit cec8afa

File tree

7 files changed

+23
-9
lines changed

7 files changed

+23
-9
lines changed

codegen/core/src/main/java/software/amazon/smithy/python/codegen/ClientGenerator.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,9 @@ await sleep(retry_token.retry_delay)
571571
writer.pushState(new SignRequestSection());
572572
if (context.applicationProtocol().isHttpProtocol() && supportsAuth) {
573573
writer.addStdlibImport("re");
574+
writer.addStdlibImport("typing", "Any");
575+
writer.addImport("smithy_core.interfaces.identity", "Identity");
576+
writer.addImport("smithy_core.types", "PropertyKey");
574577
writer.write("""
575578
# Step 7i: sign the request
576579
if auth_option and signer:
@@ -594,8 +597,11 @@ await sleep(retry_token.retry_delay)
594597
auth_value = fields["Authorization"].as_string() # type: ignore
595598
signature = re.split("Signature=", auth_value)[-1] # type: ignore
596599
context.properties["signature"] = signature.encode('utf-8')
597-
context.properties["identity"] = identity
598-
context.properties["signer_properties"] = auth_option.signer_properties
600+
601+
identity_key = PropertyKey(key="identity", value_type=Identity | None)
602+
sp_key = PropertyKey(key="signer_properties", value_type=dict)
603+
context.properties[identity_key] = identity
604+
context.properties[sp_key] = auth_option.signer_properties
599605
""");
600606
}
601607
writer.popState();

codegen/core/src/main/java/software/amazon/smithy/python/codegen/integrations/RestJsonProtocolGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ public void wrapOutputStream(GenerationContext context, PythonWriter writer) {
452452
transport_response.body # type: ignore
453453
),
454454
deserializer=event_deserializer, # type: ignore
455-
signer=signer, # type: ignore
456455
)
457456
""");
458457
}
458+
}

packages/aws-event-stream/src/aws_event_stream/_private/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from collections.abc import Iterator
66
from contextlib import contextmanager
77
from io import BytesIO
8-
from typing import Never, Protocol
8+
from typing import Never
99

1010
from smithy_core.codecs import Codec
1111
from smithy_core.schemas import Schema

packages/aws-event-stream/src/aws_event_stream/aio/__init__.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414

1515
from .._private.serializers import EventSerializer as _EventSerializer
1616
from .._private.deserializers import EventDeserializer as _EventDeserializer
17-
from ..events import Event, EventMessage
17+
from ..events import Event, EventHeaderEncoder, EventMessage
1818
from ..exceptions import EventError
1919

20+
from typing import Protocol
21+
2022
logger = logging.getLogger(__name__)
2123

2224

@@ -57,8 +59,13 @@ async def send(self, event: E) -> None:
5759
"Expected an event message to be serialized, but was None."
5860
)
5961
if self._signer is not None:
60-
result = self._signer(result)
62+
encoder = self._serializer.event_header_encoder_cls
63+
result = await self._signer.sign_event( # type: ignore
64+
event_message=result,
65+
event_encoder_cls=encoder,
66+
)
6167

68+
assert isinstance(result, EventMessage)
6269
encoded_result = result.encode()
6370
try:
6471
logger.debug("Publishing serialized event: %s", result)

packages/aws-event-stream/src/aws_event_stream/events.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ def get_result(self) -> bytes:
387387
raise InvalidHeadersLength(len(result))
388388
return result
389389

390-
def encode_headers(self, headers: HEADERS_DICT):
390+
def encode_headers(self, headers: HEADERS_DICT) -> None:
391391
"""Encode a map of headers.
392392
393393
:param headers: A mapping of headers to encode.

packages/aws-sdk-signers/src/aws_sdk_signers/signers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,7 @@ async def sign_event(
833833
)
834834

835835
timestamp = new_signing_properties["date"]
836-
headers: dict[str, str | bytes] = {":date": date_obj}
836+
headers: dict[str, str | bytes | datetime.datetime] = {":date": date_obj}
837837
encoder = event_encoder_cls()
838838
encoder.encode_headers(headers)
839839
encoded_headers = encoder.get_result()

packages/smithy-core/src/smithy_core/interfaces/identity.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
33
from datetime import datetime
4-
from typing import Protocol, TypedDict, TypeVar
4+
from typing import Protocol, TypedDict, TypeVar, runtime_checkable
55

66

7+
@runtime_checkable
78
class Identity(Protocol):
89
"""An entity available to the client representing who the user is."""
910

0 commit comments

Comments
 (0)