Coverage for archdocs/features/task_queues/renderer.py: 100%
9 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.task_queues.const import TaskQueueFeatures
7_TASK_WORKER_NODE: typing.Final = diagram_model.build_diagram_node(
8 "TaskQueue_Worker",
9 "Task workers",
10 diagram_model.NodeGroup.messaging_and_tasks,
11)
14def render_task_queue_features(
15 service_node: diagram_model.DiagramNode,
16 features_to_draw: TaskQueueFeatures,
17 /,
18) -> tuple[diagram_model.DiagramEdge, ...]:
19 if not features_to_draw.queues_used:
20 return ()
22 properties_on_arrow: typing.Final = ", ".join(
23 filter(
24 None,
25 [
26 ", ".join(sorted(features_to_draw.queues_used)),
27 "workers" if features_to_draw.has_workers else "",
28 ", ".join(sorted(features_to_draw.brokers_detected)) if features_to_draw.brokers_detected else "",
29 ],
30 ),
31 )
33 return (
34 diagram_model.DiagramEdge(
35 source_node=service_node,
36 target_node=_TASK_WORKER_NODE,
37 edge_label=f"Tasks ({properties_on_arrow})",
38 ),
39 )