Skip to content

Commit c54f8ef

Browse files
committed
Change standard to default mode
1 parent 9205813 commit c54f8ef

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

packages/smithy-core/src/smithy_core/retries.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@
1212
from .interfaces import retries as retries_interface
1313
from .interfaces.retries import RetryStrategy
1414

15-
RetryStrategyType = Literal["simple"]
15+
RetryStrategyType = Literal["simple", "standard"]
1616

1717

1818
@dataclass(kw_only=True, frozen=True)
1919
class RetryStrategyOptions:
2020
"""Options for configuring retry behavior."""
2121

22-
retry_mode: RetryStrategyType = "simple"
22+
retry_mode: RetryStrategyType = "standard"
2323
"""The retry mode to use."""
2424

25-
max_attempts: int = 3
26-
"""Maximum number of attempts (initial attempt plus retries)."""
25+
max_attempts: int | None = None
26+
"""Maximum number of attempts (initial attempt plus retries). If None, uses the strategy's default."""
2727

2828

2929
class RetryStrategyResolver:
@@ -44,11 +44,19 @@ async def resolve_retry_strategy(
4444

4545
@lru_cache
4646
def _create_retry_strategy(
47-
self, retry_mode: RetryStrategyType, max_attempts: int
47+
self, retry_mode: RetryStrategyType, max_attempts: int | None
4848
) -> RetryStrategy:
4949
match retry_mode:
5050
case "simple":
51-
return SimpleRetryStrategy(max_attempts=max_attempts)
51+
if max_attempts is None:
52+
return SimpleRetryStrategy()
53+
else:
54+
return SimpleRetryStrategy(max_attempts=max_attempts)
55+
case "standard":
56+
if max_attempts is None:
57+
return StandardRetryStrategy()
58+
else:
59+
return StandardRetryStrategy(max_attempts=max_attempts)
5260
case _:
5361
raise ValueError(f"Unknown retry mode: {retry_mode}")
5462

packages/smithy-core/tests/unit/test_retries.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ async def test_caching_retry_strategy_default_resolution() -> None:
217217

218218
strategy = await resolver.resolve_retry_strategy(options=options)
219219

220-
assert isinstance(strategy, SimpleRetryStrategy)
220+
assert isinstance(strategy, StandardRetryStrategy)
221221
assert strategy.max_attempts == 3
222222

223223

0 commit comments

Comments
 (0)