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

[BUG] Make protocol compilation fail closed on invalid or unsupported parameters

Aperta
#323 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend, testing

Direzione di ricerca

Start by reading the cited compiler functions in unilabos/compile/heatchill_protocol.py and unilabos/compile/dissolve_protocol.py, then inspect unilabos/compile/utils/unit_parser.py. Trace how parsing, validation, resource resolution, and planning currently handle invalid inputs. Done means structured diagnostics are returned for the listed failure cases, silent defaults and fallbacks are removed, malformed-input tests are added, and valid action shapes remain unchanged.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

Protocol compilation currently mutates invalid or unsupported inputs into executable actions instead of failing closed.

Concrete code evidence

  • unilabos/compile/heatchill_protocol.py:14-60: parse_temp_input() returns a default temperature when input is empty or unparseable.
  • unilabos/compile/heatchill_protocol.py:93-114: validate_and_fix_params() replaces invalid/out-of-range values with fixed values.
  • unilabos/compile/dissolve_protocol.py:44-152: parse failures return fixed default volume, mass, and time.
  • unilabos/compile/utils/unit_parser.py:12-40, 154-156: unknown volume/time returns fixed defaults.
  • unilabos/compile/heatchill_protocol.py:62-91: unresolved heater selection falls back to the first node or heatchill_1.

For example, a parse failure or unresolved binding can still produce a successful action list, so the caller cannot distinguish “validated request” from “best-effort guess”.

Design gap

Parsing, capability validation, resource resolution, and protocol planning are combined inside individual compiler functions. Device-specific limits and fallback policy therefore become hidden function-body behavior instead of an explicit contract.

Expected behavior

Compilation must fail closed with structured diagnostics such as INVALID_PARAMETER, INVALID_UNIT, RESOURCE_NOT_FOUND, AMBIGUOUS_BINDING, or CAPABILITY_MISMATCH. The original request must be preserved and no default or first-match resource may be substituted silently.

Acceptance criteria

  • Add shared strict quantity/unit parsing and structured compiler diagnostics.
  • Remove silent default/fallback behavior from protocol compilers.
  • Add tests for malformed input, unsupported units, missing resources, ambiguous resources, and out-of-range values.
  • Valid existing inputs keep their current action shape.
Lingua principale
Python
Stelle
178
Fork
75
Merge medio
43m
PR unite (30g)
7

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

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 deepmodeling/Uni-Lab-OS

Tutte le issue di deepmodeling/Uni-Lab-OS

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.