Skip to content

Commit 9700026

Browse files
committed
pipeline: Unifies pre- and postprocessing descr handling
1 parent 8919900 commit 9700026

File tree

2 files changed

+12
-101
lines changed

2 files changed

+12
-101
lines changed

bioimageio/core/proc_ops.py

Lines changed: 6 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -660,72 +660,9 @@ def _apply(self, input: Tensor, stat: Stat) -> Tensor:
660660
ZeroMeanUnitVariance,
661661
]
662662

663-
664-
def get_proc_class(proc_spec: ProcDescr):
665-
if isinstance(proc_spec, (v0_4.BinarizeDescr, v0_5.BinarizeDescr)):
666-
return Binarize
667-
elif isinstance(proc_spec, (v0_4.ClipDescr, v0_5.ClipDescr)):
668-
return Clip
669-
elif isinstance(proc_spec, v0_5.EnsureDtypeDescr):
670-
return EnsureDtype
671-
elif isinstance(proc_spec, v0_5.FixedZeroMeanUnitVarianceDescr):
672-
return FixedZeroMeanUnitVariance
673-
elif isinstance(proc_spec, (v0_4.ScaleLinearDescr, v0_5.ScaleLinearDescr)):
674-
return ScaleLinear
675-
elif isinstance(
676-
proc_spec, (v0_4.ScaleMeanVarianceDescr, v0_5.ScaleMeanVarianceDescr)
677-
):
678-
return ScaleMeanVariance
679-
elif isinstance(proc_spec, (v0_4.ScaleRangeDescr, v0_5.ScaleRangeDescr)):
680-
return ScaleRange
681-
elif isinstance(proc_spec, (v0_4.SigmoidDescr, v0_5.SigmoidDescr)):
682-
return Sigmoid
683-
elif (
684-
isinstance(proc_spec, v0_4.ZeroMeanUnitVarianceDescr)
685-
and proc_spec.kwargs.mode == "fixed"
686-
):
687-
return FixedZeroMeanUnitVariance
688-
elif isinstance(
689-
proc_spec,
690-
(v0_4.ZeroMeanUnitVarianceDescr, v0_5.ZeroMeanUnitVarianceDescr),
691-
):
692-
return ZeroMeanUnitVariance
693-
else:
694-
assert_never(proc_spec)
695-
696-
697-
def preproc_v4_to_processing(
698-
inp: v0_4.InputTensorDescr,
699-
proc_spec: v0_4.PreprocessingDescr,
700-
) -> Processing:
701-
member_id = TensorId(str(inp.name))
702-
if isinstance(proc_spec, v0_4.BinarizeDescr):
703-
return Binarize.from_proc_descr(proc_spec, member_id)
704-
elif isinstance(proc_spec, v0_4.ClipDescr):
705-
return Clip.from_proc_descr(proc_spec, member_id)
706-
elif isinstance(proc_spec, v0_4.ScaleLinearDescr):
707-
return ScaleLinear.from_proc_descr(proc_spec, member_id)
708-
elif isinstance(proc_spec, v0_4.ScaleRangeDescr):
709-
return ScaleRange.from_proc_descr(proc_spec, member_id)
710-
elif isinstance(proc_spec, v0_4.SigmoidDescr):
711-
return Sigmoid.from_proc_descr(proc_spec, member_id)
712-
elif isinstance(proc_spec, v0_4.ZeroMeanUnitVarianceDescr):
713-
if proc_spec.kwargs.mode == "fixed":
714-
axes = inp.axes
715-
v5_proc_spec = _convert_proc(proc_spec, axes)
716-
assert isinstance(
717-
v5_proc_spec, v0_5.FixedZeroMeanUnitVarianceDescr
718-
) # FIXME
719-
return FixedZeroMeanUnitVariance.from_proc_descr(v5_proc_spec, member_id)
720-
else:
721-
return ZeroMeanUnitVariance.from_proc_descr(proc_spec, member_id)
722-
else:
723-
assert_never(proc_spec)
724-
725-
726-
def postproc_v4_to_processing(
727-
inp: v0_4.OutputTensorDescr,
728-
proc_spec: v0_4.PostprocessingDescr,
663+
def proc_descr_v4_to_op(
664+
inp: Union[v0_4.InputTensorDescr, v0_4.OutputTensorDescr],
665+
proc_spec: Union[v0_4.PreprocessingDescr, v0_4.PostprocessingDescr],
729666
) -> Processing:
730667
member_id = TensorId(str(inp.name))
731668
if isinstance(proc_spec, v0_4.BinarizeDescr):
@@ -754,33 +691,9 @@ def postproc_v4_to_processing(
754691
assert_never(proc_spec)
755692

756693

757-
def preproc_v5_to_processing(
758-
inp: v0_5.InputTensorDescr,
759-
proc_spec: v0_5.PreprocessingDescr,
760-
) -> Processing:
761-
if isinstance(proc_spec, v0_5.BinarizeDescr):
762-
return Binarize.from_proc_descr(proc_spec, inp.id)
763-
elif isinstance(proc_spec, v0_5.ClipDescr):
764-
return Clip.from_proc_descr(proc_spec, inp.id)
765-
elif isinstance(proc_spec, v0_5.ScaleLinearDescr):
766-
return ScaleLinear.from_proc_descr(proc_spec, inp.id)
767-
elif isinstance(proc_spec, v0_5.ScaleRangeDescr):
768-
return ScaleRange.from_proc_descr(proc_spec, inp.id)
769-
elif isinstance(proc_spec, v0_5.SigmoidDescr):
770-
return Sigmoid.from_proc_descr(proc_spec, inp.id)
771-
elif isinstance(proc_spec, v0_5.EnsureDtypeDescr):
772-
return EnsureDtype.from_proc_descr(proc_spec, inp.id)
773-
elif isinstance(proc_spec, v0_5.ZeroMeanUnitVarianceDescr):
774-
return ZeroMeanUnitVariance.from_proc_descr(proc_spec, inp.id)
775-
elif isinstance(proc_spec, v0_5.FixedZeroMeanUnitVarianceDescr):
776-
return FixedZeroMeanUnitVariance.from_proc_descr(proc_spec, inp.id)
777-
else:
778-
assert_never(proc_spec)
779-
780-
781-
def postproc_v5_to_processing(
782-
inp: v0_5.OutputTensorDescr,
783-
proc_spec: v0_5.PostprocessingDescr,
694+
def proc_descr_v5_to_op(
695+
inp: Union[v0_5.InputTensorDescr, v0_5.OutputTensorDescr],
696+
proc_spec: Union[v0_5.PreprocessingDescr, v0_5.PostprocessingDescr],
784697
) -> Processing:
785698
if isinstance(proc_spec, v0_5.BinarizeDescr):
786699
return Binarize.from_proc_descr(proc_spec, inp.id)

bioimageio/core/proc_setup.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@
1919
EnsureDtype,
2020
Processing,
2121
UpdateStats,
22-
postproc_v4_to_processing,
23-
postproc_v5_to_processing,
24-
preproc_v4_to_processing,
25-
preproc_v5_to_processing,
22+
proc_descr_v4_to_op,
23+
proc_descr_v5_to_op,
2624
)
2725
from .sample import Sample
2826
from .stat_calculators import StatsCalculator
@@ -149,7 +147,7 @@ def _prepare_v4_preprocs(
149147
EnsureDtype(input=member_id, output=member_id, dtype=t_descr.data_type)
150148
)
151149
for proc_d in t_descr.preprocessing:
152-
procs.append(preproc_v4_to_processing(t_descr, proc_d))
150+
procs.append(proc_descr_v4_to_op(t_descr, proc_d))
153151
return procs
154152

155153

@@ -163,7 +161,7 @@ def _prepare_v4_postprocs(
163161
EnsureDtype(input=member_id, output=member_id, dtype=t_descr.data_type)
164162
)
165163
for proc_d in t_descr.postprocessing:
166-
procs.append(postproc_v4_to_processing(t_descr, proc_d))
164+
procs.append(proc_descr_v4_to_op(t_descr, proc_d))
167165
return procs
168166

169167

@@ -173,7 +171,7 @@ def _prepare_v5_preprocs(
173171
procs: List[Processing] = []
174172
for t_descr in tensor_descrs:
175173
for proc_d in t_descr.preprocessing:
176-
procs.append(preproc_v5_to_processing(t_descr, proc_d))
174+
procs.append(proc_descr_v5_to_op(t_descr, proc_d))
177175
return procs
178176

179177

@@ -183,7 +181,7 @@ def _prepare_v5_postprocs(
183181
procs: List[Processing] = []
184182
for t_descr in tensor_descrs:
185183
for proc_d in t_descr.postprocessing:
186-
procs.append(postproc_v5_to_processing(t_descr, proc_d))
184+
procs.append(proc_descr_v5_to_op(t_descr, proc_d))
187185
return procs
188186

189187

0 commit comments

Comments
 (0)