Only inject objects with the @inject decorator and objects with a @provider

Abierto
#116 13 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
backend

Línea de trabajo

No files, tests, or entry points are named in the issue. Start by tracing how Injector currently creates objects and handles @provider and @inject, then inspect existing tests for constructor injection and providers. Done means un-decorated constructors are not implicitly used, while explicitly provided or @inject-decorated objects remain creatable.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Edit: This post originally had a question on how to solve a specific problem, but is updated with the solution and requested change described in https://github.com/alecthomas/injector/issues/116#issuecomment-647505337:

Injector should require a @provider or a constructor with the @inject decorator for an object to be created.

The original post is kept below.


As mentioned before in #78, I feel that the way Injector has default values for "value types" such as such as str, int and bool is pretty counter-intuitive, and therefore risky. Removing that would obviously break backwards compatibility, but I'd like you to consider that.

To me, the use case for Injector is primarily to inject dependent classes. It is in some cases also useful to configure these classes with parameters that may be value types, but commonly the values shouldn't be the same for every every class they configure.

Is there a design decision behind the current behavior, or is it rather a consequence of the implementation?

Lenguaje dominante
Python
Estrellas
1.5k
Forks
94
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de python-injector/injector

Todos los issues de python-injector/injector

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.