From e898111e273df7337ac69421275f87e3dffda60f Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Sun, 22 Jun 2025 11:26:14 -0300 Subject: [PATCH 1/2] Remove `return` from `finally` block This `return` swallows any exceptions that might happen inside the `try/finally` block. While this does seem intentional, there is no reason for `set(item.nodeid ...)` to not work, given `nodeid` is a string. Fix #58 --- CHANGELOG.rst | 1 + random_order/shuffler.py | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fcaf611..873ae80 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,6 +7,7 @@ UNRELEASED ++++++++++ * Dropped support for EOL Python versions and added support for Python 3.13. +* Fix `#58 `_: ``return`` in a ``finally`` block swallows exceptions and raises a warning in Python 3.14. v1.1.1 (2024-01-20) +++++++++++++++++++ diff --git a/random_order/shuffler.py b/random_order/shuffler.py index 9ee3299..9e14f39 100644 --- a/random_order/shuffler.py +++ b/random_order/shuffler.py @@ -93,11 +93,7 @@ def get_full_bucket_key(item): def _get_set_of_item_ids(items): - s = {} - try: - s = set(item.nodeid for item in items) - finally: - return s + return set(item.nodeid for item in items) def _disable(item, session): From a8f09eb84cf8730c361e0a8f72076619a3ab8baf Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Sun, 22 Jun 2025 11:33:02 -0300 Subject: [PATCH 2/2] Fix setuptools-scm configuration --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 52b3191..8818d89 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,6 +5,8 @@ requires = [ ] build-backend = "setuptools.build_meta" +[tool.setuptools_scm] + [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-r a"