Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Support using client in repl running tasks without rabbit

Aperta
#1,704 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
api, backend

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

c: client

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

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di DiamondLightSource/blueapi

Tutte le issue di DiamondLightSource/blueapi

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.