Coverage for archdocs/features/http_clients/renderer.py: 100%
8 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-18 22:03 +0000
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-18 22:03 +0000
1import typing
3from archdocs import diagram_model
4from archdocs.features.http_clients.const import HTTPClientFeatures
7def render_http_client_features(
8 service_node: diagram_model.DiagramNode,
9 features_to_draw: HTTPClientFeatures,
10 /,
11) -> tuple[diagram_model.DiagramEdge, ...]:
12 if not features_to_draw.clients_used:
13 return ()
15 properties_on_arrow: typing.Final = ", ".join(
16 filter(
17 None,
18 [
19 "async" if features_to_draw.async_used else "",
20 ", ".join(sorted(features_to_draw.clients_used)),
21 ],
22 ),
23 )
25 return (
26 diagram_model.DiagramEdge(
27 source_node=service_node,
28 target_node=diagram_model.EXTERNAL_API_NODE,
29 edge_label=f"HTTP ({properties_on_arrow})",
30 ),
31 )