Source code for leicaautomator.utils

import json
import numpy
import pickle
import zlib
from io import StringIO


def _getattr(o, k):
    if 'image' in k or k[0] == '_':
        return None
    try:
        v = o[k]
        if type(v) == numpy.ndarray:
            v = v.tolist()
        return v
    except KeyError:
        return None

def _get(region):
    r = {}
    for k in region.__dict__:
        v = _getattr(region, k)
        if v is not None:
            r[k] = v
    return r

[docs]def save_regions(regions, filename): "Save regions as compressed (gzip) pickle." with open(filename, 'w') as fp: s = StringIO json.dump(regions, s) s.seek(0) zlib.compress(s.read()) s.seek(0) fp.write(s.read())
[docs]def flatten(iterable): return [x for sub in iterable for x in sub]