python / python/typing

`typing.TYPE_CHECKER` object to change types depending on which type checker is being run

Abierto
#1,337 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

topic: feature
Lenguaje dominante
Python
Estrellas
1.8k
Forks
302
Merge medio
23 h
PR fusionados (30 d)
8

Descripción

One issue I have run into as a library dev is varying support for typing features or bugs for both of the type checkers. typing.TYPE_CHECKER would allow me to change type definition based on the type checker so that I can support all static analysis tools more effectively.

I propose that TYPE_CHECKER would be a dict with a "name" and "version" key. Type checkers could also optionally add other keys/values.

TYPE_CHECKER = {
    "name": "type-checker-name",
    # `VersionInfo` would be implemented by each type checker to match their versioning scheme.
    "version": VersionInfo(...),
}

Using it for types would look like this:

if TYPE_CHECKER.get("name") == "pyright" and TYPE_CHECKER.get("version") > (1, 1, 290):
    T = TypeVar("T", default=int)
else:
    T = TypeVar("T")

At runtime I think the TYPE_CHECKER object should be an empty dictionary.

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.

Línea de trabajo

El issue en sí es el punto de entrada: empieza revisando el diccionario TYPE_CHECKER propuesto, sus campos de nombre y versión, los valores opcionales y el comportamiento en tiempo de ejecución vacío. Resuelve cómo proporcionarían los comprobadores de tipos información de versión coherente y, después, define y valida la interfaz acordada.

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

Evaluación

Stack tecnológico
python
Área
tooling
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
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.