mypy does not show error in excluded folder when PYTHONPATH set

Abierto
#16,973 0 comentarios 0 reacciones 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
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python

Línea de trabajo

Comienza con la estructura de paquete reproducida que contiene excluded_folder/excluded.py e included_folder/included.py, y después compara los dos comandos de mypy con y sin PYTHONPATH=. Traza cómo se descubren --exclude y los módulos importados. Se considera terminado cuando la invocación con PYTHONPATH=. informa del valor de retorno incompatible en excluded.py, con una prueba de regresión que cubra ambos comandos.

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

Descripción

bug

Bug Report

As far as I understand, when I use the exclude setting for some folder mypy should still show errors in these packages when imported, because of the follow imports logic. However, if I set the PYTHONPATH to the current working directory, it does not show these errors anymore.

To Reproduce
Here is the folder structure:

src/
|--excluded_folder/
|           |-- excluded.py
|           |-- __init__.py
|--included_folder/
            |-- included.py
            |-- __init__.py

The contents of the file excluded.py are as follows:

def function() -> str:  # obviously wrong return type
        return 5

File included.py looks like so:

from excluded_folder.excluded import function

print(function)

Now, if i run mypy like so, with the setting to exclude the excluded folder, it reports this:

$ mypy --strict --exclude excluded_folder src                          
src/excluded_folder/excluded.py:3: error: Incompatible return value type (got "int", expected "str")  [return-value]
Found 1 error in 1 file (checked 2 source files)

This is what i would expect. It still shows the errors in the file, although excluded.

But if i run mypy with PYTHONPATH set to the current working directory, it does not show any error anymore:

% PYTHONPATH=. mypy --strict --exclude excluded_folder src
Success: no issues found in 2 source files

Expected Behavior
Mypy should also show the errors when the PYTHONPATH is set.

Actual Behavior
Mypy does not show the errors when the PYTHONPATH is set.

Your Environment

  • Mypy version used: mypy 1.8.0 (compiled: yes)
  • Mypy command-line flags: see commands above
  • Mypy configuration options from mypy.ini (and other config files): none
  • Python version used: Python 3.11.3
Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Merge medio
1 d 18 h
PR fusionados (30 d)
54

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.

Más de python/mypy

Todos los issues de python/mypy

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.