Ignore:
Timestamp:
01/10/13 08:57:22 (16 months ago)
Author:
Matija Polajnar <matija.polajnar@…>
Branch:
default
Message:

addons: always close shelve after use.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/orngDlgs.py

    r11037 r11071  
    66from PyQt4.QtGui import * 
    77from orngCanvasItems import MyCanvasText 
     8from contextlib import closing 
    89import OWGUI, sys, os 
    910 
     
    908909        result = [] 
    909910        import Orange.utils.addons 
    910         for ao in Orange.utils.addons.addons.values(): 
    911             if ao.installed_version and ao.available_version and ao.installed_version != ao.available_version: 
    912                 result.append(ao.name) 
     911        with closing(Orange.utils.addons.open_addons()) as addons: 
     912            for ao in addons.values(): 
     913                if ao.installed_version and ao.available_version and ao.installed_version != ao.available_version: 
     914                    result.append(ao.name) 
    913915        return result 
    914916     
     
    10031005    def enableDisableButtons(self): 
    10041006        import Orange.utils.addons 
    1005         aos = Orange.utils.addons.addons.values() 
    1006         self.upgradeAllButton.setEnabled(any(ao.installed_version and ao.available_version and 
    1007                                              ao.installed_version != ao.available_version and 
    1008                                              ao.name not in self.to_upgrade for ao in aos)) 
     1007        with closing(Orange.utils.addons.open_addons()) as addons: 
     1008            aos = addons.values() 
     1009            self.upgradeAllButton.setEnabled(any(ao.installed_version and ao.available_version and 
     1010                                                 ao.installed_version != ao.available_version and 
     1011                                                 ao.name not in self.to_upgrade for ao in aos)) 
    10091012         
    10101013    def currentItemChanged(self, new, previous): 
     
    10531056         
    10541057        # Add repositories and add-ons 
    1055         addons = {} 
    1056         for name in Orange.utils.addons.search_index(self.searchStr): 
    1057             addons[name.lower()] = Orange.utils.addons.addons[name.lower()] 
    1058         self.addAddOnsToTree(addons, selected = selected_addon, to_install=to_install, to_remove=to_remove) 
    1059         self.refreshInfoPane() 
     1058        with closing(Orange.utils.addons.open_addons()) as global_addons: 
     1059            addons = {} 
     1060            for name in Orange.utils.addons.search_index(self.searchStr): 
     1061                addons[name.lower()] = global_addons[name.lower()] 
     1062            self.addAddOnsToTree(addons, selected = selected_addon, to_install=to_install, to_remove=to_remove) 
     1063            self.refreshInfoPane() 
    10601064 
    10611065        #TODO Should we somehow show the legacy registered addons? 
Note: See TracChangeset for help on using the changeset viewer.