zx>S-{EA_{@Do^FC%Cdjh7(6kuNZgju}qy>xaZUr|?
zsD5mWAT$<-nVIOEHn6r30fqYiD2V^-I#@tj9N-Q}nnENj2_j$#2r>wjh$Iw*A>tt{
z8O1Jm04Mw&9*-rUCu=Mb9{;};#PoYC7z-D8jp>5NqJc=j1R&u+0Sl2y5RnL;foS5v
z=0v#QF%X7~M}PtmfQ;esU=eWfKm?*m1ky!7fi_&j@3EkOEHV+yhu0(n(?cLl_Q5q9
z87vV2*Dw$;Qg9)lvFy2cfcWGZU@X{|-NxboAxP|kCz9DU85nW`=qI2t0Kv(9abRCO
zxD~;I^aT744{8!17F@Fn1|COX69KN_{n<=|2?$^Sghjx6;=vp?QKo@|YqtErJK^95
z6igx*Y#24T28GQRc)Q7hzylQ7GhzDvY5)Kym%spw;Wsc;0P<-um}b{>4OoVl280b2
zj);cQW`hsQ!Ed0#II)EZ2oyZ)-&J6sP$&fZ-P8hP0vVbvupmsz04xW;7dEYdT);9h
zqp;-xmWk=YmX#@)faPIkf#G65gEe5;m@Y8p1QZ_d5Wot{z&wRa0z84`0+`d8Wm+bt
zYnUj2?+A7cw`UYKuP5KbWBx6$T)t8v=fXgX4guz|&CR4P
z!c2XY!B)k9pX^t#c7`zQFES874`2eU@Bt$136nMipuv8cv<^V1C!c`90H>b4j1L6Z!0rWeVS^0T*$3ohvc7Z63Q|W4EQ+L2AvC-&QVa7RhXErsHEae5
zGh*Oh`_2eoe|1i4b=dTpz=w7cGZO&!6sb%w5D+6a<|g3obc#s&XyspShqAj1!w1-N
zHm0yqoK8W{B*ml&od1><@$W4yN(Dy-KS+7Hfl>jd5cVUc>R(s3{~@}A_y6}R7p!H?
zJB-=DyLV6U4cKh1h1?|BxH`@Hrn0g!VVM}t<%b%{ypg;~{3=;El?7Z@OT^~!!)Eg9
zzZQuZ5;66i)qf!;W=QaVEfO=Yc_*c5@;f)Ak&7ej;R5vzpEdSJU_QW$V=I8E^8_5S
zUxAc?sul5`C?UwDrhBWH;d)zy#a}I|M!)O2h&**fdr1XqYn*y
z7dCU2r=t_(K&82YU8Yt5BiYNlcrbL~Z|K(QZor^0SQG&TOa!pMeoe;-F80}pCe9~nge
zB>8PM!^x4*B4CeEcZnhYD`
z-^XF#%=qj+A{++&J`Rh54d<*r3~CPTu~^tCm^BW_&zwHeTv%`z*wOfXE)Gka0}F^4
zfa#t!jx={);1ti9i^rno_7UM2_V@J&DBK)82$;G2CE$SPJbNwyM4-R-0cRCAg9a=n
z)y0j@WPdMf;o=YCU=XrXJUn1U!M4$c3?~nWtti+&i8qVNWU-GX$bX_R2zhxuQ+>q$
E0D%v|ZU6uP
literal 0
HcmV?d00001
diff --git a/examples/tools/show_FOV_ROIs/show_FOV_ROIs.py b/examples/tools/show_FOV_ROIs/show_FOV_ROIs.py
new file mode 100644
index 000000000..f6fe7360e
--- /dev/null
+++ b/examples/tools/show_FOV_ROIs/show_FOV_ROIs.py
@@ -0,0 +1,83 @@
+"""
+An example of visualizing FOV ROIs and their overlaps.
+"""
+import matplotlib.pyplot as plt
+
+from fractal_tasks_core.lib_metadata_parsing import parse_yokogawa_metadata
+from fractal_tasks_core.lib_ROI_overlaps import run_overlap_check
+
+
+def _plot_rectangle(min_x, min_y, max_x, max_y, overlapping):
+    x = [min_x, max_x, max_x, min_x, min_x]
+    y = [min_y, min_y, max_y, max_y, min_y]
+    if overlapping:
+        plt.plot(x, y, ",-", lw=2.5, zorder=2)
+    else:
+        plt.plot(x, y, ",-", lw=0.3, c="k", zorder=1)
+
+
+def _plotting_function(
+    xmin, xmax, ymin, ymax, list_overlapping_FOVs, selected_well
+):
+    plt.figure()
+    num_lines = len(xmin)
+    for line in range(num_lines):
+        min_x, max_x = [a[line] for a in [xmin, xmax]]
+        min_y, max_y = [a[line] for a in [ymin, ymax]]
+
+        _plot_rectangle(
+            min_x, min_y, max_x, max_y, line in list_overlapping_FOVs
+        )
+        plt.text(
+            0.5 * (min_x + max_x),
+            0.5 * (min_y + max_y),
+            f"{line + 1}",
+            ha="center",
+            va="center",
+            fontsize=14,
+        )
+
+    plt.gca().set_aspect(1)
+    plt.xlabel("x (um)", fontsize=12)
+    plt.ylabel("y (um)", fontsize=12)
+    plt.title(f"Well {selected_well}")
+
+    plt.figure()
+    for line in range(num_lines):
+        min_x, max_x = [a[line] for a in [xmin, xmax]]
+        min_y, max_y = [a[line] for a in [ymin, ymax]]
+
+        _plot_rectangle(
+            min_x, min_y, max_x, max_y, line in list_overlapping_FOVs
+        )
+        plt.text(
+            0.5 * (min_x + max_x),
+            0.5 * (min_y + max_y),
+            f"{line + 1}",
+            ha="center",
+            va="center",
+            fontsize=14,
+        )
+
+    plt.gca().set_aspect(1)
+    plt.xlabel("x (um)", fontsize=12)
+    plt.ylabel("y (um)", fontsize=12)
+    plt.title(f"Well {selected_well}")
+
+
+if __name__ == "__main__":
+    mlf_path = "MeasurementData_2x2_well.mlf"
+    mrf_path = "MeasurementDetail_2x2_well.mrf"
+    site_metadata, total_files = parse_yokogawa_metadata(mrf_path, mlf_path)
+
+    plt.close()
+    run_overlap_check(
+        site_metadata, tol=0, plotting_function=_plotting_function
+    )
+    plt.savefig("fig_tol_0.pdf")
+
+    plt.close()
+    run_overlap_check(
+        site_metadata, tol=1e-10, plotting_function=_plotting_function
+    )
+    plt.savefig("fig_tol_1e-10.pdf")
diff --git a/fractal_tasks_core/dev/lib_metadata_checks.py b/fractal_tasks_core/dev/lib_metadata_checks.py
deleted file mode 100644
index 9977b7ec7..000000000
--- a/fractal_tasks_core/dev/lib_metadata_checks.py
+++ /dev/null
@@ -1,107 +0,0 @@
-"""
-Copyright 2022 (C)
-    Friedrich Miescher Institute for Biomedical Research and
-    University of Zurich
-
-    Original authors:
-    Joel Lüthi  
-
-    This file is part of Fractal and was originally developed by eXact lab
-    S.r.l.   under contract with Liberali Lab from the Friedrich
-    Miescher Institute for Biomedical Research and Pelkmans Lab from the
-    University of Zurich.
-
-Helper functions to inspect a metadata dataframe from Yokogawa files
-"""
-import matplotlib.pyplot as plt
-import pandas as pd
-
-from fractal_tasks_core.lib_ROI_overlaps import is_overlapping_2D
-
-
-def _plot_rectangle(min_x, min_y, max_x, max_y, overlapping):
-    x = [min_x, max_x, max_x, min_x, min_x]
-    y = [min_y, min_y, max_y, max_y, min_y]
-    if overlapping:
-        plt.plot(x, y, ",-", lw=2.5, zorder=2)
-    else:
-        plt.plot(x, y, ",-", lw=0.3, c="k", zorder=1)
-
-
-def check_well_for_FOV_overlap(
-    site_metadata: pd.DataFrame,
-    selected_well: str,
-    always_plot: bool = False,
-    tol: float = 0,
-):
-    df = site_metadata.loc[selected_well].copy()
-    df["xmin"] = df["x_micrometer"]
-    df["ymin"] = df["y_micrometer"]
-    df["xmax"] = df["x_micrometer"] + df["pixel_size_x"] * df["x_pixel"]
-    df["ymax"] = df["y_micrometer"] + df["pixel_size_y"] * df["y_pixel"]
-
-    xmin = list(df.loc[:, "xmin"])
-    ymin = list(df.loc[:, "ymin"])
-    xmax = list(df.loc[:, "xmax"])
-    ymax = list(df.loc[:, "ymax"])
-    num_lines = len(xmin)
-
-    list_overlapping_FOVs = []
-    for line_1 in range(num_lines):
-        min_x_1, max_x_1 = [a[line_1] for a in [xmin, xmax]]
-        min_y_1, max_y_1 = [a[line_1] for a in [ymin, ymax]]
-        for line_2 in range(line_1):
-            min_x_2, max_x_2 = [a[line_2] for a in [xmin, xmax]]
-            min_y_2, max_y_2 = [a[line_2] for a in [ymin, ymax]]
-            overlap = is_overlapping_2D(
-                (min_x_1, min_y_1, max_x_1, max_y_1),
-                (min_x_2, min_y_2, max_x_2, max_y_2),
-                tol=tol,
-            )
-            if overlap:
-                list_overlapping_FOVs.append(line_1)
-                list_overlapping_FOVs.append(line_2)
-
-    if always_plot or (len(list_overlapping_FOVs) > 0):
-        plt.figure()
-        for line in range(num_lines):
-            min_x, max_x = [a[line] for a in [xmin, xmax]]
-            min_y, max_y = [a[line] for a in [ymin, ymax]]
-
-            _plot_rectangle(
-                min_x, min_y, max_x, max_y, line in list_overlapping_FOVs
-            )
-            plt.text(
-                0.5 * (min_x + max_x),
-                0.5 * (min_y + max_y),
-                f"{line + 1}",
-                ha="center",
-                va="center",
-                fontsize=14,
-            )
-
-        plt.gca().set_aspect(1)
-        plt.xlabel("x (um)", fontsize=12)
-        plt.ylabel("y (um)", fontsize=12)
-        plt.title(f"Well {selected_well}")
-
-        # Increase values by one to switch from index to the label plotted
-        return {selected_well: [x + 1 for x in list_overlapping_FOVs]}
-
-
-def run_overlap_check(site_metadata: pd.DataFrame, tol: float = 0):
-    """
-    Runs an overlap check over all wells, plots overlaps & returns
-    """
-
-    wells = site_metadata.index.unique(level="well_id")
-    overlapping_FOVs = []
-    for selected_well in wells:
-        overlap_curr_well = check_well_for_FOV_overlap(
-            site_metadata, selected_well=selected_well, tol=tol
-        )
-        if overlap_curr_well:
-            print(selected_well)
-            overlapping_FOVs.append(overlap_curr_well)
-
-    return overlapping_FOVs
diff --git a/fractal_tasks_core/lib_ROI_overlaps.py b/fractal_tasks_core/lib_ROI_overlaps.py
index 92c312c0c..4b146c52f 100644
--- a/fractal_tasks_core/lib_ROI_overlaps.py
+++ b/fractal_tasks_core/lib_ROI_overlaps.py
@@ -5,6 +5,7 @@
 
     Original authors:
     Tommaso Comparin 
