Changeset 1306:96b1f04ce4d2 in orange-bioinformatics
- Timestamp:
- 01/10/11 17:56:46 (2 years ago)
- Branch:
- default
- Convert:
- de2bcb362c9847f78c92e2df032c207df4d4e4bc
- Files:
-
- 2 edited
-
obiBioMart.py (modified) (9 diffs)
-
widgets/OWBioMart.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
obiBioMart.py
r1302 r1306 31 31 import itertools 32 32 33 import warnings 34 33 35 import orngEnviron 34 36 … … 180 182 raise StopIteration 181 183 except Exception, ex: 182 print >> sys.stderr, "An error occured during iteration:\n" 183 traceback.print_exc(file=sys.stderr) 184 warnings.warn("An error occured during iteration:\n%s" % str(ex), UserWarning, stacklevel=2) 185 # print >> sys.stderr, "An error occured during iteration:\n" 186 # traceback.print_exc(file=sys.stderr) 184 187 return list(_iter(generator)) 185 188 … … 190 193 DEFAULT_CACHE = shelve.open(os.path.join(orngEnviron.bufferDir, "BioMartCache.pck")) 191 194 except Exception, ex: 192 import warnings193 195 warnings.warn("Could not open Bio Mart cache! %s" % str(ex)) 194 196 DEFAULT_CACHE = {} … … 200 202 elif response.strip().startswith("Problem retrieving datasets"): 201 203 raise BioMartError(response) 204 elif response.startswith("non-BioMart die():"): 205 raise BioMartServerError(response) 202 206 203 207 … … 215 219 self.address = address if address is not None else DEFAULT_ADDRESS 216 220 self.cache = cache if cache is not None else DEFAULT_CACHE 221 self.errorCache = {} 217 222 218 223 def request_url(self, **kwargs): 219 224 url = self.address + "?" + "&".join("%s=%s" % item for item in kwargs.items() if item[0] != "POST") 225 # print url 220 226 return url.replace(" ", "%20") 221 227 222 228 def request(self, **kwargs): 223 229 url = self.request_url(**kwargs) 230 if url in self.errorCache: 231 raise self.errorCache[url] 224 232 if str(url) not in self.cache: 225 response = urllib2.urlopen(url).read() 226 checkBioMartServerError(response) 233 try: 234 response = urllib2.urlopen(url).read() 235 checkBioMartServerError(response) 236 except Exception, ex: 237 self.errorCache[url] = ex 238 raise ex 239 227 240 self.cache[str(url)] = response 228 241 if hasattr(self.cache, "sync"): … … 476 489 self.visible = visible 477 490 self.__dict__.update(kwargs.items()) 478 self.connection = BioMartConnection("http://" + self.host + ":" + self.port + self.path) if connection is None \ 479 or (kwargs.get("redirect", None) == "1" and BioMartConnection.FOLLOW_REDIRECTS) else connection 491 492 if connection is None: 493 connection = BioMartConnection() 494 495 if kwargs.get("redirect", None) == "1" and BioMartConnection.FOLLOW_REDIRECTS: 496 redirect = BioMartConnection("http://" + self.host + ":" + self.port + self.path, cache=connection.cache) 497 try: 498 registry = redirect.registry() 499 connection = redirect 500 except urllib2.HTTPError, ex: 501 warnings.warn("'%s' is not responding!, using the default original connection. %s" % (redirect.address, str(ex))) 502 503 self.connection = connection 504 505 # self.connection = BioMartConnection("http://" + self.host + ":" + self.port + self.path) if connection is None \ 506 # or (kwargs.get("redirect", None) == "1" and BioMartConnection.FOLLOW_REDIRECTS) else connection 480 507 481 508 @cached … … 487 514 except BioMartError, ex: 488 515 if self.virtualSchema == "default": 489 print >> sys.stderr, "error", ex490 516 datasets = self.connection.datasets(mart=self.name).read() 491 517 else: … … 840 866 841 867 dataset = self.registry.dataset(pointerDataset) 868 842 869 conf = dataset.configuration() 843 870 desc = list(conf.elements(getter, internalName=name)) … … 845 872 return dataset, desc[0] 846 873 else: 847 import warnings848 874 warnings.warn("Could not resolve pointer '%s' in '%s'" % (name, pointerDataset), UserWarning, stacklevel=2) 849 875 return None, None -
widgets/OWBioMart.py
r1302 r1306 717 717 callback = self.clearCache) 718 718 719 719 720 self.martsCombo = OWGUI.comboBox(self.controlArea, self, "selectedDatabase", "Database", 720 721 callback=self.setSelectedMart, … … 779 780 self.connect(self.myThread, SIGNAL("finished()"), lambda :sys.stderr.write("Thread finished\n")) 780 781 782 self.error(0) 781 783 self.setEnabled(False) 782 784 self.get_registry_async = OWConcurrent.createTask(self._get_registry, … … 812 814 assert(QThread.currentThread() is self.thread()) 813 815 if str(status).lower() != "ok": 814 print "AsyncCall failed with message:", status 816 print >> sys.stderr, "AsyncCall failed with message:", status 817 self.error(0, status) 815 818 self.setEnabled(True) 816 819 … … 826 829 def setSelectedMart(self): 827 830 self.mart = self.marts[self.selectedDatabase] 831 self.error(0) 828 832 self.setEnabled(False) 829 833 self.get_datasets_async = OWConcurrent.createTask(self.mart.datasets, … … 842 846 def setSelectedDataset(self): 843 847 self.dataset = self.datasets[self.selectedDataset] 844 self. setEnabled(False)848 self.error(0) 845 849 846 850 def get_configuration(dataset): … … 851 855 response = stream.read() 852 856 return response 857 858 self.setEnabled(False) 853 859 854 860 self.get_configuration_async = OWConcurrent.createTask(get_configuration, (self.dataset,), … … 981 987 query.add_filter(filter, value) 982 988 983 print query.xml_query() 989 # print query.xml_query() 990 self.error(0) 984 991 self.setEnabled(False) 985 992 self.run_query_async = OWConcurrent.createTask(query.get_example_table, … … 1035 1042 def clearCache(self): 1036 1043 obiBioMart.DEFAULT_CACHE.clear() 1044 self.registry.connection.errorCache.clear() 1037 1045 1038 1046 if __name__ == "__main__":
Note: See TracChangeset
for help on using the changeset viewer.
