Document dataclass field should not be reused
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 77.2k
- Forks
- 35.9k
- Métricas de merge de PRs
- Métricas de PR pendentes
Descrição
Documentation
The current implementation of dataclass modifies a field in place. Thereby, the following code will modify f:
from dataclasses import dataclass, field
f = field(kw_only=True)
@dataclass
class A:
x: int = f
y: int = f
print(f) # now f.name is filled
# furthermore, A is broken (or does not behave if we used two different field instance)
It can create issues when we have multiple fields that have the same spec and we reuse the same Field instance to set the same metadata to all of them. A class is created but it's garbage.
IMHO, in the docs, we should warn the user to NOT share any Field instance.
Linked PRs
- gh-145373
- gh-145387
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.
Direção de pesquisa
Comece revisando a documentação de dataclass e Field e os PRs vinculados gh-145373 e gh-145387. Adicione um aviso claro para não reutilizar uma instância de Field entre campos de dataclass e considere completo o exemplo na issue quando as orientações documentadas abordarem a mutação resultante e o comportamento quebrado da classe.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- documentation
- Tipo de issue
- Documentação
- Dificuldade
- 1/5
- Tempo estimado
- 1-3 horas
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 25/100