+    Joel Lüthi  
 
     This file is part of Fractal and was originally developed by eXact lab
     S.r.l.   under contract with Liberali Lab from the Friedrich
@@ -14,6 +15,7 @@
 Functions to identify and remove overlaps between regions of interest
 """
 import logging
+from typing import Callable
 from typing import Optional
 from typing import Sequence
 
@@ -382,3 +384,92 @@ def find_overlaps_in_ROI_indices(
             if _is_overlapping_3D_int(box_1, box_2):
                 return (ind_1, ind_2)
     return None
+
+
+def check_well_for_FOV_overlap(
+    site_metadata: pd.DataFrame,
+    selected_well: str,
+    plotting_function: Callable,
+    tol: float = 0,
+):
+    """
+    This function is currently only used in tests and examples.
+
+    The ``plotting_function`` parameter is exposed so that other tools (see
+    examples in this repository) may use it to show the FOV ROIs.
+    """
+
+    df = site_metadata.loc[selected_well].copy()
+    df["xmin"] = df["x_micrometer"]
+    df["ymin"] = df["y_micrometer"]
+    df["xmax"] = df["x_micrometer"] + df["pixel_size_x"] * df["x_pixel"]
+    df["ymax"] = df["y_micrometer"] + df["pixel_size_y"] * df["y_pixel"]
+
+    xmin = list(df.loc[:, "xmin"])
+    ymin = list(df.loc[:, "ymin"])
+    xmax = list(df.loc[:, "xmax"])
+    ymax = list(df.loc[:, "ymax"])
+    num_lines = len(xmin)
+
+    list_overlapping_FOVs = []
+    for line_1 in range(num_lines):
+        min_x_1, max_x_1 = [a[line_1] for a in [xmin, xmax]]
+        min_y_1, max_y_1 = [a[line_1] for a in [ymin, ymax]]
+        for line_2 in range(line_1):
+            min_x_2, max_x_2 = [a[line_2] for a in [xmin, xmax]]
+            min_y_2, max_y_2 = [a[line_2] for a in [ymin, ymax]]
+            overlap = is_overlapping_2D(
+                (min_x_1, min_y_1, max_x_1, max_y_1),
+                (min_x_2, min_y_2, max_x_2, max_y_2),
+                tol=tol,
+            )
+            if overlap:
+                list_overlapping_FOVs.append(line_1)
+                list_overlapping_FOVs.append(line_2)
+
+    # Call plotting_function
+    plotting_function(
+        xmin, xmax, ymin, ymax, list_overlapping_FOVs, selected_well
+    )
+
+    if len(list_overlapping_FOVs) > 0:
+        # Increase values by one to switch from index to the label plotted
+        return {selected_well: [x + 1 for x in list_overlapping_FOVs]}
+
+
+def run_overlap_check(
+    site_metadata: pd.DataFrame,
+    tol: float = 0,
+    plotting_function: Optional[Callable] = None,
+):
+    """
+    Run an overlap check over all wells and optionally plots overlaps
+
+    This function is currently only used in tests and examples.
+
+    The ``plotting_function`` parameter is exposed so that other tools (see
+    examples in this repository) may use it to show the FOV ROIs. Its arguments
+    are: ``[xmin, xmax, ymin, ymax, list_overlapping_FOVs, selected_well]``.
+    """
+
+    if plotting_function is None:
+
+        def plotting_function(
+            xmin, xmax, ymin, ymax, list_overlapping_FOVs, selected_well
+        ):
+            pass
+
+    wells = site_metadata.index.unique(level="well_id")
+    overlapping_FOVs = []
+    for selected_well in wells:
+        overlap_curr_well = check_well_for_FOV_overlap(
+            site_metadata,
+            selected_well=selected_well,
+            tol=tol,
+            plotting_function=plotting_function,
+        )
+        if overlap_curr_well:
+            print(selected_well)
+            overlapping_FOVs.append(overlap_curr_well)
+
+    return overlapping_FOVs
diff --git a/tests/test_unit_parse_yokogawa_metadata.py b/tests/test_unit_parse_yokogawa_metadata.py
index 96c115544..77fc0c8e7 100644
--- a/tests/test_unit_parse_yokogawa_metadata.py
+++ b/tests/test_unit_parse_yokogawa_metadata.py
@@ -19,9 +19,9 @@
 from devtools import debug
 from pandas import Timestamp
 
-from fractal_tasks_core.dev.lib_metadata_checks import run_overlap_check
 from fractal_tasks_core.lib_metadata_parsing import parse_yokogawa_metadata
 from fractal_tasks_core.lib_ROI_overlaps import remove_FOV_overlaps
+from fractal_tasks_core.lib_ROI_overlaps import run_overlap_check
 
 # General variables and paths (relative to the test folder)
 testdir = os.path.dirname(__file__)
From eb617e4206f7bfddf5385f611479a382789a9fc2 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:28:20 +0200
Subject: [PATCH 12/21] Rename extra from `fractal_tasks` to `fractal-tasks`
 (ref #378)
---
 poetry.lock    | 2 +-
 pyproject.toml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index d109f1e03..9ee1171af 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -5547,4 +5547,4 @@ fractal-tasks = ["Pillow", "cellpose", "imageio-ffmpeg", "llvmlite", "napari-seg
 [metadata]
 lock-version = "2.0"
 python-versions = "^3.9"
-content-hash = "324d58f6c3be1fb4c7170db86215fc356edbd9b3d60ff266cd6ecf1fcd737182"
+content-hash = "7b90f3b88fa7065fc330d2e064231f549300ddaa25d56545d681d8a9aac3848e"
diff --git a/pyproject.toml b/pyproject.toml
index d2fd150c1..316b43043 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -41,7 +41,7 @@ cellpose = { version = "~2.2", optional = true }
 torch = { version = "1.12.1", optional = true }
 
 [tool.poetry.extras]
-fractal_tasks = ["Pillow", "imageio-ffmpeg", "scikit-image", "llvmlite", "napari-segment-blobs-and-things-with-membranes", "napari-workflows", "napari-skimage-regionprops", "napari-tools-menu", "cellpose", "torch"]
+fractal-tasks = ["Pillow", "imageio-ffmpeg", "scikit-image", "llvmlite", "napari-segment-blobs-and-things-with-membranes", "napari-workflows", "napari-skimage-regionprops", "napari-tools-menu", "cellpose", "torch"]
 
 [tool.poetry.group.dev]
 optional = true
From 416e3a9a9243f7076d1b34b01600921d63bb53c7 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:29:10 +0200
Subject: [PATCH 13/21] Add first version of pip_install.yml file
---
 .github/workflows/pip_install.yml | 41 +++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 .github/workflows/pip_install.yml
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
new file mode 100644
index 000000000..6c38cfa27
--- /dev/null
+++ b/.github/workflows/pip_install.yml
@@ -0,0 +1,41 @@
+name: pip_install
+
+on:
+  push:
+    branches: ["main"]
+  pull_request:
+    branches: ["main"]
+
+jobs:
+
+  tests:
+    name: "Python ${{ matrix.python-version }}"
+    runs-on: ubuntu-20.04
+    timeout-minutes: 10
+
+    strategy:
+      matrix:
+        python-version: ["3.9", "3.10"]
+
+    steps:
+
+      - uses: actions/checkout@v3
+        with:
+          submodules: "recursive"
+          fetch-depth: 1
+
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: actions/setup-python@v4
+        with:
+          python-version: ${{ matrix.python-version }}
+          cache: "pip"
+
+      - name: Install package without extra
+        run:
+          pip install -e .
+          python -c 'import fractal_tasks_core'
+
+      - name: Install package with fractal_tasks extra
+        run:
+          pip install -e .[fractal_tasks]
+          python -c 'import cellpose'
From e3fb24719dbed8156eb43594753c4e10bbfd50a3 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:30:59 +0200
Subject: [PATCH 14/21] Update pip_install.yml
---
 .github/workflows/pip_install.yml | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
index 6c38cfa27..7dbde6e77 100644
--- a/.github/workflows/pip_install.yml
+++ b/.github/workflows/pip_install.yml
@@ -30,12 +30,14 @@ jobs:
           python-version: ${{ matrix.python-version }}
           cache: "pip"
 
-      - name: Install package without extra
-        run:
-          pip install -e .
-          python -c 'import fractal_tasks_core'
-
-      - name: Install package with fractal_tasks extra
-        run:
-          pip install -e .[fractal_tasks]
-          python -c 'import cellpose'
+      - name: Install package (without extra)
+        run: pip install -e .
+
+      - name: Test package import (without extra)
+      - run: python -c 'import fractal_tasks_core'
+
+      - name: Install package (with fractal_tasks extra)
+        run: pip install -e .[fractal_tasks]
+
+      - name: Test package import (with extra)
+      - run: python -c 'import cellpose'
From 977a823414fe94224415c3360d11fbbb12b5dee5 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:32:13 +0200
Subject: [PATCH 15/21] Update pip_install.yml
---
 .github/workflows/pip_install.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
index 7dbde6e77..3c9490dd2 100644
--- a/.github/workflows/pip_install.yml
+++ b/.github/workflows/pip_install.yml
@@ -31,13 +31,13 @@ jobs:
           cache: "pip"
 
       - name: Install package (without extra)
-        run: pip install -e .
+        run: python -m pip install -e .
 
       - name: Test package import (without extra)
       - run: python -c 'import fractal_tasks_core'
 
       - name: Install package (with fractal_tasks extra)
-        run: pip install -e .[fractal_tasks]
+      - run: python -m pip install -e .[fractal_tasks]
 
       - name: Test package import (with extra)
       - run: python -c 'import cellpose'
From 8f0b4b6025f1fded3864d3a77a942debadb3b3e6 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:33:07 +0200
Subject: [PATCH 16/21] Update pip_install.yml
---
 .github/workflows/pip_install.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
index 3c9490dd2..8026b1362 100644
--- a/.github/workflows/pip_install.yml
+++ b/.github/workflows/pip_install.yml
@@ -34,10 +34,10 @@ jobs:
         run: python -m pip install -e .
 
       - name: Test package import (without extra)
-      - run: python -c 'import fractal_tasks_core'
+        run: python -c 'import fractal_tasks_core'
 
       - name: Install package (with fractal_tasks extra)
-      - run: python -m pip install -e .[fractal_tasks]
+        run: python -m pip install -e .[fractal_tasks]
 
       - name: Test package import (with extra)
-      - run: python -c 'import cellpose'
+        run: python -c 'import cellpose'
From 16fc272c2635a08cbe342e8dc63daa236db244c2 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:34:32 +0200
Subject: [PATCH 17/21] Update pip_install.yml
---
 .github/workflows/pip_install.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
index 8026b1362..f3b65533e 100644
--- a/.github/workflows/pip_install.yml
+++ b/.github/workflows/pip_install.yml
@@ -36,8 +36,8 @@ jobs:
       - name: Test package import (without extra)
         run: python -c 'import fractal_tasks_core'
 
-      - name: Install package (with fractal_tasks extra)
-        run: python -m pip install -e .[fractal_tasks]
+      - name: Install package (with fractal-tasks extra)
+        run: python -m pip install -e .[fractal-tasks]
 
-      - name: Test package import (with extra)
+      - name: Test package import (with fractal-tasks extra)
         run: python -c 'import cellpose'
From 5cff7b99844fb4e55d13b27dd1b7d4ea746549e5 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:39:26 +0200
Subject: [PATCH 18/21] Update pip_install.yml
---
 .github/workflows/pip_install.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
index f3b65533e..8915ab2e6 100644
--- a/.github/workflows/pip_install.yml
+++ b/.github/workflows/pip_install.yml
@@ -34,10 +34,10 @@ jobs:
         run: python -m pip install -e .
 
       - name: Test package import (without extra)
-        run: python -c 'import fractal_tasks_core'
+        run: python -c 'import fractal_tasks_core; print("OK")'
 
       - name: Install package (with fractal-tasks extra)
         run: python -m pip install -e .[fractal-tasks]
 
       - name: Test package import (with fractal-tasks extra)
-        run: python -c 'import cellpose'
+        run: python -c 'import fractal_tasks_core.task.cellpose_segmentation; print("OK")'
From ce16e3ed2e0699de6956fba8c69c7aaa4433a019 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:40:29 +0200
Subject: [PATCH 19/21] Try pip install with python 3.11
---
 .github/workflows/pip_install.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
index 8915ab2e6..e73984509 100644
--- a/.github/workflows/pip_install.yml
+++ b/.github/workflows/pip_install.yml
@@ -15,7 +15,7 @@ jobs:
 
     strategy:
       matrix:
-        python-version: ["3.9", "3.10"]
+        python-version: ["3.9", "3.10", "3.11"]
 
     steps:
 
From ff742dade2663d13a2023df33bd6492fe4e3a8c6 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:48:20 +0200
Subject: [PATCH 20/21] Revert "Try pip install with python 3.11"
This reverts commit ce16e3ed2e0699de6956fba8c69c7aaa4433a019.
---
 .github/workflows/pip_install.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
index e73984509..8915ab2e6 100644
--- a/.github/workflows/pip_install.yml
+++ b/.github/workflows/pip_install.yml
@@ -15,7 +15,7 @@ jobs:
 
     strategy:
       matrix:
-        python-version: ["3.9", "3.10", "3.11"]
+        python-version: ["3.9", "3.10"]
 
     steps:
 
From 9dc266f143c1a587519ed3b0514bf0e1677b6d86 Mon Sep 17 00:00:00 2001
From: Tommaso Comparin <3862206+tcompa@users.noreply.github.com>
Date: Tue, 6 Jun 2023 13:49:40 +0200
Subject: [PATCH 21/21] Update pip_install.yml
---
 .github/workflows/pip_install.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/pip_install.yml b/.github/workflows/pip_install.yml
index 8915ab2e6..3a585a68d 100644
--- a/.github/workflows/pip_install.yml
+++ b/.github/workflows/pip_install.yml
@@ -40,4 +40,4 @@ jobs:
         run: python -m pip install -e .[fractal-tasks]
 
       - name: Test package import (with fractal-tasks extra)
-        run: python -c 'import fractal_tasks_core.task.cellpose_segmentation; print("OK")'
+        run: python -c 'import fractal_tasks_core.tasks.cellpose_segmentation; print("OK")'