diff --git a/contrib/hds/export.py b/contrib/hds/export.py index c3fbb5d911a90d2586cdad5d2f68843d4b5194e0..b8a860c624fdb7b4d17708e828cbef9f5864efb0 100755 --- a/contrib/hds/export.py +++ b/contrib/hds/export.py @@ -20,7 +20,7 @@ try: import sqlite3 as sqlite -except ImportError, e: +except ImportError as e: from pysqlite2 import dbapi2 as sqlite from weboob.core import Weboob @@ -35,13 +35,13 @@ def main(filename): weboob = Weboob() try: hds = weboob.build_backend('hds') - except ModuleLoadError, e: + except ModuleLoadError as e: print >>sys.stderr, 'Unable to load "hds" module: %s' % e return 1 try: db = sqlite.connect(database=filename, timeout=10.0) - except sqlite.OperationalError, err: + except sqlite.OperationalError as err: print >>sys.stderr, 'Unable to open %s database: %s' % (filename, err) return 1 @@ -49,7 +49,7 @@ def main(filename): sys.stdout.flush() try: results = db.execute('SELECT id, author FROM stories') - except sqlite.OperationalError, err: + except sqlite.OperationalError as err: print >>sys.stderr, 'fail!\nUnable to read database: %s' % err return 1 diff --git a/modules/aum/backend.py b/modules/aum/backend.py index 618ea433a274beb36efba3f223ece10bb9ac4b9d..148d06c57f6afa40a213827204eb1e69be6e0f39 100644 --- a/modules/aum/backend.py +++ b/modules/aum/backend.py @@ -301,7 +301,7 @@ def iter_unread_messages(self): children=[], flags=Message.IS_UNREAD) yield thread.root - except BrowserUnavailable, e: + except BrowserUnavailable as e: self.logger.debug('No messages, browser is unavailable: %s' % e) pass # don't care about waiting diff --git a/modules/aum/captcha.py b/modules/aum/captcha.py index 9f58d8f09f2810f851f5ed19429983bd979db93f..f02bef3e173844c61d37641c84c830d01b902a50 100644 --- a/modules/aum/captcha.py +++ b/modules/aum/captcha.py @@ -197,7 +197,7 @@ def process(self): def main(self): try: - while 1: + while True: self.process() except KeyboardInterrupt: print '' diff --git a/modules/aum/optim/priority_connection.py b/modules/aum/optim/priority_connection.py index 47d355f826a85be24c388bbcfafd0267b8c072c9..64b0f7111becaacaad6df4b790b5cfde0b4a82d7 100644 --- a/modules/aum/optim/priority_connection.py +++ b/modules/aum/optim/priority_connection.py @@ -131,7 +131,7 @@ def check_godchilds(self): zipcode= 75001, country= 'fr', godfather= my_id) - except AccountRegisterError, e: + except AccountRegisterError as e: self.logger.warning('Unable to register account: %s' % e) except CaptchaError: self.logger.warning('Unable to solve captcha... Retrying') @@ -156,12 +156,12 @@ def activity_fakes(self): fakes = self.storage.get('priority_connection', 'fakes', default={}) if len(fakes) == 0: return - while 1: + while True: name = random.choice(fakes.keys()) fake = fakes[name] try: browser = AuMBrowser(fake['username'], fake['password'], proxy=self.browser.proxy) - except (AdopteBanned,BrowserIncorrectPassword), e: + except (AdopteBanned,BrowserIncorrectPassword) as e: self.logger.warning('Fake %s can\'t login: %s' % (name, e)) continue diff --git a/modules/aum/optim/profiles_walker.py b/modules/aum/optim/profiles_walker.py index e44465835faa19ed6d9a0a4cb98ace1724f4bb0a..88acfb79073f8f8936214499973fd6d2060306aa 100644 --- a/modules/aum/optim/profiles_walker.py +++ b/modules/aum/optim/profiles_walker.py @@ -97,7 +97,7 @@ def view_profile(self): # We consider this profil hasn't been [correctly] analysed self.profiles_queue.add(id) return - except Exception, e: + except Exception as e: print e finally: if self.view_cron is not None: diff --git a/modules/aum/optim/visibility.py b/modules/aum/optim/visibility.py index b2e082ea60dfaaac81279327dc59d64cfa91f42a..e9a5225154ff79e83992a9b59080331c5314cfcf 100644 --- a/modules/aum/optim/visibility.py +++ b/modules/aum/optim/visibility.py @@ -47,6 +47,6 @@ def reconnect(self): try: with self.browser: self.browser.login() - except BrowserUnavailable, e: + except BrowserUnavailable as e: print str(e) pass diff --git a/modules/banquepopulaire/browser.py b/modules/banquepopulaire/browser.py index f42025f01f923e81d02249ab7c2d54f383b55495..eeb2674b5ffefce52fcf8a29cd31d3c067bc2061 100644 --- a/modules/banquepopulaire/browser.py +++ b/modules/banquepopulaire/browser.py @@ -103,7 +103,7 @@ def get_history(self, account): account = self.get_account(account.id) self.location('/cyber/internet/ContinueTask.do', urllib.urlencode(account._params)) - while 1: + while True: assert self.is_on_page(TransactionsPage) for tr in self.page.get_history(): diff --git a/modules/bnporc/enterprise/pages.py b/modules/bnporc/enterprise/pages.py index e7389d74d5f999dcd787b3cc190cf3e4da9367f7..38afe5bffcb5e9cff9876f0c59c43138b5e7f7e7 100644 --- a/modules/bnporc/enterprise/pages.py +++ b/modules/bnporc/enterprise/pages.py @@ -101,7 +101,7 @@ class LoginPage(BEPage): def login(self, login, password): try: vk = BNPVirtKeyboard(self) - except VirtKeyboardError, err: + except VirtKeyboardError as err: self.logger.error("Error: %s" % err) return False diff --git a/modules/bnporc/perso/login.py b/modules/bnporc/perso/login.py index e0b3ac3645b85f226dd8c9b5583257922024d4e3..411018d1305b404d97cf84fc31dfaa48a36230cd 100644 --- a/modules/bnporc/perso/login.py +++ b/modules/bnporc/perso/login.py @@ -74,7 +74,7 @@ def on_loaded(self): def login(self, login, password): try: vk=BNPVirtKeyboard(self) - except VirtKeyboardError, err: + except VirtKeyboardError as err: self.logger.error("Error: %s"%err) return False @@ -111,7 +111,7 @@ class ChangePasswordPage(BasePage): def change_password(self, current, new): try: vk=BNPVirtKeyboard(self) - except VirtKeyboardError, err: + except VirtKeyboardError as err: self.logger.error("Error: %s"%err) return False diff --git a/modules/bp/browser.py b/modules/bp/browser.py index 9e91012e76875d751e0fe0e802825a278e054190..d0a18d20cf9b1d386c4ba225555e0884621f5db7 100644 --- a/modules/bp/browser.py +++ b/modules/bp/browser.py @@ -128,7 +128,7 @@ def _iter_card_tr(self): """ ops = self.page.get_history(deferred=True) - while 1: + while True: for tr in ops: yield tr diff --git a/modules/bp/pages/transfer.py b/modules/bp/pages/transfer.py index fd747ed6610ee2ed9dfb18490dc4ee7ac522ed91..c9a9524d23ad0556d225204132b8d918869cb666 100644 --- a/modules/bp/pages/transfer.py +++ b/modules/bp/pages/transfer.py @@ -55,7 +55,7 @@ def get_transfer_id(self): #HACK for deal with bad encoding ... try: text = p.text - except UnicodeDecodeError, error: + except UnicodeDecodeError as error: text = error.object.strip() match = re.search("Votre virement N.+ ([0-9]+) ", text) diff --git a/modules/caissedepargne/browser.py b/modules/caissedepargne/browser.py index bac8a0a0e10d343d37d87e792f6d19dc24bf5300..9133fd6a004b24601f0355f86d39946adf98e639 100644 --- a/modules/caissedepargne/browser.py +++ b/modules/caissedepargne/browser.py @@ -104,7 +104,7 @@ def _get_history(self, info): self.page.go_history(info) - while 1: + while True: assert self.is_on_page(IndexPage) for tr in self.page.get_history(): diff --git a/modules/creditcooperatif/pro/browser.py b/modules/creditcooperatif/pro/browser.py index 58723b6e269ad7fb5e7ee3160540b6a113adb6df..31248f176b0b195d8e9230a2f4c2a01b827c3720 100644 --- a/modules/creditcooperatif/pro/browser.py +++ b/modules/creditcooperatif/pro/browser.py @@ -86,7 +86,7 @@ def get_account(self, id): def get_history(self, account): self.location('/banque/cpt/cpt/situationcomptes.do?lnkReleveAction=X&numeroExterne='+ account.id) - while 1: + while True: assert self.is_on_page(TransactionsPage) for tr in self.page.get_history(): diff --git a/modules/creditdunord/pages.py b/modules/creditdunord/pages.py index 457a1e7bfc248f37c08af4d423cb966c199161d4..5a128b99415a00f8f7a0a58b195296c1c20287f7 100644 --- a/modules/creditdunord/pages.py +++ b/modules/creditdunord/pages.py @@ -52,7 +52,7 @@ def get_from_js(self, pattern, end, is_list=False): if start < 0: continue - while 1: + while True: if value is None: value = '' else: diff --git a/modules/dlfp/browser.py b/modules/dlfp/browser.py index a597636caa699fe08bc8690421586b3d3b4c78c9..d373da69f3f033c46427f9579eea313018d12fb6 100644 --- a/modules/dlfp/browser.py +++ b/modules/dlfp/browser.py @@ -189,7 +189,7 @@ def post_comment(self, thread, reply_id, title, message): try: self.submit() - except BrowserHTTPError, e: + except BrowserHTTPError as e: raise CantSendMessage('Unable to send message to %s.%s: %s' % (thread, reply_id, e)) if self.is_on_page(NodePage): diff --git a/modules/gdcvault/browser.py b/modules/gdcvault/browser.py index e154048ce34b3982848bd2c74bf6427b433bdbdc..f4e0c12e12e9190d54d142600dd6dde794fdd964 100644 --- a/modules/gdcvault/browser.py +++ b/modules/gdcvault/browser.py @@ -97,7 +97,7 @@ def get_video(self, url, video=None): try: self.open_novisit(url) #headers = req.info() - except HTTPError, e: + except HTTPError as e: # print e.getcode() if e.getcode() == 302 and hasattr(e, 'hdrs'): #print e.hdrs['Location'] diff --git a/modules/gdcvault/pages.py b/modules/gdcvault/pages.py index fefa386f4199515ffcae9c81fa9ff0313f4c146f..53e67037f41d52534b6fce365e7f223c5fc91fee 100644 --- a/modules/gdcvault/pages.py +++ b/modules/gdcvault/pages.py @@ -113,7 +113,7 @@ def get_video(self, video=None): if len(obj) > 0: try: title = unicode(obj[0].text) - except UnicodeDecodeError, e: + except UnicodeDecodeError as e: title = None @@ -125,7 +125,7 @@ def get_video(self, video=None): # FIXME: 1013483 has buggus title (latin1) # for now we just pass it as-is title = obj[0].attrib['content'] - except UnicodeDecodeError, e: + except UnicodeDecodeError as e: # XXX: this doesn't even works!? title = obj[0].attrib['content'].decode('iso-5589-15') @@ -172,7 +172,7 @@ def get_video(self, video=None): #print req.code - except HTTPError, e: + except HTTPError as e: #print e.getcode() if e.getcode() == 302 and hasattr(e, 'hdrs'): #print e.hdrs['Location'] @@ -218,7 +218,7 @@ def get_video(self, video=None): self.browser.set_handle_redirect(False) try: self.browser.open_novisit(video.url) - except HTTPError, e: + except HTTPError as e: if e.getcode() == 302 and hasattr(e, 'hdrs'): video.url = unicode(e.hdrs['Location']) self.browser.set_handle_redirect(True) @@ -298,7 +298,7 @@ def get_video(self, video=None): # 1016634 has "Invalid Date" try: video.date = parse_dt(obj.text) - except ValueError, e: + except ValueError as e: video.date = NotAvailable obj = self.parser.select(config.getroot(), 'duration', 1) diff --git a/modules/hellobank/perso/login.py b/modules/hellobank/perso/login.py index 348ffd10dfef576b9ce566e5a7c873489f24e474..0bb8f23566be7e67b9e20fc5ff951fd79efbf89a 100644 --- a/modules/hellobank/perso/login.py +++ b/modules/hellobank/perso/login.py @@ -86,7 +86,7 @@ def on_loaded(self): def login(self, login, password): try: vk=HelloBankVirtKeyboard(self) - except VirtKeyboardError,err: + except VirtKeyboardError as err: self.logger.error("Error: %s"%err) return False diff --git a/modules/ing/browser.py b/modules/ing/browser.py index a62a6f73319ba0455235583e355951a026041a9b..5ac3d9873de38fbc4dcaddb451e930922a500d53 100644 --- a/modules/ing/browser.py +++ b/modules/ing/browser.py @@ -133,7 +133,7 @@ def get_history(self, account): index = 0 # index, we get always the same page, but with more informations hashlist = [] - while 1: + while True: i = index for transaction in self.page.get_transactions(index): while transaction.id in hashlist: @@ -227,7 +227,7 @@ def get_bills(self, subscription): "transfer_issuer_radio": subscription.id } self.location(self.billpage, urllib.urlencode(data)) - while 1: + while True: for bill in self.page.iter_bills(subscription.id): yield bill if self.page.islast(): diff --git a/modules/ing/pages/login.py b/modules/ing/pages/login.py index 5c5ded2000da45f556fd2f4cc3db9d322b3db752..60fb069bb7b7c1e858960b182542792c180795d7 100644 --- a/modules/ing/pages/login.py +++ b/modules/ing/pages/login.py @@ -107,7 +107,7 @@ def login(self, password): # 2) And now, the virtual Keyboard try: vk = INGVirtKeyboard(self) - except VirtKeyboardError, err: + except VirtKeyboardError as err: error("Error: %s" % err) return False realpasswd = "" diff --git a/modules/ing/pages/transfer.py b/modules/ing/pages/transfer.py index 07a8ffa4e1b59ee01daa80504246a2347437e0c6..b69aaf488e0f3576ef8632b49bdf792cc0dce49a 100644 --- a/modules/ing/pages/transfer.py +++ b/modules/ing/pages/transfer.py @@ -156,7 +156,7 @@ def on_loaded(self): def confirm(self, password): try: vk = INGVirtKeyboard(self) - except VirtKeyboardError, err: + except VirtKeyboardError as err: error("Error: %s" % err) return realpasswd = "" diff --git a/modules/lcl/pages.py b/modules/lcl/pages.py index f771c8c5cb2b58660daae8a0bf9c2eba16fb218d..a5d7e67f7558e709a2c4cf11cf92831fa96be95d 100644 --- a/modules/lcl/pages.py +++ b/modules/lcl/pages.py @@ -92,7 +92,7 @@ def myXOR(self,value,seed): def login(self, login, passwd, agency): try: vk=LCLVirtKeyboard(self) - except VirtKeyboardError,err: + except VirtKeyboardError as err: error("Error: %s"%err) return False diff --git a/modules/okc/backend.py b/modules/okc/backend.py index b2ec569a8b6e9948c610ff5fafc287a22bd1a86d..1a29bbc350ae6c9eee8cb1e178fa65d36616fb27 100644 --- a/modules/okc/backend.py +++ b/modules/okc/backend.py @@ -198,7 +198,7 @@ def get_thread(self, id, contacts=None, get_profiles=False): # if m.flags & m.IS_UNREAD: # yield m - # except BrowserUnavailable, e: + # except BrowserUnavailable as e: # self.logger.debug('No messages, browser is unavailable: %s' % e) # pass # don't care about waiting diff --git a/modules/pastebin/browser.py b/modules/pastebin/browser.py index cf5a0602ae790c06d20475b6b33595025b58c3dc..b4d488d9289c6d9824f1168582f8ec7cf3febeee 100644 --- a/modules/pastebin/browser.py +++ b/modules/pastebin/browser.py @@ -122,7 +122,7 @@ def api_login(self): urllib.urlencode(data)).decode(self.ENCODING) try: self._validate_api_response(res) - except BadAPIRequest, e: + except BadAPIRequest as e: if str(e) == 'invalid login': raise BrowserIncorrectPassword() else: diff --git a/modules/phpbb/browser.py b/modules/phpbb/browser.py index 9cc2f728964427fcdc490bb3155609900af02185..4baf9ee737214792deb2bad8db84b374b8b24d8c 100644 --- a/modules/phpbb/browser.py +++ b/modules/phpbb/browser.py @@ -96,7 +96,7 @@ def iter_posts(self, id, stop_id=None): assert self.is_on_page(TopicPage) parent = 0 - while 1: + while True: for post in self.page.iter_posts(): if stop_id and post.id >= stop_id: return @@ -117,7 +117,7 @@ def riter_posts(self, id, stop_id=None): assert self.is_on_page(TopicPage) child = None - while 1: + while True: for post in self.page.riter_posts(): if child: child.parent = post.id diff --git a/modules/piratebay/test.py b/modules/piratebay/test.py index 65b7fa839980cf128e1edd57860b0e6720d3fc54..cf8b78305c2710bf0817ad13cace8d0b5d2ad7f9 100644 --- a/modules/piratebay/test.py +++ b/modules/piratebay/test.py @@ -38,6 +38,6 @@ def test_torrent(self): assert isinstance(full_torrent.description, basestring) try: assert self.backend.get_torrent_file(torrent.id) - except MagnetOnly, e: + except MagnetOnly as e: assert e.magnet.startswith('magnet:') assert e.magnet == full_torrent.magnet diff --git a/modules/seloger/browser.py b/modules/seloger/browser.py index 2f591c3355dc1cd81b91702648efa104113d0c7c..1d069c5e50338aefcf778a3e53673f21b0298fad 100644 --- a/modules/seloger/browser.py +++ b/modules/seloger/browser.py @@ -69,7 +69,7 @@ def search_housings(self, type, cities, nb_rooms, area_min, area_max, cost_min, self.location(self.buildurl('http://ws.seloger.com/search.xml', **data)) - while 1: + while True: assert self.is_on_page(SearchResultsPage) for housing in self.page.iter_housings(): diff --git a/modules/societegenerale/pages/accounts_list.py b/modules/societegenerale/pages/accounts_list.py index 79026065b2e6104e6dd8b5e21b777a930785d73e..a1da7a288a744b255aae603d7e7e32bdc8326037 100644 --- a/modules/societegenerale/pages/accounts_list.py +++ b/modules/societegenerale/pages/accounts_list.py @@ -149,7 +149,7 @@ def iter_transactions(self, coming): # There are no transactions in this kind of account return - while 1: + while True: d = XML(self.browser.readurl(url)) try: el = self.parser.select(d, '//dataBody', 1, 'xpath') diff --git a/modules/societegenerale/pages/login.py b/modules/societegenerale/pages/login.py index 28e56bd4ce4b03176fa139535a2ffb05b3264ab2..97e4ce2e56ad876314f2b9b557852d188a65292f 100644 --- a/modules/societegenerale/pages/login.py +++ b/modules/societegenerale/pages/login.py @@ -64,7 +64,7 @@ def login(self, login, password): try: img.build_tiles() - except TileError, err: + except TileError as err: error("Error: %s" % err) if err.tile: err.tile.display() diff --git a/modules/societegenerale/sgpe/pages.py b/modules/societegenerale/sgpe/pages.py index 8b726b9e83d9877e5b091bcb686818876f390f09..d1441049d4b805a5a4579fef2640184e8db069b8 100644 --- a/modules/societegenerale/sgpe/pages.py +++ b/modules/societegenerale/sgpe/pages.py @@ -76,7 +76,7 @@ def login(self, login, password): try: img.build_tiles() - except TileError, err: + except TileError as err: error("Error: %s" % err) if err.tile: err.tile.display() diff --git a/modules/vimeo/pages.py b/modules/vimeo/pages.py index bf98cadfa0b00b2ba92d61b9dce2f313afb768dd..affa183d81ad4805aa4331800fe52eb49548f3be 100644 --- a/modules/vimeo/pages.py +++ b/modules/vimeo/pages.py @@ -118,7 +118,7 @@ def set_details(self, v): self.browser.set_handle_redirect(False) try: self.browser.open_novisit(v.url) - except HTTPError, e: + except HTTPError as e: if e.getcode() == 302 and hasattr(e, 'hdrs'): #print e.hdrs['Location'] v.url = unicode(e.hdrs['Location']) diff --git a/modules/youtube/backend.py b/modules/youtube/backend.py index ccf5c16f9edac24d28b75afb765f34f857a633e7..73a64635cfdd68844f4e5d5c461b6be1f0da803b 100644 --- a/modules/youtube/backend.py +++ b/modules/youtube/backend.py @@ -105,7 +105,7 @@ def get_video(self, _id): yt_service.ssl = True try: entry = yt_service.GetYouTubeVideoEntry(video_id=_id) - except gdata.service.Error, e: + except gdata.service.Error as e: if e.args[0]['status'] == 400: return None raise diff --git a/tools/debpydep.py b/tools/debpydep.py index f2ce4fa615f1c16a2be842bd0b6a05942eaac386..b265331b0b26f097fdfd080edb1faf3326ce91d5 100755 --- a/tools/debpydep.py +++ b/tools/debpydep.py @@ -14,7 +14,7 @@ s = "from %s import %s" % (root.strip('/').replace('/', '.'), f[:-3]) try: exec s - except ImportError, e: + except ImportError as e: print >>sys.stderr, str(e) else: m = eval(f[:-3]) diff --git a/tools/make_man.py b/tools/make_man.py index 56a1cb1929702a0f0d714ff480bf0d07e79a1152..a5ae1a60c45c5048072807711b59efcc1f57b56f 100755 --- a/tools/make_man.py +++ b/tools/make_man.py @@ -119,7 +119,7 @@ def main(): desc = ("", "U", imp.PY_SOURCE) try: script = imp.load_module("scripts.%s" % fname, f, tmpfile, desc) - except ImportError, e: + except ImportError as e: print >>sys.stderr, "Unable to load the %s script (%s)" \ % (fname, e) else: diff --git a/weboob/applications/boobill/boobill.py b/weboob/applications/boobill/boobill.py index 3fb515a2251603b9fe04a23eaa82f6438daa885a..890cd95756c244da5814f3d279cb8476b04a3cdb 100644 --- a/weboob/applications/boobill/boobill.py +++ b/weboob/applications/boobill/boobill.py @@ -193,7 +193,7 @@ def do_download(self, line): try: with open(dest, 'w') as f: f.write(buf) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write bill in "%s": %s' % (dest, e) return 1 return @@ -210,7 +210,7 @@ def download_all(self, id, names): try: with open(dest, 'w') as f: f.write(buf) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write bill in "%s": %s' % (dest, e) return 1 diff --git a/weboob/applications/boobmsg/boobmsg.py b/weboob/applications/boobmsg/boobmsg.py index 4320654b1524f936faabb62a23ffd01943016e5a..83deb0ac73e3981747c5343f61100bb2c05e4682 100644 --- a/weboob/applications/boobmsg/boobmsg.py +++ b/weboob/applications/boobmsg/boobmsg.py @@ -373,7 +373,7 @@ def do_post(self, line): try: self.do('post_message', message, backends=backend_name).wait() - except CallErrors, errors: + except CallErrors as errors: self.bcall_errors_handler(errors) else: if self.interactive: diff --git a/weboob/applications/cineoob/cineoob.py b/weboob/applications/cineoob/cineoob.py index 23135c39e85c7d6c65fc44e4630764615612cddb..22de4caed55217d56855063ec6f4041fa46ed05d 100644 --- a/weboob/applications/cineoob/cineoob.py +++ b/weboob/applications/cineoob/cineoob.py @@ -490,11 +490,11 @@ def do_getfile_torrent(self, line): try: with open(dest, 'w') as f: f.write(buf) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write .torrent in "%s": %s' % (dest, e) return 1 return - except CallErrors, errors: + except CallErrors as errors: for backend, error, backtrace in errors: if isinstance(error, MagnetOnly): print >>sys.stderr, u'Error(%s): No direct URL available, ' \ @@ -598,11 +598,11 @@ def do_getfile_subtitle(self, line): try: with open(dest, 'w') as f: f.write(buf) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write file in "%s": %s' % (dest, e) return 1 return - except CallErrors, errors: + except CallErrors as errors: for backend, error, backtrace in errors: self.bcall_error_handler(backend, error, backtrace) diff --git a/weboob/applications/cookboob/cookboob.py b/weboob/applications/cookboob/cookboob.py index f04c4c3e98e59cd137d6ab903f709047429175c7..db7581a03e3a206e4a1e75dfb8f7151e71081ddb 100644 --- a/weboob/applications/cookboob/cookboob.py +++ b/weboob/applications/cookboob/cookboob.py @@ -141,7 +141,7 @@ def do_export(self, line): try: with codecs.open(dest, 'w', 'utf-8') as f: f.write(xmlstring) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write .kreml in "%s": %s' % (dest, e) return 1 return diff --git a/weboob/applications/havedate/havedate.py b/weboob/applications/havedate/havedate.py index 3f88ed34fa0ebe0986dd182a33155fb7c4bb9f05..954339e1745b246c6b51f5f8a95ac02f563cb8c2 100644 --- a/weboob/applications/havedate/havedate.py +++ b/weboob/applications/havedate/havedate.py @@ -70,7 +70,7 @@ def main(self, argv): try: self.do('init_optimizations').wait() - except CallErrors, e: + except CallErrors as e: self.bcall_errors_handler(e) optimizations = self.storage.get('optims') @@ -157,7 +157,7 @@ def optims(self, function, backend_names, optims, store=True): except KeyError: pass sys.stdout.write('.\n') - except CallErrors, errors: + except CallErrors as errors: for backend, error, backtrace in errors: if isinstance(error, OptimizationNotFound): self.logger.error(u'Error(%s): Optimization "%s" not found' % (backend.name, optim_name)) diff --git a/weboob/applications/monboob/monboob.py b/weboob/applications/monboob/monboob.py index 2b358b5ec7edcf36aad391011c29d366807b943a..d55dfceb497b54695ed462acc115514564f2d057 100644 --- a/weboob/applications/monboob/monboob.py +++ b/weboob/applications/monboob/monboob.py @@ -66,14 +66,14 @@ def run(self): port = self.app.options.smtpd try: FakeSMTPD(self.app, host, int(port)) - except socket.error, e: + except socket.error as e: self.logger.error('Unable to start the SMTP daemon: %s' % e) return False # XXX Fuck, we shouldn't copy this piece of code from # weboob.scheduler.Scheduler.run(). try: - while 1: + while True: self.stop_event.wait(0.1) if self.app.options.smtpd: asyncore.loop(timeout=0.1, count=1) @@ -178,10 +178,10 @@ def process_incoming_mail(self, msg): content += unicode(s, charset) else: content += unicode(s) - except UnicodeError, e: + except UnicodeError as e: self.logger.warning('Unicode error: %s' % e) continue - except Exception, e: + except Exception as e: self.logger.exception(e) continue else: @@ -235,7 +235,7 @@ def process_incoming_mail(self, msg): content=content) try: backend.post_message(message) - except Exception, e: + except Exception as e: content = u'Unable to send message to %s:\n' % thread_id content += u'\n\t%s\n' % to_unicode(e) if logging.root.level == logging.DEBUG: @@ -269,7 +269,7 @@ def process(self): for backend, message in self.weboob.do('iter_unread_messages'): if self.send_email(backend, message): backend.set_message_read(message) - except CallErrors, e: + except CallErrors as e: self.bcall_errors_handler(e) def send_email(self, backend, mail): @@ -363,7 +363,7 @@ def send_email(self, backend, mail): try: smtp = SMTP(self.config.get('smtp')) smtp.sendmail(sender, recipient, msg.as_string()) - except Exception, e: + except Exception as e: self.logger.error('Unable to deliver mail: %s' % e) return False else: diff --git a/weboob/applications/pastoob/pastoob.py b/weboob/applications/pastoob/pastoob.py index 420a2b6fcb9bea75cccd19465dabc247cc589421..0fc70f1b6e33d0ff7ecc1b2fef44a61513fed8d0 100644 --- a/weboob/applications/pastoob/pastoob.py +++ b/weboob/applications/pastoob/pastoob.py @@ -88,7 +88,7 @@ def do_post(self, filename): try: with codecs.open(filename, encoding=locale.getpreferredencoding()) as fp: contents = fp.read() - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to open file "%s": %s' % (filename, e.strerror) return 1 diff --git a/weboob/applications/qcineoob/main_window.py b/weboob/applications/qcineoob/main_window.py index a839bc16a2eee7f573e6d32990c7063a4be59ebd..94cfe61683601e25698033c19fe2a988b26e4775 100644 --- a/weboob/applications/qcineoob/main_window.py +++ b/weboob/applications/qcineoob/main_window.py @@ -382,8 +382,7 @@ def __init__(self, config, weboob, app, parent=None): if self.ui.backendEdit.count() == 0: self.backendsConfig() - langs = LANGUAGE_CONV.keys() - langs.sort() + langs = sorted(LANGUAGE_CONV.keys()) for lang in langs: self.ui.langCombo.addItem(lang) self.ui.langCombo.hide() diff --git a/weboob/applications/qcineoob/movie.py b/weboob/applications/qcineoob/movie.py index 123f36dcb95cc040885c6ba923736310613536df..71f61e7e9090e6a838c77ea44184374608226905 100644 --- a/weboob/applications/qcineoob/movie.py +++ b/weboob/applications/qcineoob/movie.py @@ -33,8 +33,7 @@ def __init__(self, movie, backend, parent=None): self.parent = parent self.ui = Ui_Movie() self.ui.setupUi(self) - langs = LANGUAGE_CONV.keys() - langs.sort() + langs = sorted(LANGUAGE_CONV.keys()) for lang in langs: self.ui.langCombo.addItem(lang) diff --git a/weboob/applications/qcineoob/subtitle.py b/weboob/applications/qcineoob/subtitle.py index b211399e1211a55001b42d9fde3696958cbbf471..8c55d78095ee4d5ee75ce781377884cab781ad72 100644 --- a/weboob/applications/qcineoob/subtitle.py +++ b/weboob/applications/qcineoob/subtitle.py @@ -82,7 +82,7 @@ def download(self): try: with open(dest, 'w') as f: f.write(data) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write subtitle file in "%s": %s' % (dest, e) return 1 return diff --git a/weboob/applications/qcineoob/torrent.py b/weboob/applications/qcineoob/torrent.py index 5dd91f726cf2360305563942e37f233e56a22332..f10feae27498bbbc9b4b74fe68274035201d84ec 100644 --- a/weboob/applications/qcineoob/torrent.py +++ b/weboob/applications/qcineoob/torrent.py @@ -86,7 +86,7 @@ def download(self): try: with open(unicode(dest), 'w') as f: f.write(data) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write .torrent in "%s": %s' % (dest, e) return 1 return diff --git a/weboob/applications/qcookboob/recipe.py b/weboob/applications/qcookboob/recipe.py index f8937a4ebd90bf6cd36cc40b6a8543956afef040..abe1419234ac1c84079201b440b90248f67c7f4d 100644 --- a/weboob/applications/qcookboob/recipe.py +++ b/weboob/applications/qcookboob/recipe.py @@ -105,7 +105,7 @@ def export(self): try: with codecs.open(dest, 'w', 'utf-8') as f: f.write(data) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write Krecipe file in "%s": %s' % (dest, e) return 1 return diff --git a/weboob/applications/radioob/radioob.py b/weboob/applications/radioob/radioob.py index 602503e75e4ffee1ccb7df112bc7986e89bed118..d79d487fd2a6887ebf5e6da84576c8ef4ccdc413 100644 --- a/weboob/applications/radioob/radioob.py +++ b/weboob/applications/radioob/radioob.py @@ -94,7 +94,7 @@ def do_play(self, _id): self.logger.debug(u'You can set the media_player key to the player you prefer in the radioob ' 'configuration file.') self.player.play(radio.streams[0], player_name=player_name, player_args=media_player_args) - except (InvalidMediaPlayer, MediaPlayerNotFound), e: + except (InvalidMediaPlayer, MediaPlayerNotFound) as e: print '%s\nRadio URL: %s' % (e, radio.streams[0].url) def complete_info(self, text, line, *ignored): diff --git a/weboob/applications/suboob/suboob.py b/weboob/applications/suboob/suboob.py index de5a32c0b711235c909883b9f07a391f339842c8..e1d5a0b1da8389c25fc6e5706f022512ece979b9 100644 --- a/weboob/applications/suboob/suboob.py +++ b/weboob/applications/suboob/suboob.py @@ -157,7 +157,7 @@ def do_download(self, line): try: with open(dest, 'w') as f: f.write(buf) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write file in "%s": %s' % (dest, e) return 1 else: diff --git a/weboob/applications/traveloob/traveloob.py b/weboob/applications/traveloob/traveloob.py index ed9421e43492f157fe8ce1aa32a009c1c8e5ed2f..541472cb62701341e31baf5964adaf8ceffcda14 100644 --- a/weboob/applications/traveloob/traveloob.py +++ b/weboob/applications/traveloob/traveloob.py @@ -101,7 +101,7 @@ def do_roadmap(self, line): try: filters.departure_time = self.parse_datetime(self.options.departure_time) filters.arrival_time = self.parse_datetime(self.options.arrival_time) - except ValueError, e: + except ValueError as e: print >>sys.stderr, 'Invalid datetime value: %s' % e print >>sys.stderr, 'Please enter a datetime in form "yyyy-mm-dd HH:MM" or "HH:MM".' return 1 diff --git a/weboob/applications/videoob/videoob.py b/weboob/applications/videoob/videoob.py index 1fe7569a442b576f43bfff4a1e39fa332c2ac373..00614d2a468d8d38dd6eafee628ea6e7671b45c0 100644 --- a/weboob/applications/videoob/videoob.py +++ b/weboob/applications/videoob/videoob.py @@ -154,7 +154,7 @@ def do_play(self, _id): self.logger.info(u'You can set the media_player key to the player you prefer in the videoob ' 'configuration file.') self.player.play(video, player_name=player_name, player_args=media_player_args) - except (InvalidMediaPlayer, MediaPlayerNotFound), e: + except (InvalidMediaPlayer, MediaPlayerNotFound) as e: print '%s\nVideo URL: %s' % (e, video.url) def complete_info(self, text, line, *ignored): diff --git a/weboob/applications/webcontentedit/webcontentedit.py b/weboob/applications/webcontentedit/webcontentedit.py index 1757fec58337740e34510da10d0e770755d7b693..ec9f0992af72e95b64768d43a7dd5db8df8418c9 100644 --- a/weboob/applications/webcontentedit/webcontentedit.py +++ b/weboob/applications/webcontentedit/webcontentedit.py @@ -113,7 +113,7 @@ def do_edit(self, line): sys.stdout.flush() try: self.do('push_content', content, message, minor=minor, backends=[content.backend]).wait() - except CallErrors, e: + except CallErrors as e: errors.errors += e.errors sys.stdout.write(' error (content saved in %s)\n' % path) else: @@ -136,7 +136,7 @@ def do_edit(self, line): sys.stdout.flush() try: self.do('push_content', content, message, minor=minor, backends=[content.backend]).wait() - except CallErrors, e: + except CallErrors as e: errors.errors += e.errors sys.stdout.write(' error\n') else: diff --git a/weboob/applications/weboobcfg/weboobcfg.py b/weboob/applications/weboobcfg/weboobcfg.py index f55bb6663893165c8a318843e90d143251f41e59..1dff94e4931bd236c8079698dffc12bd15277a24 100644 --- a/weboob/applications/weboobcfg/weboobcfg.py +++ b/weboob/applications/weboobcfg/weboobcfg.py @@ -120,7 +120,7 @@ def do_list(self, line): for instance_name, name, params in sorted(self.weboob.backends_config.iter_backends()): try: module = self.weboob.modules_loader.get_or_load_module(name) - except ModuleLoadError, e: + except ModuleLoadError as e: self.logger.warning('Unable to load module %r: %s' % (name, e)) continue diff --git a/weboob/applications/weboobrepos/weboobrepos.py b/weboob/applications/weboobrepos/weboobrepos.py index eb50cc2be39ef07d74f61f82dbdd7105faf75bcd..9b8fac8f5427f7668b6ed2a52d4b2d6e259333bc 100644 --- a/weboob/applications/weboobrepos/weboobrepos.py +++ b/weboob/applications/weboobrepos/weboobrepos.py @@ -95,7 +95,7 @@ def do_build(self, line): try: with open(index_file, 'r') as fp: r.parse_index(fp) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to open repository: %s' % e print >>sys.stderr, 'Use the "create" command before.' return 1 @@ -131,7 +131,7 @@ def do_build(self, line): if not os.path.exists(krname): raise Exception('No valid key file found.') kr_mtime = mktime(strptime(str(r.key_update), '%Y%m%d%H%M')) - os.chmod(krname, 0644) + os.chmod(krname, 0o644) os.utime(krname, (kr_mtime, kr_mtime)) else: print 'Keyring is up to date' diff --git a/weboob/applications/weboorrents/weboorrents.py b/weboob/applications/weboorrents/weboorrents.py index f5d06c0dd1653675a86b6c30d69a0d0db2b27cd7..0b3d28fff4e9d23b3392b4801df7d51cbcf1ff4c 100644 --- a/weboob/applications/weboorrents/weboorrents.py +++ b/weboob/applications/weboorrents/weboorrents.py @@ -137,11 +137,11 @@ def do_getfile(self, line): try: with open(dest, 'w') as f: f.write(buf) - except IOError, e: + except IOError as e: print >>sys.stderr, 'Unable to write .torrent in "%s": %s' % (dest, e) return 1 return - except CallErrors, errors: + except CallErrors as errors: for backend, error, backtrace in errors: if isinstance(error, MagnetOnly): print >>sys.stderr, u'Error(%s): No direct URL available, ' \ diff --git a/weboob/core/backendscfg.py b/weboob/core/backendscfg.py index 91a6c4ad9642367d91e545656c15351a4cc23dde..2a81cbfcfa1b431044b41d1cfcefddf6de072878 100644 --- a/weboob/core/backendscfg.py +++ b/weboob/core/backendscfg.py @@ -49,11 +49,11 @@ def __init__(self, confpath): fptr.close() else: try: - os.mknod(confpath, 0600) + os.mknod(confpath, 0o600) except OSError: fptr = open(confpath, 'w') fptr.close() - os.chmod(confpath, 0600) + os.chmod(confpath, 0o600) else: if sys.platform != 'win32': if mode & stat.S_IRGRP or mode & stat.S_IROTH: diff --git a/weboob/core/bcall.py b/weboob/core/bcall.py index 7dc4b7145f57bc2ca31bf64eec8468c5c7927e3c..3c8c1ac808beec21bcee37191339d5859f7e0ed5 100644 --- a/weboob/core/bcall.py +++ b/weboob/core/bcall.py @@ -112,7 +112,7 @@ def _caller(self, backend, function, args, kwargs): result = function(backend, *args, **kwargs) else: result = getattr(backend, function)(*args, **kwargs) - except Exception, error: + except Exception as error: self.logger.debug('%s: Called function %s raised an error: %r' % (backend, function, error)) self._store_error(backend, error) else: @@ -125,7 +125,7 @@ def _caller(self, backend, function, args, kwargs): # Lock mutex only in loop in case the iterator is slow # (for example if backend do some parsing operations) self._store_result(backend, subresult) - except Exception, error: + except Exception as error: self._store_error(backend, error) else: self._store_result(backend, result) diff --git a/weboob/core/modules.py b/weboob/core/modules.py index f24095b32f5ad6efdcc1a821feb0cec5b42b513f..7f2a31352823f5a6c916fef19f942fe41d91b1ef 100644 --- a/weboob/core/modules.py +++ b/weboob/core/modules.py @@ -118,7 +118,7 @@ def load_all(self): for existing_module_name in self.iter_existing_module_names(): try: self.load_module(existing_module_name) - except ModuleLoadError, e: + except ModuleLoadError as e: self.logger.warning(e) def load_module(self, module_name): @@ -139,7 +139,7 @@ def load_module(self, module_name): finally: if fp: fp.close() - except Exception, e: + except Exception as e: if logging.root.level == logging.DEBUG: self.logger.exception(e) raise ModuleLoadError(module_name, e) diff --git a/weboob/core/ouiboube.py b/weboob/core/ouiboube.py index 619911e5af70969208dfb790f9368588a3906de0..e713ce3f4564a17b91655e41da48f64f8c0d2f65 100644 --- a/weboob/core/ouiboube.py +++ b/weboob/core/ouiboube.py @@ -223,7 +223,7 @@ def load_backends(self, caps=None, names=None, modules=None, exclude=None, stora module = None try: module = self.modules_loader.get_or_load_module(module_name) - except ModuleLoadError, e: + except ModuleLoadError as e: self.logger.error(u'Unable to load module "%s": %s' % (module_name, e)) continue @@ -233,7 +233,7 @@ def load_backends(self, caps=None, names=None, modules=None, exclude=None, stora try: backend_instance = module.create_instance(self, instance_name, params, storage) - except BaseBackend.ConfigError, e: + except BaseBackend.ConfigError as e: if errors is not None: errors.append(self.LoadError(instance_name, e)) else: diff --git a/weboob/core/repositories.py b/weboob/core/repositories.py index 2580c8ccd9ab91ae78970f8bee88c503799247a9..1edca05eea624f27a0d59c73253e6a1cc02923cf 100644 --- a/weboob/core/repositories.py +++ b/weboob/core/repositories.py @@ -172,7 +172,7 @@ def retrieve_index(self, repo_path): filename = os.path.join(self.localurl2path(), self.INDEX) try: fp = open(filename, 'r') - except IOError, e: + except IOError as e: # This local repository doesn't contain a built modules.list index. self.name = Repositories.url2filename(self.url) self.build_index(self.localurl2path(), filename) @@ -182,7 +182,7 @@ def retrieve_index(self, repo_path): browser = WeboobBrowser() try: fp = browser.openurl(posixpath.join(self.url, self.INDEX)) - except BrowserUnavailable, e: + except BrowserUnavailable as e: raise RepositoryUnavailable(unicode(e)) self.parse_index(fp) @@ -212,7 +212,7 @@ def retrieve_keyring(self, keyring_path): try: keyring_data = browser.readurl(posixpath.join(self.url, self.KEYRING)) sig_data = browser.readurl(posixpath.join(self.url, self.KEYRING + '.sig')) - except BrowserUnavailable, e: + except BrowserUnavailable as e: raise RepositoryUnavailable(unicode(e)) if keyring.exists(): if not keyring.is_valid(keyring_data, sig_data): @@ -241,9 +241,9 @@ def parse_index(self, fp): self.maintainer = items['maintainer'] self.signed = bool(int(items.get('signed', '0'))) self.key_update = int(items.get('key_update', '0')) - except KeyError, e: + except KeyError as e: raise RepositoryUnavailable('Missing global parameters in repository: %s' % e) - except ValueError, e: + except ValueError as e: raise RepositoryUnavailable('Incorrect value in repository parameters: %s' % e) if len(self.name) == 0: @@ -297,7 +297,7 @@ def build_index(self, path, filename): finally: if fp: fp.close() - except Exception, e: + except Exception as e: print >>sys.stderr, 'Unable to build module %s: [%s] %s' % (name, type(e).__name__, e) else: m = ModuleInfo(module.name) @@ -538,7 +538,7 @@ def retrieve_icon(self, module): def _parse_source_list(self): l = [] with open(self.sources_list, 'r') as f: - for line in f.xreadlines(): + for line in f: line = line.strip() % {'version': self.version} m = re.match('(file|https?)://.*', line) if m: @@ -572,7 +572,7 @@ def update_repositories(self, progress=IProgress()): else: progress.error('Cannot find gpgv to check for repository authenticity.\n' 'You should install GPG for better security.') - except RepositoryUnavailable, e: + except RepositoryUnavailable as e: progress.error('Unable to load repository: %s' % e) else: self.repositories.append(repository) @@ -617,7 +617,7 @@ def progress(self, percent, message): inst_progress = InstallProgress(n) try: self.install(info, inst_progress) - except ModuleInstallError, e: + except ModuleInstallError as e: inst_progress.progress(1.0, unicode(e)) def install(self, module, progress=IProgress()): @@ -657,7 +657,7 @@ def install(self, module, progress=IProgress()): progress.progress(0.2, 'Downloading module...') try: tardata = browser.readurl(module.url) - except BrowserUnavailable, e: + except BrowserUnavailable as e: raise ModuleInstallError('Unable to fetch module: %s' % e) # Check signature diff --git a/weboob/core/scheduler.py b/weboob/core/scheduler.py index b1fda55ed74d1be02e5ce0fba634bb2129e9175f..aed3fbd5fd6748b527793434be239c1f995e0713 100644 --- a/weboob/core/scheduler.py +++ b/weboob/core/scheduler.py @@ -118,7 +118,7 @@ def _wait_to_stop(self): def run(self): try: - while 1: + while True: self.stop_event.wait(0.1) except KeyboardInterrupt: self._wait_to_stop() diff --git a/weboob/tools/application/base.py b/weboob/tools/application/base.py index bb0accf6b5ea3bf018b5c0f737fb18c438e8e03f..099c8484d11cafa471f3d1d979e1cc30423ca7b6 100644 --- a/weboob/tools/application/base.py +++ b/weboob/tools/application/base.py @@ -351,7 +351,7 @@ def setup_logging(klass, level, handlers): def create_logging_file_handler(self, filename): try: stream = open(filename, 'w') - except IOError, e: + except IOError as e: self.logger.error('Unable to create the logging file: %s' % e) sys.exit(1) else: @@ -383,7 +383,7 @@ def run(klass, args=None): try: app = klass() - except BackendsConfig.WrongPermissions, e: + except BackendsConfig.WrongPermissions as e: print >>sys.stderr, e sys.exit(1) @@ -396,10 +396,10 @@ def run(klass, args=None): sys.exit(0) except EOFError: sys.exit(0) - except ConfigError, e: + except ConfigError as e: print >>sys.stderr, 'Configuration error: %s' % e sys.exit(1) - except CallErrors, e: + except CallErrors as e: app.bcall_errors_handler(e) sys.exit(1) finally: diff --git a/weboob/tools/application/console.py b/weboob/tools/application/console.py index 86581c290fc21c6893797e6f2897f77d57de9633..4567f2ba680b2ebd41f8806e03e7920f9296767d 100644 --- a/weboob/tools/application/console.py +++ b/weboob/tools/application/console.py @@ -194,7 +194,7 @@ def load_default_backends(self): def run(klass, args=None): try: super(ConsoleApplication, klass).run(args) - except BackendNotFound, e: + except BackendNotFound as e: print 'Error: Backend "%s" not found.' % e sys.exit(1) @@ -223,7 +223,7 @@ def parse_id(self, _id, unique_backend=False): def register_backend(self, name, ask_add=True): try: backend = self.weboob.modules_loader.get_or_load_module(name) - except ModuleLoadError, e: + except ModuleLoadError as e: backend = None if not backend: @@ -240,7 +240,7 @@ def register_backend(self, name, ask_add=True): website = 'on website %s' % backend.website else: website = 'with backend %s' % backend.name - while 1: + while True: asked_config = False for key, prop in backend.klass.ACCOUNT_REGISTER_PROPERTIES.iteritems(): if not asked_config: @@ -254,7 +254,7 @@ def register_backend(self, name, ask_add=True): print '-----------------------------%s' % ('-' * len(website)) try: backend.klass.register_account(account) - except AccountRegisterError, e: + except AccountRegisterError as e: print u'%s' % e if self.ask('Do you want to try again?', default=True): continue @@ -275,7 +275,7 @@ def register_backend(self, name, ask_add=True): def install_module(self, name): try: self.weboob.repositories.install(name) - except ModuleInstallError, e: + except ModuleInstallError as e: print >>sys.stderr, 'Unable to install module "%s": %s' % (name, e) return False @@ -307,7 +307,7 @@ def add_backend(self, name, params=None, edit=False, ask_register=True): items.update(params) params = items config = module.config.load(self.weboob, bname, name, params, nofail=True) - except ModuleLoadError, e: + except ModuleLoadError as e: print >>sys.stderr, 'Unable to load module "%s": %s' % (name, e) return 1 @@ -441,7 +441,7 @@ def ask(self, question, default=None, masked=False, regexp=None, choices=None, t try: v.set(line) - except ValueError, e: + except ValueError as e: print >>sys.stderr, u'Error: %s' % e else: break diff --git a/weboob/tools/application/formatters/load.py b/weboob/tools/application/formatters/load.py index 810de04b27ddcbb594ba70b77f250758e2e5512c..4b0b66f68bdfecbfe45673aba3b6100697a44483 100644 --- a/weboob/tools/application/formatters/load.py +++ b/weboob/tools/application/formatters/load.py @@ -37,15 +37,14 @@ def register_formatter(self, name, klass): def get_available_formatters(self): l = set(self.formatters.iterkeys()) l = l.union(self.BUILTINS) - l = list(l) - l.sort() + l = sorted(l) return l def build_formatter(self, name): if not name in self.formatters: try: self.formatters[name] = self.load_builtin_formatter(name) - except ImportError, e: + except ImportError as e: FormattersLoader.BUILTINS.remove(name) raise FormatterLoadError('Unable to load formatter "%s": %s' % (name, e)) return self.formatters[name]() diff --git a/weboob/tools/application/qt/backendcfg.py b/weboob/tools/application/qt/backendcfg.py index d336049ed0a90f9c59715d43a03d054a0842cc7b..7feebd2606d80d1fe06dd9ee13fa3bba6e6c6fc3 100644 --- a/weboob/tools/application/qt/backendcfg.py +++ b/weboob/tools/application/qt/backendcfg.py @@ -170,7 +170,7 @@ def updateModules(self): pd.setWindowModality(Qt.WindowModal) try: self.weboob.repositories.update(pd) - except ModuleInstallError, err: + except ModuleInstallError as err: QMessageBox.critical(self, self.tr('Update error'), unicode(self.tr('Unable to update modules: %s' % (err))), QMessageBox.Ok) @@ -206,7 +206,7 @@ def installModule(self, minfo): try: self.weboob.repositories.install(minfo, pd) - except ModuleInstallError, err: + except ModuleInstallError as err: QMessageBox.critical(self, self.tr('Install error'), unicode(self.tr('Unable to install module %s: %s' % (minfo.name, err))), QMessageBox.Ok) @@ -442,7 +442,7 @@ def acceptBackend(self): try: value = qtvalue.get_value() - except ValueError, e: + except ValueError as e: QMessageBox.critical(self, self.tr('Invalid value'), unicode(self.tr('Invalid value for field "%s":

