Decide on a pydantic v3 BaseModel tagged union method and document it here
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Documentação
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- python
- Domínio
- developer-experience, documentation
Direção de pesquisa
Comece comparando as abordagens de tagged unions usadas por scanspec, FastCS, pvi, ibek e blueapi, tendo em mente as mudanças propostas no pydantic v3. Considera-se concluído quando os projetos tiverem acordado uma abordagem comum de BaseModel e esse método estiver documentado aqui, incluindo os trade-offs relevantes.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
At the moment we have multiple ways of using pydantic and tagged unions:
scanspecusing pydantic dataclasses and a decorator to make a tagged union of subclasses, it requires positional argsFastCSusing plain dataclasses and a pydantic BaseModel creation function to do serialization and deserializationpviuses an explicitly created union of BaseModelsibekuses automatically created Entity BaseModels from EntityModel instancesblueapidoes 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
- Linguagem predominante
- Jinja
- Estrelas
- 25
- Forks
- 9
- Merge médio
- 4h 13min
- PRs com merge (30d)
- 3
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de DiamondLightSource/python-copier-template
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 68/100
-
documentation good first issue
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 70/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Todas as issues de DiamondLightSource/python-copier-template
Issues semelhantes
-
docs(skills): issue-first should reference an existing Linear ticket instead of filing a duplicateAbertadocumentation
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia
-
enhancement good first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
Chandraprakash-Darji/brick#74 ·
Mantenedores costumam responder em até 1 dia
-
area: docs good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
Mantenedores costumam responder em até 1 dia
-
lane:repo
Dificuldade 2/5 Menos de uma hora Facilidade para iniciantes 82/100
SPARDiffData/differential-data-collection#47 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
objectionary/lints#1556 ·
Mantenedores costumam responder em até 3 dias