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

select/ignore/enable/disable is a mess

Abierto
#260 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
35/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
cli, tooling

Línea de trabajo

Empieza leyendo parse_options y las llamadas a option_manager.extend_default_ignore; después, sigue cómo difieren las opciones entre los modos plugin y standalone. Compara el comportamiento propuesto de enable/disable/select/ignore con cada caso del issue; se considera terminado cuando las reglas ASYNC9xx se pueden habilitar de forma coherente sin depender de la validación de tres letras de flake8, y la registración de opciones standalone queda resuelta.

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

Descripción

feature

Status quo:

  • ignore or extend-ignore ASYNC error codes in config is not possible, as flake8 gives an error
  • when running flake8-async as a plugin, --ignore and --extend-ignore is possible on the command-line, flake8 does not seem to enforce the three-letter rule there
  • select does not currently have the validation rules enabled that ignore does.
  • --select and --ignore are not supported when running as standalone
  • it's always possible to use --enable and --disable.
  • when running as a plugin, we add individual error codes for ASYNC9xx to the default_ignored codes
  • when running as standalone, we set the default of --disable to ASYNC9.

Implications:

  • if running as plugin, you have to select/--select ASYNC9xx codes to enable them. Trying to enable them will do nothing.
  • But if you want to default-enable ASYNC9xx rules, and disable them individually, you need to use a combination of select/--select and --disable (or --ignore on the CLI).
  • if running as standalone, you have to --enable ASYNC9xx codes. --select gives errors

This is... a mess. And it feels like --[extend-]ignore on the CLI, and select could get hit with the three-letter validation rules at any point which would make it impossible for end-users to enable ASYNC9xx codes unless they downgrade flake8 / we update flake8-async.

suggestions:

  1. Stop calling option_manager.extend_default_ignore
  2. Always default --disable to ASYNC9
  3. in parse_options, read options.select and parse out any selected ASY... codes, adding them to --enable
  4. same thing with options.ignore -> --disable, in case --ignore has been used on the CLI
  5. [maybe] register --select and --ignore as options when running as standalone.
    • this would make it slightly easier to switch from plugin to standalone, but the added complexity might not be worth it. e.g. flake8-async --select=ASYNC --ignore=ASYNC9 --enable=ASYNC91 --disable=ASYNC910 would be possible to write and impossible to understand. Though that's ofc already the case when running as plugin
    • we could give a warning/error if users are using both enable+select or disable+ignore for ASYNC codes though

this would achieve:

  1. You can always use --enable to enable ASYNC9 codes, you're not forced to touch select/ignore
  2. Even if only using select/ignore you get the speed upside of disabling visitors (although this is somewhat diminished after adding ASYNC100 to Visitor91x)
Lenguaje dominante
Python
Estrellas
26
Forks
10
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

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-trio/flake8-async

Todos los issues de python-trio/flake8-async

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.