From 6c5ee6ad2067e245ab5364f9a6019d8b63d7ed52 Mon Sep 17 00:00:00 2001 From: Jake Farrell Date: Fri, 18 May 2012 01:00:39 +0000 Subject: [PATCH] Thrift-1604:Python exxception handeling for changes from PEP3110 Client: py Patch: Jake Farrell Python PEP 3110 changed exception handling by replacing the ',' with 'as'. This was initially introduced in python 2.6 and in 3.0 the ',' usage is no longer suppported. Since exception handling through out the py lib uses the ',' it will need to be converted over to using the 'as' syntax for exceptions git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1339941 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_py_generator.cc | 4 ++-- lib/py/src/server/THttpServer.py | 2 +- lib/py/src/server/TProcessPoolServer.py | 6 +++--- lib/py/src/server/TServer.py | 18 +++++++++--------- lib/py/src/transport/TSSLSocket.py | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/compiler/cpp/src/generate/t_py_generator.cc b/compiler/cpp/src/generate/t_py_generator.cc index 8d07a13e..08f2e68b 100644 --- a/compiler/cpp/src/generate/t_py_generator.cc +++ b/compiler/cpp/src/generate/t_py_generator.cc @@ -1792,7 +1792,7 @@ void t_py_generator::generate_process_function(t_service* tservice, indent() << " error.raiseException()" << endl; for (x_iter = xceptions.begin(); x_iter != xceptions.end(); ++x_iter) { f_service_ << - indent() << "except " << type_name((*x_iter)->get_type()) << ", " << (*x_iter)->get_name() << ":" << endl; + indent() << "except " << type_name((*x_iter)->get_type()) << " as " << (*x_iter)->get_name() << ":" << endl; if (!tfunction->is_oneway()) { indent_up(); f_service_ << @@ -1847,7 +1847,7 @@ void t_py_generator::generate_process_function(t_service* tservice, indent_down(); for (x_iter = xceptions.begin(); x_iter != xceptions.end(); ++x_iter) { f_service_ << - indent() << "except " << type_name((*x_iter)->get_type()) << ", " << (*x_iter)->get_name() << ":" << endl; + indent() << "except " << type_name((*x_iter)->get_type()) << " as " << (*x_iter)->get_name() << ":" << endl; if (!tfunction->is_oneway()) { indent_up(); f_service_ << diff --git a/lib/py/src/server/THttpServer.py b/lib/py/src/server/THttpServer.py index be54bab9..6f921739 100644 --- a/lib/py/src/server/THttpServer.py +++ b/lib/py/src/server/THttpServer.py @@ -73,7 +73,7 @@ class THttpServer(TServer.TServer): oprot = thttpserver.outputProtocolFactory.getProtocol(otrans) try: thttpserver.processor.process(iprot, oprot) - except ResponseException, exn: + except ResponseException as exn: exn.handler(self) else: self.send_response(200) diff --git a/lib/py/src/server/TProcessPoolServer.py b/lib/py/src/server/TProcessPoolServer.py index 7a695a88..86c43121 100644 --- a/lib/py/src/server/TProcessPoolServer.py +++ b/lib/py/src/server/TProcessPoolServer.py @@ -59,7 +59,7 @@ class TProcessPoolServer(TServer): self.serveClient(client) except (KeyboardInterrupt, SystemExit): return 0 - except Exception, x: + except Exception as x: logging.exception(x) def serveClient(self, client): @@ -74,7 +74,7 @@ class TProcessPoolServer(TServer): self.processor.process(iprot, oprot) except TTransportException, tx: pass - except Exception, x: + except Exception as x: logging.exception(x) itrans.close() @@ -106,7 +106,7 @@ class TProcessPoolServer(TServer): break except (SystemExit, KeyboardInterrupt): break - except Exception, x: + except Exception as x: logging.exception(x) self.isRunning.value = False diff --git a/lib/py/src/server/TServer.py b/lib/py/src/server/TServer.py index 2f24842c..97097cc4 100644 --- a/lib/py/src/server/TServer.py +++ b/lib/py/src/server/TServer.py @@ -84,7 +84,7 @@ class TSimpleServer(TServer): self.processor.process(iprot, oprot) except TTransport.TTransportException, tx: pass - except Exception, x: + except Exception as x: logging.exception(x) itrans.close() @@ -108,7 +108,7 @@ class TThreadedServer(TServer): t.start() except KeyboardInterrupt: raise - except Exception, x: + except Exception as x: logging.exception(x) def handle(self, client): @@ -121,7 +121,7 @@ class TThreadedServer(TServer): self.processor.process(iprot, oprot) except TTransport.TTransportException, tx: pass - except Exception, x: + except Exception as x: logging.exception(x) itrans.close() @@ -161,7 +161,7 @@ class TThreadPoolServer(TServer): self.processor.process(iprot, oprot) except TTransport.TTransportException, tx: pass - except Exception, x: + except Exception as x: logging.exception(x) itrans.close() @@ -174,7 +174,7 @@ class TThreadPoolServer(TServer): t = threading.Thread(target=self.serveThread) t.setDaemon(self.daemon) t.start() - except Exception, x: + except Exception as x: logging.exception(x) # Pump the socket for clients @@ -183,7 +183,7 @@ class TThreadPoolServer(TServer): try: client = self.serverTransport.accept() self.clients.put(client) - except Exception, x: + except Exception as x: logging.exception(x) @@ -208,7 +208,7 @@ class TForkingServer(TServer): def try_close(file): try: file.close() - except IOError, e: + except IOError as e: logging.warning(e, exc_info=True) self.serverTransport.listen() @@ -242,7 +242,7 @@ class TForkingServer(TServer): self.processor.process(iprot, oprot) except TTransport.TTransportException, tx: pass - except Exception, e: + except Exception as e: logging.exception(e) ecode = 1 finally: @@ -253,7 +253,7 @@ class TForkingServer(TServer): except TTransport.TTransportException, tx: pass - except Exception, x: + except Exception as x: logging.exception(x) def collect_children(self): diff --git a/lib/py/src/transport/TSSLSocket.py b/lib/py/src/transport/TSSLSocket.py index 6d79ac6a..e0ff4f94 100644 --- a/lib/py/src/transport/TSSLSocket.py +++ b/lib/py/src/transport/TSSLSocket.py @@ -86,13 +86,13 @@ class TSSLSocket(TSocket.TSocket): self.handle.settimeout(self._timeout) try: self.handle.connect(ip_port) - except socket.error, e: + except socket.error as e: if res is not res0[-1]: continue else: raise e break - except socket.error, e: + except socket.error as e: if self._unix_socket: message = 'Could not connect to secure socket %s' % self._unix_socket else: @@ -188,7 +188,7 @@ class TSSLServerSocket(TSocket.TServerSocket): try: client = ssl.wrap_socket(plain_client, certfile=self.certfile, server_side=True, ssl_version=self.SSL_VERSION) - except ssl.SSLError, ssl_exc: + except ssl.SSLError as ssl_exc: # failed handshake/ssl wrap, close socket to client plain_client.close() # raise ssl_exc -- 2.17.1