Coverage for archdocs/features/http_clients/renderer.py: 100%
8 statements
« prev ^ index » next coverage.py v7.15.3, created at 2026-08-03 00:00 +0000
« prev ^ index » next coverage.py v7.15.3, created at 2026-08-03 00:00 +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.has_external_calls or 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 )