Source code for ewoksfluo.gui.serialize

import re
from typing import Tuple, List


[docs] def integers_serializer(value: List[int]) -> str: return ", ".join([str(n) for n in value])
[docs] def integers_deserializer(value: str) -> List[int]: return [int(n) for n in value.replace(" ", "").split(",")]
[docs] def strings_serializer(value: List[str]) -> str: return ", ".join([s for s in value])
[docs] def strings_deserializer(value: str) -> List[str]: return [s for s in value.replace(" ", "").split(",")]
[docs] def shape_serializer(value: Tuple[int]) -> str: return ", ".join([str(n) for n in value])
[docs] def shape_deserializer(value: str) -> List[int]: return tuple(int(n) for n in value.replace(" ", "").split(","))
[docs] def rois_serializer(value: List[List[int]]) -> str: rois = [f"[{','.join([str(n) for n in tpl])}]" for tpl in value] return ", ".join(rois)
[docs] def rois_deserializer(value: str) -> List[List[int]]: pattern = r"\[[0-9,]+\]" itrois = re.finditer(pattern, value.replace(" ", "")) return [[int(n) for n in roi[1:-1].split(",")] for roi in itrois]