def blocking(self, ds: Dataset, threshold_all): matches = self(ds, threshold_all) result = DisjointSet(ds) result.update(matches) ds_blocks = [ Dataset.from_rows(ds, cluster) for cluster in result.clusters() ] return ds_blocks