python / python/mypy

super(type, cls).__new__ saying not an instance when it is

Abierto
#7,595 1 comentario 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug priority-1-normal
Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

When upgrading to the latest mypy I started getting a weird new error. Here's a simplified example:

class X:
    def __new__(cls) -> "X":
        return super(type, cls).__new__(cls)    # error: Argument 2 for "super" not an instance of argument 1

However:

>>> isinstance(X, type) 
True

My settings: mypy 0.730

[mypy]
python_version=3.6
incremental=True
ignore_missing_imports=True
follow_imports=normal
warn_redundant_casts=True
warn_unused_ignores=True
strict_optional=True
no_implicit_optional=True
disallow_untyped_defs=True
disallow_any_generics=True

(Note: I'm using super to skip an inherited __new__ when I create the object.)

Guía de contribución

Abrir la guía de contribución

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.

Línea de trabajo

Empieza ejecutando el ejemplo mínimo de X.new con mypy 0.730 e inspecciona cómo el checker gestiona super(type, cls) y la llamada a new. En el informe no se nombran archivos fuente ni tests; se considera terminado cuando el ejemplo válido ya no produce el instance-type error y esta regresión cuenta con cobertura.

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

Evaluación

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.