E722: (bare excepts) too strict (reraise)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza en el punto de entrada E722 de pycodestyle y revisa cómo se gestiona actualmente el ejemplo de bare-except con un re-raise. Comprueba las pruebas de regresión relacionadas, resuelve después el comportamiento solicitado y añade cobertura que muestre cuándo se debe informar de E722 y cuándo no.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
How I read PEP-8, it doesn't outlaw bare excepts, but merely recommends to catch more specific exceptions when possible. But what if there is no particular exception you want to catch, but when you just want to do some cleanup before propagating any exception?
try:
self.connection.send(...)
except:
# We only close the connection on failure, otherwise we keep reusing it.
self.connection.close()
raise
Using try...finally isn't an option here, since we want to reuse the resource on success, and only clean up on failure. I could just explicitly catch BaseException instead, but there is no indication in PEP-8 that this is preferable (otherwise why would bare except be supported in the first place).
So how about suppressing E722 if there is a raise statement in the except block?
- Lenguaje dominante
- Python
- Estrellas
- 5.2k
- Forks
- 756
- Merge medio
- 16 h 56 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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.
Más de PyCQA/pycodestyle
-
DOC: E252 is not documentedAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
PyCQA/pycodestyle#1294 · 1 comentario ·
-
Typing and formattingAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
PyCQA/pycodestyle#1302 · 3 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
PyCQA/pycodestyle#1242 · 2 comentarios ·
-
Spurious E231 for nested format substitutionsQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
PyCQA/pycodestyle#1241 · 2 comentarios · 4 reacciones ·
-
`exclude` is applied to `.`Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
PyCQA/pycodestyle#1217 ·
Todos los issues de PyCQA/pycodestyle
Issues similares
-
Add `django-upgrade` to the CIAbiertodependencies feature github_actions good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
wemake-services/wemake-django-template#3149 ·
Los mantenedores suelen responder en 1 día
-
[request] vsg/1.1.16Abiertoupstream update
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
conan-io/conan-center-index#31142 ·
Los mantenedores suelen responder en 1 día
-
area:core bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
request-theme
Dificultad 2/5 Menos de una hora Aptitud para principiantes 70/100
LizardByte/ThemerrDB#8877 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area/install-update comp/gateway P0 sweeper:risk-compatibility type/bug
Dificultad 2/5 Menos de una hora Aptitud para principiantes 72/100
NousResearch/hermes-agent#135997 · 3 comentarios ·
Los mantenedores suelen responder en 1 día