From 80ba54f173bd693d3665ff76f301277aa4cf0ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Wed, 22 Apr 2026 19:53:50 +0200 Subject: [PATCH 1/9] feat: add workflows --- .github/workflows/mkdocs-build.yml | 11 +++++++++++ .github/workflows/pytest.yml | 11 +++++++++++ .github/workflows/python-lint.yml | 11 +++++++++++ .gitlab-ci.yml | 6 ------ 4 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/mkdocs-build.yml create mode 100644 .github/workflows/pytest.yml create mode 100644 .github/workflows/python-lint.yml delete mode 100644 .gitlab-ci.yml diff --git a/.github/workflows/mkdocs-build.yml b/.github/workflows/mkdocs-build.yml new file mode 100644 index 0000000..7cc105b --- /dev/null +++ b/.github/workflows/mkdocs-build.yml @@ -0,0 +1,11 @@ +name: MkDocs Build (RationAI Standard) +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + workflow_dispatch: + +jobs: + run: + uses: RationAI/.github/.github/workflows/mkdocs-build.yml@main diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml new file mode 100644 index 0000000..3cef152 --- /dev/null +++ b/.github/workflows/pytest.yml @@ -0,0 +1,11 @@ +name: Pytest (RationAI Standard) +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + workflow_dispatch: + +jobs: + run: + uses: RationAI/.github/.github/workflows/pytest.yml@main diff --git a/.github/workflows/python-lint.yml b/.github/workflows/python-lint.yml new file mode 100644 index 0000000..6bf101f --- /dev/null +++ b/.github/workflows/python-lint.yml @@ -0,0 +1,11 @@ +name: Python Lint (RationAI Standard) +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + workflow_dispatch: + +jobs: + run: + uses: RationAI/.github/.github/workflows/python-lint.yml@main diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index b132c47..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,6 +0,0 @@ -include: - project: rationai/digital-pathology/templates/ci-templates - file: Python-Lint.gitlab-ci.yml - -stages: - - lint From fd19a47803f04c04741a86565b19c5c86b33f056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Wed, 22 Apr 2026 20:06:40 +0200 Subject: [PATCH 2/9] chore: point to the github repo --- scripts/submit_annotation_masks.py | 2 +- scripts/submit_fix_mask_icc_profile.py | 2 +- scripts/submit_qc.py | 2 +- scripts/submit_remap_annotation_masks.py | 2 +- scripts/submit_tiling.py | 2 +- scripts/submit_tissue_masks.py | 2 +- scripts/submit_train_test_split.py | 2 +- scripts/submit_wsi_mapping.py | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/submit_annotation_masks.py b/scripts/submit_annotation_masks.py index 86c3953..43d7be7 100644 --- a/scripts/submit_annotation_masks.py +++ b/scripts/submit_annotation_masks.py @@ -9,7 +9,7 @@ gpu=None, public=False, script=[ - "git clone https://gitlab.ics.muni.cz/rationai/digital-pathology/pathology/tissue-classification.git workdir", + "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", "uv run python -m preprocessing.annotation_masks +experiment=...", diff --git a/scripts/submit_fix_mask_icc_profile.py b/scripts/submit_fix_mask_icc_profile.py index ccd53ee..6b5bbce 100644 --- a/scripts/submit_fix_mask_icc_profile.py +++ b/scripts/submit_fix_mask_icc_profile.py @@ -9,7 +9,7 @@ gpu=None, public=False, script=[ - "git clone https://gitlab.ics.muni.cz/rationai/digital-pathology/pathology/tissue-classification.git workdir", + "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", "uv run python -m preprocessing.fix_mask_icc_profile +experiment=...", diff --git a/scripts/submit_qc.py b/scripts/submit_qc.py index 1506461..8eadf81 100644 --- a/scripts/submit_qc.py +++ b/scripts/submit_qc.py @@ -9,7 +9,7 @@ gpu=None, public=False, script=[ - "git clone https://gitlab.ics.muni.cz/rationai/digital-pathology/pathology/tissue-classification.git workdir", + "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", "uv run python -m preprocessing.qc +experiment=...", diff --git a/scripts/submit_remap_annotation_masks.py b/scripts/submit_remap_annotation_masks.py index eceb0cd..edf4e3f 100644 --- a/scripts/submit_remap_annotation_masks.py +++ b/scripts/submit_remap_annotation_masks.py @@ -9,7 +9,7 @@ gpu=None, public=False, script=[ - "git clone https://gitlab.ics.muni.cz/rationai/digital-pathology/pathology/tissue-classification.git workdir", + "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", "uv run python -m preprocessing.remap_annotation_masks +experiment=...", diff --git a/scripts/submit_tiling.py b/scripts/submit_tiling.py index b1c1ff9..7b20eb0 100644 --- a/scripts/submit_tiling.py +++ b/scripts/submit_tiling.py @@ -8,7 +8,7 @@ memory="64Gi", public=False, script=[ - "git clone https://gitlab.ics.muni.cz/rationai/digital-pathology/pathology/tissue-classification.git workdir", + "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", "uv run -m preprocessing.tiling +experiment=...", diff --git a/scripts/submit_tissue_masks.py b/scripts/submit_tissue_masks.py index 2386b85..12f6a24 100644 --- a/scripts/submit_tissue_masks.py +++ b/scripts/submit_tissue_masks.py @@ -9,7 +9,7 @@ gpu=None, public=False, script=[ - "git clone https://gitlab.ics.muni.cz/rationai/digital-pathology/pathology/tissue-classification.git workdir", + "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", "uv run python -m preprocessing.tissue_masks +experiment=...", diff --git a/scripts/submit_train_test_split.py b/scripts/submit_train_test_split.py index 7a19085..b36f94b 100644 --- a/scripts/submit_train_test_split.py +++ b/scripts/submit_train_test_split.py @@ -9,7 +9,7 @@ gpu=None, public=False, script=[ - "git clone https://gitlab.ics.muni.cz/rationai/digital-pathology/pathology/tissue-classification.git workdir", + "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", "uv run python -m split.train_test_split +experiment=...", diff --git a/scripts/submit_wsi_mapping.py b/scripts/submit_wsi_mapping.py index fdc38bf..d09f30e 100644 --- a/scripts/submit_wsi_mapping.py +++ b/scripts/submit_wsi_mapping.py @@ -9,7 +9,7 @@ gpu=None, public=False, script=[ - "git clone https://gitlab.ics.muni.cz/rationai/digital-pathology/pathology/tissue-classification.git workdir", + "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", "uv run python -m preprocessing.wsi_mapping", From 0a616daa8ae90cc45941be9770bc448302ba4dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Wed, 22 Apr 2026 20:13:52 +0200 Subject: [PATCH 3/9] fix: remove mk-docs --- .github/workflows/mkdocs-build.yml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 .github/workflows/mkdocs-build.yml diff --git a/.github/workflows/mkdocs-build.yml b/.github/workflows/mkdocs-build.yml deleted file mode 100644 index 7cc105b..0000000 --- a/.github/workflows/mkdocs-build.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: MkDocs Build (RationAI Standard) -on: - push: - branches: ["master"] - pull_request: - branches: ["master"] - workflow_dispatch: - -jobs: - run: - uses: RationAI/.github/.github/workflows/mkdocs-build.yml@main From 41699e0f0268135f1ad89123cd5bab3bf2dd60bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Wed, 22 Apr 2026 20:16:21 +0200 Subject: [PATCH 4/9] fix: remove pytest --- .github/workflows/pytest.yml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 .github/workflows/pytest.yml diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml deleted file mode 100644 index 3cef152..0000000 --- a/.github/workflows/pytest.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: Pytest (RationAI Standard) -on: - push: - branches: ["master"] - pull_request: - branches: ["master"] - workflow_dispatch: - -jobs: - run: - uses: RationAI/.github/.github/workflows/pytest.yml@main From 380feadd1a7ababff64537b71afd2764313112a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Wed, 22 Apr 2026 20:18:51 +0200 Subject: [PATCH 5/9] fix: add init to silence mypy --- preprocessing/__init__.py | 0 split/__init__.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 preprocessing/__init__.py create mode 100644 split/__init__.py diff --git a/preprocessing/__init__.py b/preprocessing/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/split/__init__.py b/split/__init__.py new file mode 100644 index 0000000..e69de29 From 9c633651472a0b4ddfbf7858fe58001063efd35e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Wed, 22 Apr 2026 20:30:01 +0200 Subject: [PATCH 6/9] fix: apply more typing issues --- preprocessing/qc.py | 2 +- preprocessing/tiling.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/preprocessing/qc.py b/preprocessing/qc.py index 0367ff8..a1e9f4f 100644 --- a/preprocessing/qc.py +++ b/preprocessing/qc.py @@ -63,7 +63,7 @@ async def qc_main( ), ] - async with rationai.AsyncClient() as client: + async with rationai.AsyncClient() as client: # type: ignore[attr-defined] tasks = [] for group, use_wb in processing_groups: diff --git a/preprocessing/tiling.py b/preprocessing/tiling.py index a2ff426..b85d341 100644 --- a/preprocessing/tiling.py +++ b/preprocessing/tiling.py @@ -1,7 +1,7 @@ import re import tempfile from pathlib import Path -from typing import Any +from typing import Any, cast import hydra import mlflow @@ -237,7 +237,7 @@ def main(config: DictConfig, logger: MLFlowLogger) -> None: df_slides, df_tiles = tiling( df=split_df, - class_mapping=OmegaConf.to_container(config.class_mapping, resolve=True), + class_mapping=cast(dict[str, list[str]], OmegaConf.to_container(config.class_mapping, resolve=True)), tile_extent=config.tile_size, stride=config.stride, mpp=config.mpp, From 065ce3b7414c75cc50f4d7d8ed5d5323736fc077 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Wed, 22 Apr 2026 20:34:12 +0200 Subject: [PATCH 7/9] feat: configure Gemini --- .gemini/config.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .gemini/config.yml diff --git a/.gemini/config.yml b/.gemini/config.yml new file mode 100644 index 0000000..7da814d --- /dev/null +++ b/.gemini/config.yml @@ -0,0 +1,8 @@ +code_review: + instructions: | + Review code changes and provide feedback as short bullet points only. + - No introductory or closing sentences + - One bullet per issue + - Each bullet: what is wrong and how to fix it, nothing more + - Skip compliments and summaries + - If there is nothing to flag, say only: "LGTM" From 07107c96c881e0ce64f1a9e7d34102dab2476ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Wed, 22 Apr 2026 20:34:37 +0200 Subject: [PATCH 8/9] fix: format --- preprocessing/tiling.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/preprocessing/tiling.py b/preprocessing/tiling.py index b85d341..46df81a 100644 --- a/preprocessing/tiling.py +++ b/preprocessing/tiling.py @@ -237,7 +237,10 @@ def main(config: DictConfig, logger: MLFlowLogger) -> None: df_slides, df_tiles = tiling( df=split_df, - class_mapping=cast(dict[str, list[str]], OmegaConf.to_container(config.class_mapping, resolve=True)), + class_mapping=cast( + "dict[str, list[str]]", + OmegaConf.to_container(config.class_mapping, resolve=True), + ), tile_extent=config.tile_size, stride=config.stride, mpp=config.mpp, From 0828e3d9539b91d6bf919b9d4b5e0bb7ab33271d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20C=C3=ADfka?= <550433@mail.muni.cz> Date: Thu, 23 Apr 2026 20:22:46 +0200 Subject: [PATCH 9/9] fix: typo --- scripts/submit_tiling.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/submit_tiling.py b/scripts/submit_tiling.py index 7b20eb0..89f2cea 100644 --- a/scripts/submit_tiling.py +++ b/scripts/submit_tiling.py @@ -11,7 +11,7 @@ "git clone https://github.com/RationAI/tissue-classification.git workdir", "cd workdir", "uv sync", - "uv run -m preprocessing.tiling +experiment=...", + "uv run python -m preprocessing.tiling +experiment=...", ], storage=[storage.secure.DATA], )