def _request(self, method, params=None, use_login_repeat=None): if not isinstance(method, unicode_string): method = method.decode('ascii') if use_login_repeat is None: use_login_repeat = (method not in ('logout', 'authenticate')) attempts_left = self.config['login_repeat'] if use_login_repeat else 0 data = None while data is None: try: data = rpc_request(self.config, method, params or {}) except errors.NotLoggedInError: if attempts_left > 0: self.logout(suppress_errors=True) self.login() else: raise errors.NotLoggedInError( 'Tried to login several times, failed. Original method' ' was ' + method) else: return data attempts_left -= 1 # new round!
def _request(self, method, params=None, use_login_repeat=None): if not isinstance(method, unicode_string): method = method.decode("ascii") if use_login_repeat is None: use_login_repeat = method not in ("logout", "authenticate") attempts_left = self.config["login_repeat"] if use_login_repeat else 0 data = None while data is None: try: data = rpc_request(self.config, method, params or {}) except errors.NotLoggedInError: if attempts_left > 0: self.logout(suppress_errors=True) self.login() else: raise errors.NotLoggedInError( "Tried to login several times, failed. Original method" " was " + method ) else: log("debug", "RETURN:" + str(data)) return data attempts_left -= 1 # new round!