Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Remaining bare `except:` / swallowed exceptions in tests/ and src/ (Codacy + hidden failures)

Ouverte
#115 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
45/100
Type d'issue
Refactorisation
Clarté
Plutôt claire
Activité
Active
Stack technique
python

Piste de recherche

Start with #114's PR description and the listed files: tests/test_camera.py, tests/base/test_base_color.py, tests/test_ros.py, tests/conftest.py, and the named src locations. Run each protected test snippet on OpenCV 4 and 5, then review the exception sites and mutation-check that tests fail when behavior is broken. Done means the findings are addressed in focused PRs, the color.py message has a test, and Ruff rules E722, BLE001, and S110 can be enabled.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

tech-debt

Follow-up to #51 / #114, which fixed the bare except: pass pattern in tests/test_image_point_features.py. Inventory of what remains as of 2026-10-03 (main at 770a031a). These are likely contributing to the Codacy B grade (Pylint/Pyflakes bare-except and try/except/pass/W0702/W0703-type findings, see #41) and, in tests, hide real failures.

Why it matters

In tests, a bare except: also swallows the AssertionError from assert*, so the test can never fail. Fixing the same pattern in #114 showed that several of those tests had been calling APIs that don't exist (Image.SURF, corners, getpixel, concat), so expect similar findings here: fix by running each snippet unprotected on OpenCV 4 and 5, rewriting against the real API with direct assertions, and mutation-checking that the test now fails when the code is broken (see #114's PR description for the method).

tests/

File bare except: except Exception + pass/continue
tests/test_camera.py 11 8
tests/base/test_base_color.py 3 1
tests/test_ros.py 0 3
tests/conftest.py 0 2 (probably legitimate GUI-suppression; review rather than blanket-remove)

src/

Location Issue Suggested fix
base/color.py:966 and :976 (rgb2xyz-style white/primaries lookup) bare except: around a dict lookup, then raise ValueError("unknown white value, must be one of" ", ".join(...)). Real bug: the two adjacent string literals concatenate first, so ", ".join(...) uses the whole sentence as the separator; the error message is garbled. except KeyError: and build the message with an f-string: f"unknown white value, must be one of {', '.join(_whites)}", plus a test that checks the message
base/findpeaks.py:119 bare except: around Polynomial.fit, then print + continue catch the specific exceptions Polynomial.fit raises for a neighbourhood falling off the data; use warnings.warn rather than print
base/imageio.py:1033 (set_window_title) bare except: pass except (AttributeError, RuntimeError): (backends without a window manager)
Camera.py, ImageProcessing.py, base/imageio.py one except Exception: pass/continue each review each: narrow the exception type or log

Suggested approach

Separate small PRs: (1) color.py message bug + test (src, real fix), (2) other src sites, (3) tests/test_camera.py, (4) tests/base/test_base_color.py and the rest. Add E722 (bare except) and BLE001/S110 (try-except-pass) to the ruff rule set once clean so it can't regress (see the typing/lint cluster, #40/#41).

Related: #41, #51, #113

Langage dominant
Python
Étoiles
223
Forks
30
Merge moyen
1 h 4 min
PR mergées (30 j)
9

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de petercorke/machinevision-toolbox-python

Toutes les issues de petercorke/machinevision-toolbox-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.