Changeset 1845:efe30810466a in orange-bioinformatics


Ignore:
Timestamp:
08/21/13 12:00:04 (8 months ago)
Author:
markotoplak
Branch:
default
Message:

OWHeatMap: fixed progress bars.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _bioinformatics/widgets/OWHeatMap.py

    r1844 r1845  
    8383        self.progress_callback = progress_callback 
    8484        self.parts = parts 
    85         self.part = 0 
     85        self.part = -1 
    8686 
    8787    def __call__(self, value): 
    8888        return self.progress_callback(value / self.parts + 100.0 * self.part / self.parts) 
    8989 
    90     def newpart(self): 
    91         self.part += 1 
     90    def newpart(self, k=1): 
     91        self.part += k 
    9292        self.__call__(0) 
    9393  
     
    109109    data_clusters = [] 
    110110    for i, indices in enumerate(class_data): 
     111        pp_callback.newpart() 
    111112        sub_data = data.select(indices) 
    112         pp_callback.newpart() 
    113113        cluster = orngClustering.hierarchicalClustering(sub_data, order=opt_order, progressCallback=pp_callback) 
    114114        ind_map = indices_map(indices) 
     
    641641 
    642642        progress_parts = 0 
    643         if self.SortExamples > 1: 
     643 
     644        args_key_examples = tuple(tuple(d) for d in group_domains), self.SortExamples == 3, "data" 
     645        args_key_attributes = tuple(tuple(d) for d in group_domains), self.SortAttributes == 2, "attributes" 
     646 
     647        if self.SortExamples > 1 and args_key_examples not in self._ordering_cache: 
    644648            classVar = data.domain.class_var 
    645649            if classVar and isinstance(classVar, orange.EnumVariable): 
     
    647651            else: 
    648652                progress_parts += 1 
    649         if self.SortAttributes > 0: 
     653 
     654        if self.SortAttributes > 0 and args_key_attributes not in self._ordering_cache: 
    650655            progress_parts += 1 
    651656 
     
    655660        if self.SortExamples > 1: 
    656661 
    657             args_key = tuple(tuple(d) for d in group_domains), self.SortExamples == 3, "data" 
    658             cluster_ordering = self._ordering_cache.get(args_key, None) 
     662            cluster_ordering = self._ordering_cache.get(args_key_examples, None) 
    659663            if cluster_ordering is None: 
    660664 
     
    666670 
    667671                # Cache the clusters 
    668                 self._ordering_cache[args_key] = (data_ordering, data_clusters) 
     672                self._ordering_cache[args_key_examples] = (data_ordering, data_clusters) 
    669673            else: 
    670                  data_ordering, data_clusters = cluster_ordering 
     674                data_ordering, data_clusters = cluster_ordering 
    671675             
    672676            sorted_data = [data[i] for i in itertools.chain(*data_ordering)] 
     
    675679        if self.SortAttributes > 0: 
    676680 
    677             args_key = tuple(tuple(d) for d in group_domains), self.SortAttributes == 2, "attributes" 
    678             cluster_ordering = self._ordering_cache.get(args_key, None) 
     681            cluster_ordering = self._ordering_cache.get(args_key_attributes, None) 
    679682            if cluster_ordering is None: 
    680683 
     
    686689 
    687690                # Cache the clusters 
    688                 self._ordering_cache[args_key] = (attr_ordering, attr_cluster) 
     691                self._ordering_cache[args_key_attributes] = (attr_ordering, attr_cluster) 
    689692            else: 
    690                  attr_ordering, attr_cluster = cluster_ordering 
    691   
     693                attr_ordering, attr_cluster = cluster_ordering 
     694 
    692695        self.progressBarFinished() 
    693696 
Note: See TracChangeset for help on using the changeset viewer.