on_setattr doesn't apply during init
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- developer-experience
Línea de trabajo
Start by reproducing the minimal Test example and compare construction with post-instantiation assignment. Then trace the on_setattr and initialization entry points in the attrs package and review the existing tests and documentation for validators. Done means the intended behavior for validation during init is decided and covered by a documented, tested approach.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This may be by design, but I was hopeful it would work. When an attribute is set during init, on_setattr does not seem to apply, but it does after instantiation. What's the best way to hook in so I can add a validator to all Attributes? Looking to essentially create a class that enforces all values are set to valid types, without adding the same validator to each attribute when I can have some classes with dozens of attributes.
import attr
def raise_value_error(instance, attribute, value):
raise ValueError
@attr.define(on_setattr=raise_value_error)
class Test:
a: int
test = Test("a string") # fine
test.a = "another string" # fails
- Lenguaje dominante
- Python
- Estrellas
- 5.9k
- Forks
- 499
- Merge medio
- 3 d 12 h
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python-attrs/attrs
-
Docs: `attrs.filters` is missing stated examplesPosiblemente ocupada @feiiiiii5 la tomó hace 11 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
python-attrs/attrs#1627 ·
Los mantenedores suelen responder en 1 día
-
slots declared on attrs-decorated class are ignored/lostPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
python-attrs/attrs#1637 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
python-attrs/attrs#1620 ·
Los mantenedores suelen responder en 1 día
-
Incorrect annotation for forward reference in generated constructorPosiblemente ocupada @MohammedAnasNathani la tomó hace 68 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
python-attrs/attrs#1596 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Decorated functions do not work with inheritancePosiblemente ocupada @sb123sb123 la tomó hace 14 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
python-attrs/attrs#1549 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de python-attrs/attrs
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
FuRongJun-1999/dsh-memory#65 ·
Los mantenedores suelen responder en 1 día
-
ci needs-ac
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Ikalus1988/MisakaNet#2930 ·
Los mantenedores suelen responder en 1 día
-
`FakeBackendV2.run` fails with `NoiseError` on circuits with delays on qubits where T2 > 2·T1Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Qiskit/qiskit-aer#2466 ·
-
area/cli
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100