%s')) % (field.label, e)) return @@ -507,7 +507,7 @@ def registerEvent(self): for key, widget in props_widgets.iteritems(): try: v = widget.get_value() - except ValueError, e: + except ValueError as e: QMessageBox.critical(self, self.tr('Invalid value'), unicode(self.tr('Invalid value for field "%s":

%s')) % (key, e)) end = False @@ -517,7 +517,7 @@ def registerEvent(self): if end: try: module.klass.register_account(account) - except AccountRegisterError, e: + except AccountRegisterError as e: QMessageBox.critical(self, self.tr('Error during register'), unicode(self.tr('Unable to register account %s:

%s')) % (website, e)) end = False diff --git a/weboob/tools/application/qt/qt.py b/weboob/tools/application/qt/qt.py index 1280b581fb61706441cebb65ae6b6de368a7b329..578a2b19e4052674c9843604ec96566f91f6885e 100644 --- a/weboob/tools/application/qt/qt.py +++ b/weboob/tools/application/qt/qt.py @@ -150,12 +150,12 @@ def create_weboob(self): return Weboob(scheduler=QtScheduler(self)) def load_backends(self, *args, **kwargs): - while 1: + while True: try: return BaseApplication.load_backends(self, *args, **kwargs) - except VersionsMismatchError, e: + except VersionsMismatchError as e: msg = 'Versions of modules mismatch with version of weboob.' - except ConfigError, e: + except ConfigError as e: msg = unicode(e) res = QMessageBox.question(None, 'Configuration error', u'%s\n\nDo you want to update repositories?' % msg, QMessageBox.Yes|QMessageBox.No) @@ -168,7 +168,7 @@ def load_backends(self, *args, **kwargs): pd.setWindowModality(Qt.WindowModal) try: self.weboob.update(pd) - except ModuleInstallError, err: + except ModuleInstallError as err: QMessageBox.critical(None, self.tr('Update error'), unicode(self.tr('Unable to update repositories: %s' % err)), QMessageBox.Ok) diff --git a/weboob/tools/application/repl.py b/weboob/tools/application/repl.py index 939182c1661404b8ef6ab69c5ec755c63936a4a7..4fa221905d9ecd09daa67ae76c29190255ff50d3 100644 --- a/weboob/tools/application/repl.py +++ b/weboob/tools/application/repl.py @@ -174,7 +174,7 @@ def parse_id(self, id, unique_backend=False): id = '%s@%s' % (obj.id, obj.backend) try: return ConsoleApplication.parse_id(self, id, unique_backend) - except BackendNotGiven, e: + except BackendNotGiven as e: backend_name = None while not backend_name: print 'This command works with an unique backend. Availables:' @@ -206,7 +206,7 @@ def get_object(self, _id, method, fields=None, caps=None): try: backend = self.weboob.get_backend(obj.backend) return backend.fillobj(obj, fields) - except UserError, e: + except UserError as e: self.bcall_error_handler(backend, e, '') _id, backend_name = self.parse_id(_id) @@ -355,11 +355,11 @@ def onecmd(self, line): try: try: return super(ReplApplication, self).onecmd(line) - except CallErrors, e: + except CallErrors as e: self.bcall_errors_handler(e) - except BackendNotGiven, e: + except BackendNotGiven as e: print >>sys.stderr, 'Error: %s' % str(e) - except NotEnoughArguments, e: + except NotEnoughArguments as e: print >>sys.stderr, 'Error: not enough arguments. %s' % str(e) except (KeyboardInterrupt, EOFError): # ^C during a command process doesn't exit application. @@ -739,7 +739,7 @@ def do_condition(self, line): else: try: self.condition = ResultsCondition(line) - except ResultsConditionError, e: + except ResultsConditionError as e: print >>sys.stderr, '%s' % e return 2 else: @@ -977,7 +977,7 @@ def do_cd(self, line): caps=ICapCollection): if res: collections.append(res) - except CallErrors, errors: + except CallErrors as errors: for backend, error, backtrace in errors.errors: if isinstance(error, CollectionNotFound): pass @@ -1006,7 +1006,7 @@ def _fetch_objects(self, objs): collections.append(res) else: objects.append(res) - except CallErrors, errors: + except CallErrors as errors: for backend, error, backtrace in errors.errors: if isinstance(error, CollectionNotFound): pass @@ -1034,7 +1034,7 @@ def complete_path(self, text, line, begidx, endidx): if len(self.objects) == 0 and len(self.collections) == 0: try: self.objects, self.collections = self._fetch_objects(objs=self.COLLECTION_OBJECTS) - except CallErrors, errors: + except CallErrors as errors: for backend, error, backtrace in errors.errors: if isinstance(error, CollectionNotFound): pass @@ -1062,7 +1062,7 @@ def set_formatter(self, name): """ try: self.formatter = self.formatters_loader.build_formatter(name) - except FormatterLoadError, e: + except FormatterLoadError as e: print >>sys.stderr, '%s' % e if self.DEFAULT_FORMATTER == name: self.DEFAULT_FORMATTER = ReplApplication.DEFAULT_FORMATTER @@ -1098,9 +1098,9 @@ def format(self, result, alias=None): fields = None try: self.formatter.format(obj=result, selected_fields=fields, alias=alias) - except FieldNotFound, e: + except FieldNotFound as e: print >>sys.stderr, e - except MandatoryFieldsNotFound, e: + except MandatoryFieldsNotFound as e: print >>sys.stderr, '%s Hint: select missing fields or use another formatter (ex: multiline).' % e def flush(self): diff --git a/weboob/tools/backend.py b/weboob/tools/backend.py index 0dbed53e707db9ea912b857e8e217f22a5865849..7e4fe84daf893c5eb1632482981ac1de62915f14 100644 --- a/weboob/tools/backend.py +++ b/weboob/tools/backend.py @@ -163,7 +163,7 @@ def load(self, weboob, modname, instname, config, nofail=False): field = copy(field) try: field.load(cfg.instname, value, cfg.weboob.callbacks) - except ValueError, v: + except ValueError as v: if not nofail: raise BaseBackend.ConfigError( 'Backend(%s): Configuration error for field "%s": %s' % (cfg.instname, name, v)) diff --git a/weboob/tools/browser/browser.py b/weboob/tools/browser/browser.py index ae28295dc009b515d1a1abf3a325a8754c4bb06a..06a70451c513881e4ecf0576ce4ac27377c1949d 100644 --- a/weboob/tools/browser/browser.py +++ b/weboob/tools/browser/browser.py @@ -55,7 +55,7 @@ # Try to load cookies try: from .firefox_cookies import FirefoxCookieJar -except ImportError, e: +except ImportError as e: warning("Unable to store cookies: %s" % e) HAVE_COOKIES = False else: @@ -281,7 +281,7 @@ def openurl(self, *args, **kwargs): try: return self._openurl(*args, **kwargs) except (mechanize.BrowserStateError, mechanize.response_seek_wrapper, - urllib2.HTTPError, urllib2.URLError, BadStatusLine, ssl.SSLError), e: + urllib2.HTTPError, urllib2.URLError, BadStatusLine, ssl.SSLError) as e: if isinstance(e, mechanize.BrowserStateError) and hasattr(self, 'home'): self.home() return self._openurl(*args, **kwargs) @@ -289,7 +289,7 @@ def openurl(self, *args, **kwargs): raise self.get_exception(e)('%s (url="%s")' % (e, args and args[0] or 'None')) else: return None - except BrowserRetry, e: + except BrowserRetry as e: return self._openurl(*args, **kwargs) def get_exception(self, e): @@ -426,7 +426,7 @@ def set_field(self, args, label, field=None, value=None, is_list=False): if isinstance(is_list, (list, tuple)): try: value = [self.str(is_list.index(args[label]))] - except ValueError, e: + except ValueError as e: if args[label]: print >>sys.stderr, '[%s] %s: %s' % (label, args[label], e) return @@ -555,10 +555,10 @@ def submit(self, *args, **kwargs): nologin = kwargs.pop('nologin', False) try: self._change_location(mechanize.Browser.submit(self, *args, **kwargs), no_login=nologin) - except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine, ssl.SSLError), e: + except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine, ssl.SSLError) as e: self.page = None raise self.get_exception(e)(e) - except (mechanize.BrowserStateError, BrowserRetry), e: + except (mechanize.BrowserStateError, BrowserRetry) as e: raise BrowserUnavailable(e) def is_on_page(self, pageCls): @@ -587,10 +587,10 @@ def follow_link(self, *args, **kwargs): """ try: self._change_location(mechanize.Browser.follow_link(self, *args, **kwargs)) - except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine, ssl.SSLError), e: + except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine, ssl.SSLError) as e: self.page = None raise self.get_exception(e)('%s (url="%s")' % (e, args and args[0] or 'None')) - except (mechanize.BrowserStateError, BrowserRetry), e: + except (mechanize.BrowserStateError, BrowserRetry) as e: self.home() raise BrowserUnavailable(e) @@ -622,7 +622,7 @@ def location(self, *args, **kwargs): if not self.page or not args or self.page.url != args[0]: keep_kwargs['no_login'] = True self.location(*keep_args, **keep_kwargs) - except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine, ssl.SSLError), e: + except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine, ssl.SSLError) as e: self.page = None raise self.get_exception(e)('%s (url="%s")' % (e, args and args[0] or 'None')) except mechanize.BrowserStateError: @@ -758,7 +758,7 @@ def connect(self): self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=proto) self._HOSTS['%s:%s' % (self.host, self.port)] = [proto] return - except ssl.SSLError, e: + except ssl.SSLError as e: sock.close() raise e diff --git a/weboob/tools/browser/firefox_cookies.py b/weboob/tools/browser/firefox_cookies.py index c76444d9eb4210698b8110d32c936aa9742862b9..6d5c1cba194039097b48d843e2536c5349370053 100644 --- a/weboob/tools/browser/firefox_cookies.py +++ b/weboob/tools/browser/firefox_cookies.py @@ -20,7 +20,7 @@ try: import sqlite3 as sqlite -except ImportError, e: +except ImportError as e: from pysqlite2 import dbapi2 as sqlite from mechanize import CookieJar, Cookie @@ -39,7 +39,7 @@ def __init__(self, domain, sqlite_file=None, policy=None): def __connect(self): try: db = sqlite.connect(database=self.sqlite_file, timeout=10.0) - except sqlite.OperationalError, err: + except sqlite.OperationalError as err: print 'Unable to open %s database: %s' % (self.sqlite_file, err) return None diff --git a/weboob/tools/capabilities/bank/transactions.py b/weboob/tools/capabilities/bank/transactions.py index 418794976c60533f2d41a015f76d2ec0a9250596..5a0a7a4cff9f22fca4eccf0901d9e8f65bef8291 100644 --- a/weboob/tools/capabilities/bank/transactions.py +++ b/weboob/tools/capabilities/bank/transactions.py @@ -152,7 +152,7 @@ def inargs(key): self.rdate = datetime.datetime(yy, mm, dd, int(args['HH']), int(args['MM'])) else: self.rdate = datetime.date(yy, mm, dd) - except ValueError, e: + except ValueError as e: self._logger.warning('Unable to date in label %r: %s' % (self.raw, e)) return diff --git a/weboob/tools/date.py b/weboob/tools/date.py index b01b4818ad8aa4b8464d36caf295d85aef438af2..69080b011d308f7288a5fa3b00810c55bed99f99 100644 --- a/weboob/tools/date.py +++ b/weboob/tools/date.py @@ -83,7 +83,7 @@ def _findall(text, substr): # Also finds overlaps sites = [] i = 0 - while 1: + while True: j = text.find(substr, i) if j == -1: break @@ -153,10 +153,10 @@ def try_assigning_year(self, day, month, start_year, max_year): In case initialization still fails with max_year, this function raises a ValueError. """ - while 1: + while True: try: return date(start_year, month, day) - except ValueError, e: + except ValueError as e: if start_year == max_year: raise e start_year += cmp(max_year, start_year) diff --git a/weboob/tools/decorators.py b/weboob/tools/decorators.py index 78beee162e70e332d1481d671a9d440189df0918..a5f1f06ead8be9403a90bd6dac4d7b8a8422b973 100644 --- a/weboob/tools/decorators.py +++ b/weboob/tools/decorators.py @@ -41,7 +41,7 @@ def f_retry(*args, **kwargs): return f(*args, **kwargs) try_one_last_time = False break - except ExceptionToCheck, e: + except ExceptionToCheck as e: logging.debug(u'%s, Retrying in %d seconds...' % (e, mdelay)) time.sleep(mdelay) mtries -= 1