Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

How to handle keyword-only arguments

Abierto
#742 1 comentario 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@bluetech ya está trabajando en esto.

Desde el 25/9/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

Currently pluggy ignores keyword-only arguments in specs and impls.

The reason historically is that _multicall only called hookimpls using positional arguments (tuple) as an optimization(?), but keyword-only arguments can't be passed positionally.

Since 51ec4486b9d47da944725b0326a412cf9b7518bf however, if a hookimpl function declares a default then we do pass kwargs, so it's possible to support keyword-only.

For specs, supporting keyword-only is less of an issue, since it's not actually called, so it doesn't actually matter.

In pluggy callers are required to pass parameters by keyword so keyword-only or not doesn't make a difference.

Overall, there is no reason to define a keyword-only parameter in either spec or impl, it only has a downside of making calls a bit slower. But I think the current situation where they're just ignored is not very nice. So we can go with either of these:

  1. Support them.
  2. Reject them (validation).

Since "Support them" is a small performance trap, it seems like 2 is better, unless we can make the performance equivalent, which I will look into.

Lenguaje dominante
Python
Estrellas
1.7k
Forks
170
Merge medio
1 d 18 h
PR fusionados (30 d)
18

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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 pytest-dev/pluggy

Todos los issues de pytest-dev/pluggy

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.