Skip to content

Commit 6f059fc

Browse files
committed
Make Limits injectable
1 parent 5020beb commit 6f059fc

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/ghga_service_commons/transports/factory.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"""Provides factories for different flavors of httpx.AsyncHTTPTransport."""
1717

1818
from hishel import AsyncCacheTransport, AsyncInMemoryStorage
19-
from httpx import AsyncHTTPTransport
19+
from httpx import AsyncHTTPTransport, Limits
2020

2121
from .config import CompositeCacheConfig, CompositeConfig
2222
from .ratelimiting import AsyncRatelimitingTransport
@@ -37,18 +37,22 @@ def _create_common_transport_layers(cls, config: CompositeConfig, transport):
3737

3838
@classmethod
3939
def create_ratelimiting_retry_transport(
40-
cls, config: CompositeConfig
40+
cls, config: CompositeConfig, limits: Limits | None = None
4141
) -> AsyncRatelimitingTransport:
4242
"""TODO"""
43-
base_transport = AsyncHTTPTransport()
43+
base_transport = (
44+
AsyncHTTPTransport(limits=limits) if limits else AsyncHTTPTransport()
45+
)
4446
return cls._create_common_transport_layers(config, base_transport)
4547

4648
@classmethod
4749
def create_ratelimiting_retry_transport_with_cache(
48-
cls, config: CompositeCacheConfig
50+
cls, config: CompositeCacheConfig, limits: Limits | None = None
4951
) -> AsyncRatelimitingTransport:
5052
"""TODO"""
51-
base_transport = AsyncHTTPTransport()
53+
base_transport = (
54+
AsyncHTTPTransport(limits=limits) if limits else AsyncHTTPTransport()
55+
)
5256
storage = AsyncInMemoryStorage(ttl=config.cache_ttl)
5357
cache_tranport = AsyncCacheTransport(transport=base_transport, storage=storage)
5458
return cls._create_common_transport_layers(config, cache_tranport)

src/ghga_service_commons/transports/retry.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def _log_retry_stats(retry_state: RetryCallState):
6363
if time_passed := retry_state.seconds_since_start:
6464
retry_stats["seconds_elapsed"] = round(time_passed, 3)
6565

66+
log.warning(retry_state.fn)
6667
log.info(
6768
"Retry attempt number %i for function %s.",
6869
attempt_number,

0 commit comments

Comments
 (0)