Skip to content

Commit 88b8113

Browse files
authored
Use TypedProperty for UserAgent (#425)
1 parent b1c3752 commit 88b8113

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

packages/smithy-aws-core/src/smithy_aws_core/interceptors/user_agent.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import smithy_aws_core
77
import smithy_core
88
from smithy_core.interceptors import Interceptor, InterceptorContext
9+
from smithy_http.interceptors.user_agent import USER_AGENT
910
from smithy_http.user_agent import UserAgentComponent, RawStringUserAgentComponent
1011

1112
_USERAGENT_SDK_NAME = "aws-sdk-python"
@@ -39,8 +40,8 @@ def __init__(
3940
def read_after_serialization(
4041
self, context: InterceptorContext[Any, Any, Any, Any]
4142
) -> None:
42-
if "user_agent" in context.properties:
43-
user_agent = context.properties["user_agent"]
43+
if USER_AGENT in context.properties:
44+
user_agent = context.properties[USER_AGENT]
4445
user_agent.sdk_metadata = self._build_sdk_metadata()
4546
user_agent.api_metadata.append(
4647
UserAgentComponent("api", self._service_id, self._sdk_version)

packages/smithy-http/src/smithy_http/interceptors/user_agent.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@
55

66
import smithy_core
77
from smithy_core.interceptors import Interceptor, InterceptorContext
8+
from smithy_core.types import PropertyKey
89
from smithy_http import Field
910
from smithy_http.aio.interfaces import HTTPRequest
1011
from smithy_http.user_agent import UserAgent, UserAgentComponent
1112

13+
USER_AGENT = PropertyKey(key="user_agent", value_type=UserAgent)
14+
1215

1316
class UserAgentInterceptor(Interceptor[Any, None, HTTPRequest, None]):
1417
"""Adds interceptors that initialize UserAgent in the context and add the user-agent
@@ -17,12 +20,12 @@ class UserAgentInterceptor(Interceptor[Any, None, HTTPRequest, None]):
1720
def read_before_execution(
1821
self, context: InterceptorContext[Any, None, None, None]
1922
) -> None:
20-
context.properties["user_agent"] = _UserAgentBuilder.from_environment().build()
23+
context.properties[USER_AGENT] = _UserAgentBuilder.from_environment().build()
2124

2225
def modify_before_signing(
2326
self, context: InterceptorContext[Any, None, HTTPRequest, None]
2427
) -> HTTPRequest:
25-
user_agent = context.properties["user_agent"]
28+
user_agent = context.properties[USER_AGENT]
2629
request = context.transport_request
2730
request.fields.set_field(Field(name="User-Agent", values=[str(user_agent)]))
2831
return context.transport_request

0 commit comments

Comments
 (0)