Namespace packages and __init__ imports
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
--namespace-packages runs into an issue if we import from __init__.py explicitly.
For instance, given:
.
└── proj
├── __init__.py
└── a.py
$ cat proj/__init__.py
x: int
$ cat proj/a.py
from .__init__ import x
$ cat proj/b.py
from proj.__init__ import x
running mypy will result in:
$ mypy proj --namespace-packages
proj/__init__.py: error: Source file found twice under different module names: 'proj' and 'proj.__init__'
This issue comes up at least twice in mypy_primer's corpus.
This is correct in that you do get two entries in sys.modules, but undesirable for this to block type checking
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.
Línea de trabajo
Reproduce el error con los archivos proj/init.py, proj/a.py y proj/b.py mostrados usando mypy proj --namespace-packages. Empieza rastreando el descubrimiento de módulos de los paquetes de espacio de nombres y cómo se registran las importaciones explícitas de __init__. El trabajo estará terminado cuando este ejemplo ya no informe del error de archivo de origen duplicado y siga comprobando los tipos de las importaciones.
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
- 42/100