BaseController does not check for python attribute name clashes
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
Direzione di ricerca
Inizia individuando BaseController e _check_for_name_clash, poi leggi i test esistenti sui conflitti di nomi. Estendi il controllo per rilevare i nomi di attributi riservati di Python, mantenendo i controlli di namespace esistenti. L’attività è completata quando un conflitto come description genera un ValueError più chiaro; esegui i test pertinenti del controller.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
We have _check_for_name_clash, which does:
def _check_for_name_clash(self, name: str):
namespaces = {
"attribute": self.__attributes,
"sub controller": self.__sub_controllers,
"scan method": self.__scan_methods,
"command method": self.__command_methods,
}
for kind, namespace in namespaces.items():
if name in namespace:
raise ValueError(
f"Controller {self} has existing {kind} {name}: {namespace[name]}"
)
However, this fastcs-eiger issue https://github.com/DiamondLightSource/fastcs-eiger/issues/107 reported an obscure error message when the python attribute "description" was shadowed by an attribute. _check_for_name_clash should be extended to check for these kinds of name clashed doing something like:
if hasattr(self, name) and not any(name in ns for ns in namespaces.values()):
raise ValueError(
f"Controller {self} has existing Python attribute {name!r}: "
f"{getattr(self, name)!r}"
)
Acceptance Criteria
- Python attribute reserved names are caught, and their error reporting improved.
- Lingua principale
- Python
- Stelle
- 6
- Fork
- 8
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
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/fastcs
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
DiamondLightSource/fastcs#443 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
DiamondLightSource/fastcs#416 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
DiamondLightSource/fastcs#345 ·
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 62/100
DiamondLightSource/fastcs#341 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 49/100
DiamondLightSource/fastcs#445 ·
Tutte le issue di DiamondLightSource/fastcs
Issue simili
-
documentation good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
MarketSquare/robotframework-browser#5479 ·
I maintainer di solito rispondono entro 1 giorno
-
Visual COBOL: missing 11.0 and 12.0, and 9.0 date differs from Rocket Software's lifecycle pageAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
endoflife-date/endoflife.date#11561 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
OCA/l10n-brazil#5602 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation review-2.0.0
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dkuenzel/meshcore-home-gateway#106 ·
I maintainer di solito rispondono entro 1 giorno