Single source the datatype for measurement inputs/outputs
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Refactoring
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- backend-api-design
Direzione di ricerca
Inizia con la example measure function e i relativi decoratori measurement_service descritti nell’issue, quindi esamina come vengono attualmente interpretati i type hints e gli argomenti datatype/default dei decoratori. Il lavoro è completo quando sarà stata stabilita un’unica fonte per i tipi di dati di input e output e sarà stato determinato se è possibile rimuovere i defaults o i decoratori stessi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Tech Debt
In the examples, the measure function is decorated with the inputs and outputs for the measurement. One input to the decorator is the datatype of the inputs/outputs. However, the datatype is also specified as part of type hints for the measure function. So this data is duplicated and could easily get out of sync if a datatype changed. We should explore if there is a way for the decorator to infer the datatype from the type hints so that we can single source that information. We might even be able to avoid having to specify a default value by putting that in the function signature as well. Maybe we can get rid of the decorators altogether. :) Below is a simple before/after (note that syntax might not be exactly right):
Before:
@measurement_service.register_measurement
@measurement_service.configuration("string_input", nims.DataType.String, "default_value")
@measurement_service.output("string_output", nims.DataType.String)
def measure(string_input: str) -> Tuple:
return ""
After:
@measurement_service.register_measurement
@measurement_service.configuration("string_input", "default_value")
@measurement_service.output("string_output")
def measure(string_input: str) -> Tuple[str, ]:
return ""
- Lingua principale
- Python
- Stelle
- 21
- Fork
- 20
- Merge medio
- 1g 19h
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né 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 ni/measurement-plugin-python
-
Clean up the unused `build_in_import_modules` dictionary in ni-measurement-plugin-client-generatorApertatech debt
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
ni/measurement-plugin-python#979 ·
-
tech debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
ni/measurement-plugin-python#926 ·
-
AUTO Session Initialization Fails in Python Measurement Plugin with VISA DevicesForse di nuovo libera @bkeryan l’ha presa 320 giorni fa e non c’è nessuna pull request aperta. Apertabug
ni/measurement-plugin-python#1263 · 1 commento · 1 assegnatario ·
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
ni/measurement-plugin-python#1227 ·
-
tech debt
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
ni/measurement-plugin-python#978 ·
Tutte le issue di ni/measurement-plugin-python
Issue simili
-
customer-reported
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/azure-cli#34150 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
community-request
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
NVIDIA-NeMo/Curator#2464 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
weblate-discover crashes with an unhandled FileNotFoundError when the directory does not existAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
WeblateOrg/translation-finder#1099 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
trezor/trezor-firmware#7997 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno