def _union_in_blocks(contours, block_size):
    """
    Generator which yields a valid shape for each block_size multiple of
    input contours. This merges together the contours for each block before
    yielding them.
    """

    n_contours = len(contours)
    for i in range(0, n_contours, block_size):
        j = min(i + block_size, n_contours)

        inners = []
        for c in contours[i:j]:
            p = _contour_to_poly(c)
            if p.type == 'Polygon':
                inners.append(p)
            elif p.type == 'MultiPolygon':
                inners.extend(p.geoms)
        holes = unary_union(inners)
        assert holes.is_valid

        yield holes
def _union_in_blocks ( contours , block_size ) : n_contours = len ( contours ) for i in range ( 0 , n_contours , block_size ) : j = min ( i + block_size , n_contours ) inners = [ ] for c in contours [ i : j ] : p = _contour_to_poly ( c ) if p . type == 'Polygon' : inners . append ( p ) elif p . type == 'MultiPolygon' : inners . extend ( p . geoms ) holes = unary_union ( inners ) assert holes . is_valid yield holes
Generator which yields a valid shape for each block_size multiple of
    input contours. This merges together the contours for each block before
    yielding them.