Skip to content

Commit 87b0781

Browse files
committed
PR cleanups
1 parent b449a83 commit 87b0781

File tree

8 files changed

+28
-40
lines changed

8 files changed

+28
-40
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ async def _handle_attempt(
446446
writer.addImport("smithy_core", "URI");
447447
writer.write("""
448448
# Step 7f: Invoke endpoint_resolver.resolve_endpoint
449-
endpoint_resolver_parameters = $T.build(config=config)
449+
endpoint_resolver_parameters = $1T.build(config=config)
450450
logger.debug("Calling endpoint resolver with parameters: %s", endpoint_resolver_parameters)
451451
endpoint = await config.endpoint_resolver.resolve_endpoint(
452452
endpoint_resolver_parameters
@@ -469,7 +469,8 @@ async def _handle_attempt(
469469
)
470470
context._transport_request.fields.extend(endpoint.headers)
471471
472-
""", CodegenUtils.getEndpointParametersSymbol(context.settings()));
472+
""",
473+
CodegenUtils.getEndpointParametersSymbol(context.settings()));
473474
}
474475
writer.popState();
475476

codegen/core/src/main/java/software/amazon/smithy/python/codegen/generators/ConfigGenerator.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,19 +136,15 @@ private static List<ConfigProperty> getHttpProperties(GenerationContext context)
136136
properties.add(ConfigProperty.builder()
137137
.name("endpoint_resolver")
138138
.type(Symbol.builder()
139-
.name("EndpointResolverProtocol[EndpointParameters]")
139+
.name("_EndpointResolver[EndpointParameters]")
140140
.addReference(CodegenUtils.getEndpointParametersSymbol(context.settings()))
141-
.addReference(Symbol.builder()
142-
.name("EndpointResolverProtocol")
143-
.namespace("smithy_http.aio.interfaces", ".")
144-
.addDependency(SmithyPythonDependency.SMITHY_HTTP)
145-
.build())
146141
.build())
147142
.documentation("""
148143
The endpoint resolver used to resolve the final endpoint per-operation based on the \
149144
configuration.""")
150145
.nullable(false)
151146
.initialize(writer -> {
147+
writer.addImport("smithy_http.aio.interfaces", "EndpointResolver", "_EndpointResolver");
152148
writer.pushState(new InitDefaultEndpointResolverSection());
153149
writer.write("self.endpoint_resolver = endpoint_resolver or $T()", endpointResolver);
154150
writer.popState();

packages/smithy-aws-core/src/smithy_aws_core/endpoints/standard_regional.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77
import smithy_core
88
from smithy_core import URI
99
from smithy_http.aio.interfaces import (
10-
EndpointResolverProtocol,
11-
EndpointParametersProtocol,
10+
EndpointResolver,
11+
EndpointParameters,
1212
)
13-
from smithy_http.endpoints import Endpoint, EndpointResolutionError
13+
from smithy_http.endpoints import Endpoint
14+
from smithy_http.exceptions import EndpointResolutionError
1415

1516

1617
class _RegionUriConfig(Protocol):
@@ -19,7 +20,7 @@ class _RegionUriConfig(Protocol):
1920

2021

2122
@dataclass(kw_only=True)
22-
class RegionalEndpointParameters(EndpointParametersProtocol[_RegionUriConfig]):
23+
class RegionalEndpointParameters(EndpointParameters[_RegionUriConfig]):
2324
"""Endpoint parameters for services with standard regional endpoints."""
2425

2526
sdk_endpoint: str | smithy_core.interfaces.URI | None
@@ -30,9 +31,7 @@ def build(cls, config: _RegionUriConfig) -> Self:
3031
return cls(sdk_endpoint=config.endpoint_uri, region=config.region)
3132

3233

33-
class StandardRegionalEndpointsResolver(
34-
EndpointResolverProtocol[RegionalEndpointParameters]
35-
):
34+
class StandardRegionalEndpointsResolver(EndpointResolver[RegionalEndpointParameters]):
3635
"""Resolves endpoints for services with standard regional endpoints."""
3736

3837
def __init__(self, endpoint_prefix: str = "bedrock-runtime"):

packages/smithy-aws-core/tests/unit/endpoints/test_standard_regional.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
)
77

88
from smithy_core import URI
9-
from smithy_http.endpoints import EndpointResolutionError
109

1110
import pytest
1211

12+
from smithy_http.exceptions import EndpointResolutionError
13+
1314

1415
async def test_resolve_endpoint_with_valid_sdk_endpoint_string():
1516
resolver = StandardRegionalEndpointsResolver(endpoint_prefix="service")

packages/smithy-http/src/smithy_http/aio/endpoints.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
from urllib.parse import urlparse
44

55
from smithy_core import URI
6-
from .interfaces import EndpointResolverProtocol
6+
from .interfaces import EndpointResolver
77

88
from .. import interfaces as http_interfaces
9-
from ..endpoints import Endpoint, StaticEndpointParams, EndpointResolutionError
9+
from ..endpoints import Endpoint, StaticEndpointParams
10+
from ..exceptions import EndpointResolutionError
1011

1112

12-
class StaticEndpointResolver(EndpointResolverProtocol[StaticEndpointParams]):
13+
class StaticEndpointResolver(EndpointResolver[StaticEndpointParams]):
1314
"""A basic endpoint resolver that forwards a static URI."""
1415

1516
async def resolve_endpoint(

packages/smithy-http/src/smithy_http/aio/interfaces/__init__.py

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
from typing import Protocol, TypeVar, Self
3+
from typing import Protocol, Self
44

55
from smithy_core.aio.interfaces import Request, Response
66
from smithy_core.aio.utils import read_streaming_blob, read_streaming_blob_async
@@ -12,26 +12,17 @@
1212
HTTPRequestConfiguration,
1313
)
1414

15-
Config = TypeVar("Config", contravariant=True)
1615

17-
18-
class EndpointParametersProtocol(Protocol[Config]):
16+
class EndpointParameters[C](Protocol):
1917
@classmethod
20-
def build(cls, config: Config) -> Self:
18+
def build(cls, config: C) -> Self:
2119
raise NotImplementedError()
2220

2321

24-
# EndpointParams are defined in the generated client, so we use a TypeVar here.
25-
# More specific EndpointParams implementations are subtypes of less specific ones. But
26-
# consumers of less specific EndpointParams implementations are subtypes of consumers
27-
# of more specific ones.
28-
EndpointParams = TypeVar("EndpointParams", contravariant=True)
29-
30-
31-
class EndpointResolverProtocol(Protocol[EndpointParams]):
22+
class EndpointResolver[T](Protocol):
3223
"""Resolves an operation's endpoint based given parameters."""
3324

34-
async def resolve_endpoint(self, params: EndpointParams) -> Endpoint:
25+
async def resolve_endpoint(self, params: T) -> Endpoint:
3526
raise NotImplementedError()
3627

3728

packages/smithy-http/src/smithy_http/endpoints.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
from dataclasses import dataclass, field
44
from typing import Protocol, Self
55

6-
from smithy_core import SmithyException
76
from smithy_core.interfaces import URI
87

98
from . import Fields, interfaces
10-
from .aio.interfaces import EndpointParametersProtocol
9+
from .aio.interfaces import EndpointParameters
1110

1211

1312
@dataclass
@@ -16,16 +15,12 @@ class Endpoint(interfaces.Endpoint):
1615
headers: interfaces.Fields = field(default_factory=Fields)
1716

1817

19-
class EndpointResolutionError(SmithyException):
20-
"""Exception type for all exceptions raised by endpoint resolution."""
21-
22-
2318
class _UriConfig(Protocol):
2419
endpoint_uri: str | URI | None
2520

2621

2722
@dataclass
28-
class StaticEndpointParams(EndpointParametersProtocol[_UriConfig]):
23+
class StaticEndpointParams(EndpointParameters[_UriConfig]):
2924
"""Static endpoint params.
3025
3126
:param uri: A static URI to route requests to.

packages/smithy-http/src/smithy_http/exceptions.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@
55

66
class SmithyHTTPException(SmithyException):
77
"""Base exception type for all exceptions raised in HTTP clients."""
8+
9+
10+
class EndpointResolutionError(SmithyException):
11+
"""Exception type for all exceptions raised by endpoint resolution."""

0 commit comments

Comments
 (0)