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

Decide on a pydantic v3 BaseModel tagged union method and document it here

Aperta
#316 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Documentazione
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python

Direzione di ricerca

Inizia confrontando gli approcci alle tagged union utilizzati da scanspec, FastCS, pvi, ibek e blueapi, tenendo presenti le modifiche proposte in pydantic v3. Il lavoro sarà considerato completato quando i progetti avranno concordato un approccio comune a BaseModel e tale metodo sarà documentato qui, includendo i relativi compromessi.

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

Descrizione

At the moment we have multiple ways of using pydantic and tagged unions:

  • scanspec using pydantic dataclasses and a decorator to make a tagged union of subclasses, it requires positional args
  • FastCS using plain dataclasses and a pydantic BaseModel creation function to do serialization and deserialization
  • pvi uses an explicitly created union of BaseModels
  • ibek uses automatically created Entity BaseModels from EntityModel instances
  • blueapi does something with BaseModels too, but I can't remember what

With the advent of pydantic v3, now would be a good time to look at investigating a common approach for all these usecases. Standardising on BaseModel instances would probably give us the most tool support for things like documenting models in sphinx, FastAPI and GraphQL support, and downstream serialization

@GDYendell @gilesknap @DiamondJoseph @tpoliaw @abbiemery FYI

@hyperrealist I'm hoping you'll take this on at some point in the new year

Lingua principale
Jinja
Stelle
25
Fork
10
Merge medio
4g 17h
PR unite (30g)
7

Guida per i contributori

Apri la 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 DiamondLightSource/python-copier-template

Tutte le issue di DiamondLightSource/python-copier-template

Issue simili

Altre issue su DevTools

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.