detect
detect
¶
Conductor detection and CLI routing — safe fallback to direct execution.
This module is used by CLI commands to auto-detect a running Marianne conductor and route operations through it. When no conductor is detected, the caller falls back to direct execution (existing behavior).
SAFETY: Every public function catches ALL exceptions and returns a "not routed" result. This ensures that conductor bugs never break the CLI. The CLI wiring wraps calls in try/except as a second layer.
Functions¶
is_daemon_available
async
¶
Check if the Marianne conductor is running. Safe: returns False on any error.
Source code in src/marianne/daemon/detect.py
try_daemon_route
async
¶
Try routing a CLI command through the conductor.
Returns:
| Type | Description |
|---|---|
bool
|
(True, result) if conductor handled the request. |
Any
|
(False, None) if conductor is not running or a connection error occurred. |
Raises:
| Type | Description |
|---|---|
(JobSubmissionError, ResourceExhaustedError)
|
Business logic errors from a running conductor are re-raised so callers can handle them (e.g., "job not found" is different from "daemon not running"). |
Connection-level errors never raise — they return (False, None).
Response-level timeouts (daemon confirmed running but slow to respond)
raise DaemonError so callers can show an accurate message instead
of the misleading "conductor not running."
Source code in src/marianne/daemon/detect.py
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | |