Type field declared in multiple flows as common base

Abierto
#5,111 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
python
Área
devtools

Línea de trabajo

The issue names no files, tests, or entry points. Start by reviewing the conditional-assignment examples and the requested common-base inference, then determine the intended typing behavior for optional and related model types. Done means the desired inference is defined and supported without requiring either explicit annotation form.

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

Descripción

feature topic-type-narrowing

In this code:

if condition:
  s = get_str()
else:
  s = get_optional_str()

we currently need to add hints, i.e. (a)

if condition:
  s: Optional[str] = get_str()
else:
  s = get_optional_str()

or (b)

s: Optional[str]
if condition:
  s = get_str()
else:
  s = get_optional_str()

Both (a) and (b) seem overly verbose to me, for what seems like a common pattern. If the optionality of s serves a problem for the code that's to follow, that's what mypy should alert us about.

Perhaps optionality is actually somewhat of a special case. A more natural application of this logic would allow for:

if condition:
   model = get_foo_model()  # FooModel
else:
   model = get_bar_model()  # BarModel
# model is Model
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.