Source code for pankus.taurus.mst

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = 'Maciej Kamiński Politechnika Wrocławska'

import json,pdb
from .data_journal import DataJournal
from .utils import init_kwargs_as_parameters

[docs]class MST(DataJournal): def __init__(self,**kwargs): super().__init__(**kwargs) @init_kwargs_as_parameters @DataJournal.log_and_stash("bmst_connection", "bmst") def minimum_spanning_tree_from_network(self,**kwargs): self.do('mst/create_boruvka_mst') self.do('mst/bmst_connections_from_network') self.do('mst/initialize_bmst') self.save_bmst_parameters=self.save_bmst_parameters_to_od_properties self.mst() @init_kwargs_as_parameters @DataJournal.log_and_stash("bmst_connection", "bmst") def minimum_spanning_tree_from_distance(self,**kwargs): self.do('mst/create_boruvka_mst') self.do('mst/bmst_connections_from_distance') self.do('mst/initialize_bmst') self.save_bmst_parameters=self.save_bmst_parameters_to_network self.mst() @init_kwargs_as_parameters @DataJournal.log_and_stash() def save_bmst_parameters(self,suffix,**kwargs): #only proxy function Wont work until mst executed pass @init_kwargs_as_parameters @DataJournal.log_and_stash("od_properties") def save_bmst_parameters_to_od_properties(self,suffix='supernode',**kwargs): max_level=self.one('bmst/select_max_level')[0] for level in range(max_level+1): self.do('bmst/save_bmst_to_od',{ 'level':level, 'supernode_level_name':'L'+str(level)+suffix }) @init_kwargs_as_parameters @DataJournal.log_and_stash("network_properties") def save_bmst_parameters_to_network(self,suffix='supernode',level="Level",**kwargs): self.do('bmst/save_network_level',{ 'level_name':level }) max_level=self.one('bmst/select_max_level')[0] for level in range(max_level+1): self.do('bmst/save_bmst_supernode_to_network_end',{ 'level':level, 'supernode_level_name':'L'+str(level)+suffix }) @init_kwargs_as_parameters @DataJournal.log_and_stash("bmst", "bmst_used_connection") def mst(self,**kwargs): #iterator=iter(ProgressBar(range(len(featured_points)**2))) while not self.one('mst/bmst_finish_condition')[0]: self.do('mst/bmst_step')