type hint for SomeType*2 is list[SomeType] but could be Iterable[SomeType]

Aperta
#201 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
tooling

Direzione di ricerca

Inizia dalla definizione YAML di CoincidenceEvent e dall’output generato di types.py mostrato nell’issue. Traccia il punto in cui DetectionBin*2 viene convertito nell’annotazione di tipo Python, quindi controlla i test esistenti del generatore per i tipi di collezione. Il lavoro è completato quando l’annotazione generata accetta correttamente i valori iterabili previsti e i test di generazione pertinenti hanno esito positivo.

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

Descrizione

enhancement

We have

CoincidenceEvent: !record
  fields:
    # identifiers of the two detecting elements (see doc for DetectionBin)
    detectionBins: DetectionBin*2

This generates in types.py

class CoincidenceEvent:
    """All information about a coincidence event specified as indices (i.e. discretized)."""

    detection_bins: list[DetectionBin]

    def __init__(self, *,
        detection_bins: typing.Optional[list[DetectionBin]] = None,
        tof_idx: yardl.UInt32 = 0,
    ):
        self.detection_bins = detection_bins if detection_bins is not None else [DetectionBin() for _ in range(2)]

In my python code, I actually used a tuple as opposed to a list (I find that more intuitive for a list of 2 items), and everything works fine. However, pyright complains of course.

Lingua principale
C++
Stelle
35
Fork
16
Merge medio
2g 10h
PR unite (30g)
16

Preparare l'ambiente

Apri in Codespaces

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

  • Nessun Dockerfile né file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

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 microsoft/yardl

Tutte le issue di microsoft/yardl

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.