Support using client in repl running tasks without rabbit
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Start with src/blueapi/client/plan_cache.py, client.py, and event_bus.py, which appear in the traceback; trace how foreground task execution connects to the message bus. Compare the websocket option with the alternative acceptance criteria for background execution and clearer connection errors. Done means foreground tasks work through the chosen approach, or bus connection failures produce a helpful user facing error.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
If you try and use the client in a repl without stomp configured it errors with a stack trace showing it can't connect to the message bus. This is an unhelpful wall of text to be user facing.
>>> bc.plans.count(detectors=[bc.devices.det])
# 2026-10-20 10:00:18,596 INFO blueapi.client.plan_cache plan_cache.py:112 -- Building args for [detectors,num,delay,metadata], using () and {'detectors': [Device(det)]}
# 2026-10-20 10:00:18,605 INFO root messaging.py:366 -- Stomp client connecting...
# 2026-10-20 10:00:18,605 WARNING stomp.py transport.py:893 -- could not connect to host localhost, port 61613: [Errno 111] Connection refused
# 2026-10-20 10:00:18,807 WARNING stomp.py transport.py:893 -- could not connect to host localhost, port 61613: [Errno 111] Connection refused
# 2026-10-20 10:00:19,009 WARNING stomp.py transport.py:893 -- could not connect to host localhost, port 61613: [Errno 111] Connection refused
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/abi/projects/blueapi/src/blueapi/client/plan_cache.py", line 82, in __call__
match self._client.run_task(req):
~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/observability_utils/tracing/decorators.py", line 151, in wrapper
return func(*args, **kwargs)
File "/home/abi/projects/blueapi/src/blueapi/client/client.py", line 400, in run_task
with self._events:
^^^^^^^^^^^^
File "/home/abi/projects/blueapi/src/blueapi/client/event_bus.py", line 27, in __enter__
self.app.connect()
~~~~~~~~~~~~~~~~^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/bluesky_stomp/messaging.py", line 368, in connect
self._connect_to_broker()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/bluesky_stomp/messaging.py", line 383, in _connect_to_broker
self._conn.connect(wait=True) # type: ignore
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/stomp/connect.py", line 151, in connect
self.transport.start()
~~~~~~~~~~~~~~~~~~~~^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/stomp/transport.py", line 113, in start
self.attempt_connection()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/stomp/transport.py", line 910, in attempt_connection
raise exception.ConnectFailedException()
stomp.exception.ConnectFailedException
>>>
Acceptance Criteria
- Preferably:
-- The fg running option is changed to a websocket by default, removing the message bus from this loop
-- If there are connection errors these are nicely wrapped for the user - Alternatively if if bus really wants to be kept for this:
-- The client supports a background running option, like the --bg flag on the cli
-- If you do try and run a plan in the fg without the bus you get a more helpful error
- Lingua principale
- Python
- Stelle
- 13
- Fork
- 14
- Merge medio
- 6g 15h
- PR unite (30g)
- 14
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DiamondLightSource/blueapi
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
DiamondLightSource/blueapi#1626 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
DiamondLightSource/blueapi#1623 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Cannot Install SoftiocApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
DiamondLightSource/blueapi#1605 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
DiamondLightSource/blueapi#1494 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
DiamondLightSource/blueapi#1716 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di DiamondLightSource/blueapi
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
khuisman/mcp-gee-sweet#1166 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
lugassawan/swe-workbench#823 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
gramaziokohler/compas_timber#870 ·
-
security-scan-failure
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
semantica-agi/semantica#2089 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
autowarefoundation/autoware_carla_scenario#500 ·
I maintainer di solito rispondono entro 1 giorno