Client¶
asyncly.client.base.BaseHttpClient
¶
BaseHttpClient(
url: URL | str,
session: ClientSession,
client_name: str,
*,
proxy: URL | str | None = None,
proxy_auth: BasicAuth | None = None,
)
Typed base class for building async HTTP API clients.
Subclass it and add one method per endpoint, delegating to _make_req
with a mapping of status codes to response handlers. The
aiohttp.ClientSession is injected, so connection pooling and lifecycle
stay under your control.
Example
Initialize the client.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
URL | str
|
Base URL the client's endpoints are resolved against. |
required |
session
|
ClientSession
|
The |
required |
client_name
|
str
|
Identifier used in metrics labels and error messages. |
required |
proxy
|
URL | str | None
|
Default proxy URL for every request. Can be overridden
per request by passing |
None
|
proxy_auth
|
BasicAuth | None
|
Default |
None
|
Source code in asyncly/client/base.py
asyncly.client.metrics.instrumentable_client.InstrumentableHttpClient
¶
InstrumentableHttpClient(
url: URL | str,
session: ClientSession,
client_name: str,
*,
proxy: URL | str | None = None,
proxy_auth: BasicAuth | None = None,
)
Bases: BaseHttpClient
BaseHttpClient that records request metrics through a pluggable sink.
Behaves exactly like BaseHttpClient until a sink
is enabled. Each completed request reports its client name, method, resolved
route, status, duration, and error type to the active
MetricsSink.
Source code in asyncly/client/metrics/instrumentable_client.py
enable_metrics
¶
enable_metrics(
sink: MetricsSink,
*,
route_resolver: RouteResolver | None = None,
) -> None
Start emitting metrics to sink.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sink
|
MetricsSink
|
The metrics sink to report each request to. |
required |
route_resolver
|
RouteResolver | None
|
Optional override for how request URLs are normalized into low-cardinality route labels. |
None
|
Source code in asyncly/client/metrics/instrumentable_client.py
disable_metrics
¶
instrument
¶
instrument(
sink: MetricsSink,
*,
route_resolver: RouteResolver | None = None,
)
Context manager that enables sink for the duration of a block.
Restores the previous sink and route resolver on exit.
Source code in asyncly/client/metrics/instrumentable_client.py
Timeouts¶
asyncly.client.timeout.get_timeout
¶
get_timeout(t: TimeoutType) -> ClientTimeout