From d60bc3d918fbf8325c6b2aa9f385967b21939000 Mon Sep 17 00:00:00 2001 From: Sam Tygier Date: Thu, 7 Mar 2024 16:00:33 +0000 Subject: [PATCH 1/4] Update Ruff to 0.3.2 --- .pre-commit-config.yaml | 2 +- environment-dev.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b3f3ec4e34c..f48d4923e4c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -23,6 +23,6 @@ repos: files: ^mantidimaging/ args: [--ignore-missing-imports, --no-site-packages] - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.2.1 + rev: v0.3.2 hooks: - id: ruff diff --git a/environment-dev.yml b/environment-dev.yml index bfa25e4e1f2..127bd1e56b9 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -30,6 +30,6 @@ dependencies: - pyinstaller==6.1.* - sarepy=2020.07 # For building old docs - make==4.3 - - ruff=0.2.1 + - ruff=0.3.2 - pre-commit==3.5.* From 2c1669cf25f095491964154dc802da3b7e087848 Mon Sep 17 00:00:00 2001 From: Sam Tygier Date: Thu, 7 Mar 2024 17:20:06 +0000 Subject: [PATCH 2/4] Use ruff check to avoid deprecation warning --- .github/workflows/conda.yml | 2 +- .github/workflows/cos7_testing.yml | 2 +- .github/workflows/u18_testing.yml | 2 +- .github/workflows/windows.yml | 2 +- Makefile | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index 2b49c072632..3a597155ffc 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -88,7 +88,7 @@ jobs: - name: Ruff shell: bash -l {0} run: | - ruff . + ruff check . - name: mypy shell: bash -l {0} diff --git a/.github/workflows/cos7_testing.yml b/.github/workflows/cos7_testing.yml index c595555c562..67cecbd5a51 100644 --- a/.github/workflows/cos7_testing.yml +++ b/.github/workflows/cos7_testing.yml @@ -34,7 +34,7 @@ jobs: - name: ruff uses: ./.github/actions/test with: - command: ruff . + command: ruff check . label: centos7 - name: mypy diff --git a/.github/workflows/u18_testing.yml b/.github/workflows/u18_testing.yml index 7d8d1c8f055..3c4510f6fbf 100644 --- a/.github/workflows/u18_testing.yml +++ b/.github/workflows/u18_testing.yml @@ -33,7 +33,7 @@ jobs: - name: ruff uses: ./.github/actions/test with: - command: ruff . + command: ruff check . label: ubuntu18 - name: mypy diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 9be6283e12a..7625d3b338a 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -75,7 +75,7 @@ jobs: - name: Ruff shell: bash -l {0} run: | - ruff . + ruff check . - name: mypy shell: bash -l {0} diff --git a/Makefile b/Makefile index f61bc0f2d25..bfb35461c70 100644 --- a/Makefile +++ b/Makefile @@ -71,7 +71,7 @@ yapf_apply: python -m yapf -i --parallel --recursive ${SOURCE_DIRS} ruff: - ruff ${SOURCE_DIRS} + ruff check ${SOURCE_DIRS} check: ruff yapf mypy test From 62e6fc40ba578880843699bcf2a22eafec2f0a75 Mon Sep 17 00:00:00 2001 From: Sam Tygier Date: Thu, 7 Mar 2024 17:36:27 +0000 Subject: [PATCH 3/4] Remove deprecated numpy calls Use unit_test_helper function to avoid duplication. Note this was not picked up in #2038 because of a ruff bug. Fix seeds, because we don't need the randomness --- .../palette_changer/test/presenter_test.py | 15 +++++++++------ .../nexus_load_dialog/test/presenter_test.py | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/mantidimaging/gui/widgets/palette_changer/test/presenter_test.py b/mantidimaging/gui/widgets/palette_changer/test/presenter_test.py index eced77ddcea..ba28b1a78a1 100644 --- a/mantidimaging/gui/widgets/palette_changer/test/presenter_test.py +++ b/mantidimaging/gui/widgets/palette_changer/test/presenter_test.py @@ -9,6 +9,7 @@ import numpy as np from mantidimaging.gui.widgets.palette_changer.presenter import PaletteChangerPresenter, SAMPLE_SIZE +from mantidimaging.test_helpers.unit_test_helper import gen_img_numpy_rand def _normalise_break_value(break_value, min_value, max_value): @@ -25,7 +26,7 @@ def setUp(self) -> None: self.view = mock.MagicMock() self.histograms = [mock.Mock() for _ in range(2)] self.recon_histogram = mock.Mock() - self.recon_image = np.random.random((200, 200)) + self.recon_image = gen_img_numpy_rand((200, 200), 2024) self.recon_gradient = self.recon_histogram.gradient self.presenter = PaletteChangerPresenter(self.view, self.histograms, self.recon_histogram, self.recon_image, True) @@ -39,8 +40,8 @@ def test_flattened_image_creation_for_large_image(self): assert self.presenter.flattened_image.ndim == 1 def test_flattened_image_creation_for_small_image(self): - presenter = PaletteChangerPresenter(self.view, self.histograms, self.recon_histogram, np.random.random( - (20, 20)), True) + presenter = PaletteChangerPresenter(self.view, self.histograms, self.recon_histogram, + gen_img_numpy_rand((20, 20), 2024), True) assert presenter.flattened_image.size == 400 assert presenter.flattened_image.ndim == 1 @@ -137,7 +138,7 @@ def remove_tick_side_effect(tick, finish): def test_get_sample_pixels(self): COUNT = 50 - recon_image = np.random.random((50, 50)) + recon_image = gen_img_numpy_rand((50, 50), 2024) sampled = self.presenter._get_sample_pixels(recon_image, COUNT, 0.9) self.assertEqual(len(sampled), COUNT) @@ -148,14 +149,16 @@ def test_get_sample_pixels(self): def test_not_recon_mode_calls_choice(self, default_rng_mock): rng_mock = MagicMock() default_rng_mock.return_value = rng_mock - PaletteChangerPresenter(self.view, self.histograms, self.recon_histogram, np.random.random((20, 20)), False) + PaletteChangerPresenter(self.view, self.histograms, self.recon_histogram, gen_img_numpy_rand((20, 20), 2024), + False) rng_mock.choice.assert_called_once() @mock.patch("mantidimaging.gui.widgets.palette_changer.presenter.np.random.default_rng") def test_recon_mode_doesnt_call_choice(self, default_rng_mock): rng_mock = MagicMock() default_rng_mock.return_value = rng_mock - PaletteChangerPresenter(self.view, self.histograms, self.recon_histogram, np.random.random((20, 20)), True) + PaletteChangerPresenter(self.view, self.histograms, self.recon_histogram, gen_img_numpy_rand((20, 20), 2024), + True) rng_mock.choice.assert_not_called() def test_jenks_break_values(self): diff --git a/mantidimaging/gui/windows/nexus_load_dialog/test/presenter_test.py b/mantidimaging/gui/windows/nexus_load_dialog/test/presenter_test.py index 25806bee68d..e6816a720a0 100644 --- a/mantidimaging/gui/windows/nexus_load_dialog/test/presenter_test.py +++ b/mantidimaging/gui/windows/nexus_load_dialog/test/presenter_test.py @@ -10,7 +10,7 @@ import numpy as np from mantidimaging.core.io.saver import NEXUS_PROCESSED_DATA_PATH -from mantidimaging.test_helpers.unit_test_helper import generate_images +from mantidimaging.test_helpers.unit_test_helper import generate_images, gen_img_numpy_rand from mantidimaging.core.data.dataset import StrictDataset from mantidimaging.gui.windows.nexus_load_dialog.presenter import _missing_data_message, TOMO_ENTRY, DATA_PATH, \ @@ -32,7 +32,7 @@ def setUp(self) -> None: self.tomo_entry = self.nexus.create_group(self.full_tomo_path) self.n_images = 10 - self.data_array = np.random.random((self.n_images, 10, 10)) + self.data_array = gen_img_numpy_rand((self.n_images, 10, 10), 2024) self.tomo_entry.create_dataset(DATA_PATH, data=self.data_array, dtype="float64") self.flat_before = self.data_array[:2] From 6d7ce9574a464a02fcf49f7bb1f1dccff2b5b50a Mon Sep 17 00:00:00 2001 From: Sam Tygier Date: Fri, 8 Mar 2024 13:17:05 +0000 Subject: [PATCH 4/4] Release notes --- docs/release_notes/next/dev-2114-update-ruff | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/release_notes/next/dev-2114-update-ruff diff --git a/docs/release_notes/next/dev-2114-update-ruff b/docs/release_notes/next/dev-2114-update-ruff new file mode 100644 index 00000000000..d4ef0529c0b --- /dev/null +++ b/docs/release_notes/next/dev-2114-update-ruff @@ -0,0 +1 @@ +#2114: Update ruff and fix some new warnings