Repository: thrift Updated Branches: refs/heads/master 1a42a0547 -> fc07084ad
THRIFT-3540 Make python tutorial more in line with PEP8 This closes #786 Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/7e286b0d Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/7e286b0d Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/7e286b0d Branch: refs/heads/master Commit: 7e286b0d143be88adbd84f2e1cbfec66196a6a57 Parents: 1a42a05 Author: Nobuaki Sukegawa <nsu...@gmail.com> Authored: Mon Jan 11 11:25:09 2016 +0900 Committer: Nobuaki Sukegawa <ns...@apache.org> Committed: Wed Jan 13 20:25:19 2016 +0900 ---------------------------------------------------------------------- tutorial/py.tornado/PythonServer.py | 3 - tutorial/py.twisted/PythonClient.py | 50 ++++++------ tutorial/py.twisted/PythonServer.py | 107 +++++++++++++------------ tutorial/py.twisted/PythonServer.tac | 14 ++-- tutorial/py/PythonClient.py | 79 +++++++++--------- tutorial/py/PythonServer.py | 129 +++++++++++++++--------------- 6 files changed, 198 insertions(+), 184 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/7e286b0d/tutorial/py.tornado/PythonServer.py ---------------------------------------------------------------------- diff --git a/tutorial/py.tornado/PythonServer.py b/tutorial/py.tornado/PythonServer.py index 7b750e4..e0229a2 100755 --- a/tutorial/py.tornado/PythonServer.py +++ b/tutorial/py.tornado/PythonServer.py @@ -31,10 +31,7 @@ from tutorial.ttypes import Operation, InvalidOperation from shared.ttypes import SharedStruct from thrift import TTornado -from thrift.transport import TSocket -from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol -from thrift.server import TServer from tornado import ioloop http://git-wip-us.apache.org/repos/asf/thrift/blob/7e286b0d/tutorial/py.twisted/PythonClient.py ---------------------------------------------------------------------- diff --git a/tutorial/py.twisted/PythonClient.py b/tutorial/py.twisted/PythonClient.py index e80c0fc..63dde7e 100755 --- a/tutorial/py.twisted/PythonClient.py +++ b/tutorial/py.twisted/PythonClient.py @@ -19,51 +19,53 @@ # under the License. # -import sys, glob +import glob +import sys sys.path.append('gen-py.twisted') sys.path.insert(0, glob.glob('../../lib/py/build/lib*')[0]) from tutorial import Calculator -from tutorial.ttypes import * +from tutorial.ttypes import InvalidOperation, Operation, Work from twisted.internet.defer import inlineCallbacks from twisted.internet import reactor from twisted.internet.protocol import ClientCreator -from thrift import Thrift from thrift.transport import TTwisted from thrift.protocol import TBinaryProtocol + @inlineCallbacks def main(client): - yield client.ping() - print('ping()') + yield client.ping() + print('ping()') - sum = yield client.add(1,1) - print(('1+1=%d' % (sum))) + sum = yield client.add(1, 1) + print(('1+1=%d' % (sum))) - work = Work() + work = Work() - work.op = Operation.DIVIDE - work.num1 = 1 - work.num2 = 0 + work.op = Operation.DIVIDE + work.num1 = 1 + work.num2 = 0 - try: - quotient = yield client.calculate(1, work) - print('Whoa? You know how to divide by zero?') - except InvalidOperation as e: - print(('InvalidOperation: %r' % e)) + try: + quotient = yield client.calculate(1, work) + print('Whoa? You know how to divide by zero?') + print('FYI the answer is %d' % quotient) + except InvalidOperation as e: + print(('InvalidOperation: %r' % e)) - work.op = Operation.SUBTRACT - work.num1 = 15 - work.num2 = 10 + work.op = Operation.SUBTRACT + work.num1 = 15 + work.num2 = 10 - diff = yield client.calculate(1, work) - print(('15-10=%d' % (diff))) + diff = yield client.calculate(1, work) + print(('15-10=%d' % (diff))) - log = yield client.getStruct(1) - print(('Check log: %s' % (log.value))) - reactor.stop() + log = yield client.getStruct(1) + print(('Check log: %s' % (log.value))) + reactor.stop() if __name__ == '__main__': d = ClientCreator(reactor, http://git-wip-us.apache.org/repos/asf/thrift/blob/7e286b0d/tutorial/py.twisted/PythonServer.py ---------------------------------------------------------------------- diff --git a/tutorial/py.twisted/PythonServer.py b/tutorial/py.twisted/PythonServer.py index c578321..1b0e2d5 100755 --- a/tutorial/py.twisted/PythonServer.py +++ b/tutorial/py.twisted/PythonServer.py @@ -19,12 +19,13 @@ # under the License. # -import sys, glob +import glob +import sys sys.path.append('gen-py.twisted') sys.path.insert(0, glob.glob('../../lib/py/build/lib*')[0]) from tutorial import Calculator -from tutorial.ttypes import * +from tutorial.ttypes import InvalidOperation, Operation from shared.ttypes import SharedStruct @@ -33,61 +34,63 @@ from twisted.internet import reactor from thrift.transport import TTwisted from thrift.protocol import TBinaryProtocol -from thrift.server import TServer + class CalculatorHandler: - implements(Calculator.Iface) - def __init__(self): - self.log = {} - - def ping(self): - print('ping()') - - def add(self, n1, n2): - print('add(%d,%d)' % (n1, n2)) - return n1+n2 - - def calculate(self, logid, work): - print('calculate(%d, %r)' % (logid, work)) - - if work.op == Operation.ADD: - val = work.num1 + work.num2 - elif work.op == Operation.SUBTRACT: - val = work.num1 - work.num2 - elif work.op == Operation.MULTIPLY: - val = work.num1 * work.num2 - elif work.op == Operation.DIVIDE: - if work.num2 == 0: - x = InvalidOperation() - x.whatOp = work.op - x.why = 'Cannot divide by 0' - raise x - val = work.num1 / work.num2 - else: - x = InvalidOperation() - x.whatOp = work.op - x.why = 'Invalid operation' - raise x - - log = SharedStruct() - log.key = logid - log.value = '%d' % (val) - self.log[logid] = log - - return val - - def getStruct(self, key): - print('getStruct(%d)' % (key)) - return self.log[key] - - def zip(self): - print('zip()') + implements(Calculator.Iface) + + def __init__(self): + self.log = {} + + def ping(self): + print('ping()') + + def add(self, n1, n2): + print('add(%d,%d)' % (n1, n2)) + return n1 + n2 + + def calculate(self, logid, work): + print('calculate(%d, %r)' % (logid, work)) + + if work.op == Operation.ADD: + val = work.num1 + work.num2 + elif work.op == Operation.SUBTRACT: + val = work.num1 - work.num2 + elif work.op == Operation.MULTIPLY: + val = work.num1 * work.num2 + elif work.op == Operation.DIVIDE: + if work.num2 == 0: + x = InvalidOperation() + x.whatOp = work.op + x.why = 'Cannot divide by 0' + raise x + val = work.num1 / work.num2 + else: + x = InvalidOperation() + x.whatOp = work.op + x.why = 'Invalid operation' + raise x + + log = SharedStruct() + log.key = logid + log.value = '%d' % (val) + self.log[logid] = log + + return val + + def getStruct(self, key): + print('getStruct(%d)' % (key)) + return self.log[key] + + def zip(self): + print('zip()') if __name__ == '__main__': handler = CalculatorHandler() processor = Calculator.Processor(handler) pfactory = TBinaryProtocol.TBinaryProtocolFactory() - server = reactor.listenTCP(9090, - TTwisted.ThriftServerFactory(processor, - pfactory), interface="127.0.0.1") + server = reactor.listenTCP( + 9090, + TTwisted.ThriftServerFactory(processor, pfactory), + interface="127.0.0.1") reactor.run() http://git-wip-us.apache.org/repos/asf/thrift/blob/7e286b0d/tutorial/py.twisted/PythonServer.tac ---------------------------------------------------------------------- diff --git a/tutorial/py.twisted/PythonServer.tac b/tutorial/py.twisted/PythonServer.tac index 08493ff..0479636 100755 --- a/tutorial/py.twisted/PythonServer.tac +++ b/tutorial/py.twisted/PythonServer.tac @@ -22,12 +22,14 @@ from twisted.application import internet, service from thrift.transport import TTwisted -import sys, glob +import glob +import sys sys.path.append('gen-py.twisted') sys.path.insert(0, glob.glob('../../lib/py/build/lib*')[0]) from tutorial import Calculator -from tutorial.ttypes import * from PythonServer import CalculatorHandler +from thrift.protocol import TBinaryProtocol + def make_application(): application = service.Application('CalcServer') @@ -35,8 +37,9 @@ def make_application(): handler = CalculatorHandler() processor = Calculator.Processor(handler) - serverFactory = TTwisted.ThriftServerFactory(processor, - TBinaryProtocol.TBinaryProtocolFactory()) + serverFactory = TTwisted.ThriftServerFactory( + processor, + TBinaryProtocol.TBinaryProtocolFactory()) calcService = internet.TCPServer(9090, serverFactory) @@ -46,4 +49,5 @@ def make_application(): return application -application = make_application() +if __name__ == '__main__': + application = make_application() http://git-wip-us.apache.org/repos/asf/thrift/blob/7e286b0d/tutorial/py/PythonClient.py ---------------------------------------------------------------------- diff --git a/tutorial/py/PythonClient.py b/tutorial/py/PythonClient.py index c4559ff..8000483 100755 --- a/tutorial/py/PythonClient.py +++ b/tutorial/py/PythonClient.py @@ -19,65 +19,70 @@ # under the License. # -import sys, glob +import sys +import glob sys.path.append('gen-py') sys.path.insert(0, glob.glob('../../lib/py/build/lib*')[0]) from tutorial import Calculator -from tutorial.ttypes import * +from tutorial.ttypes import InvalidOperation, Operation, Work from thrift import Thrift from thrift.transport import TSocket from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol -try: - # Make socket - transport = TSocket.TSocket('localhost', 9090) +def main(): + # Make socket + transport = TSocket.TSocket('localhost', 9090) - # Buffering is critical. Raw sockets are very slow - transport = TTransport.TBufferedTransport(transport) + # Buffering is critical. Raw sockets are very slow + transport = TTransport.TBufferedTransport(transport) - # Wrap in a protocol - protocol = TBinaryProtocol.TBinaryProtocol(transport) + # Wrap in a protocol + protocol = TBinaryProtocol.TBinaryProtocol(transport) - # Create a client to use the protocol encoder - client = Calculator.Client(protocol) + # Create a client to use the protocol encoder + client = Calculator.Client(protocol) - # Connect! - transport.open() + # Connect! + transport.open() - client.ping() - print('ping()') + client.ping() + print('ping()') - sum = client.add(1,1) - print(('1+1=%d' % (sum))) + sum = client.add(1, 1) + print(('1+1=%d' % (sum))) - work = Work() + work = Work() - work.op = Operation.DIVIDE - work.num1 = 1 - work.num2 = 0 + work.op = Operation.DIVIDE + work.num1 = 1 + work.num2 = 0 - try: - quotient = client.calculate(1, work) - print('Whoa? You know how to divide by zero?') - except InvalidOperation as e: - print(('InvalidOperation: %r' % e)) + try: + quotient = client.calculate(1, work) + print('Whoa? You know how to divide by zero?') + print('FYI the answer is %d' % quotient) + except InvalidOperation as e: + print(('InvalidOperation: %r' % e)) - work.op = Operation.SUBTRACT - work.num1 = 15 - work.num2 = 10 + work.op = Operation.SUBTRACT + work.num1 = 15 + work.num2 = 10 - diff = client.calculate(1, work) - print(('15-10=%d' % (diff))) + diff = client.calculate(1, work) + print(('15-10=%d' % (diff))) - log = client.getStruct(1) - print(('Check log: %s' % (log.value))) + log = client.getStruct(1) + print(('Check log: %s' % (log.value))) - # Close! - transport.close() + # Close! + transport.close() -except Thrift.TException as tx: - print(('%s' % (tx.message))) +if __name__ == '__main__': + try: + main() + except Thrift.TException as tx: + print(('%s' % (tx.message))) http://git-wip-us.apache.org/repos/asf/thrift/blob/7e286b0d/tutorial/py/PythonServer.py ---------------------------------------------------------------------- diff --git a/tutorial/py/PythonServer.py b/tutorial/py/PythonServer.py index 8ef231b..a02a525 100755 --- a/tutorial/py/PythonServer.py +++ b/tutorial/py/PythonServer.py @@ -19,12 +19,13 @@ # under the License. # -import sys, glob +import glob +import sys sys.path.append('gen-py') sys.path.insert(0, glob.glob('../../lib/py/build/lib*')[0]) from tutorial import Calculator -from tutorial.ttypes import * +from tutorial.ttypes import InvalidOperation, Operation from shared.ttypes import SharedStruct @@ -33,65 +34,67 @@ from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol from thrift.server import TServer + class CalculatorHandler: - def __init__(self): - self.log = {} - - def ping(self): - print('ping()') - - def add(self, n1, n2): - print('add(%d,%d)' % (n1, n2)) - return n1+n2 - - def calculate(self, logid, work): - print('calculate(%d, %r)' % (logid, work)) - - if work.op == Operation.ADD: - val = work.num1 + work.num2 - elif work.op == Operation.SUBTRACT: - val = work.num1 - work.num2 - elif work.op == Operation.MULTIPLY: - val = work.num1 * work.num2 - elif work.op == Operation.DIVIDE: - if work.num2 == 0: - x = InvalidOperation() - x.whatOp = work.op - x.why = 'Cannot divide by 0' - raise x - val = work.num1 / work.num2 - else: - x = InvalidOperation() - x.whatOp = work.op - x.why = 'Invalid operation' - raise x - - log = SharedStruct() - log.key = logid - log.value = '%d' % (val) - self.log[logid] = log - - return val - - def getStruct(self, key): - print('getStruct(%d)' % (key)) - return self.log[key] - - def zip(self): - print('zip()') - -handler = CalculatorHandler() -processor = Calculator.Processor(handler) -transport = TSocket.TServerSocket(port=9090) -tfactory = TTransport.TBufferedTransportFactory() -pfactory = TBinaryProtocol.TBinaryProtocolFactory() - -server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) - -# You could do one of these for a multithreaded server -#server = TServer.TThreadedServer(processor, transport, tfactory, pfactory) -#server = TServer.TThreadPoolServer(processor, transport, tfactory, pfactory) - -print('Starting the server...') -server.serve() -print('done.') + def __init__(self): + self.log = {} + + def ping(self): + print('ping()') + + def add(self, n1, n2): + print('add(%d,%d)' % (n1, n2)) + return n1 + n2 + + def calculate(self, logid, work): + print('calculate(%d, %r)' % (logid, work)) + + if work.op == Operation.ADD: + val = work.num1 + work.num2 + elif work.op == Operation.SUBTRACT: + val = work.num1 - work.num2 + elif work.op == Operation.MULTIPLY: + val = work.num1 * work.num2 + elif work.op == Operation.DIVIDE: + if work.num2 == 0: + x = InvalidOperation() + x.whatOp = work.op + x.why = 'Cannot divide by 0' + raise x + val = work.num1 / work.num2 + else: + x = InvalidOperation() + x.whatOp = work.op + x.why = 'Invalid operation' + raise x + + log = SharedStruct() + log.key = logid + log.value = '%d' % (val) + self.log[logid] = log + + return val + + def getStruct(self, key): + print('getStruct(%d)' % (key)) + return self.log[key] + + def zip(self): + print('zip()') + +if __name__ == '__main__': + handler = CalculatorHandler() + processor = Calculator.Processor(handler) + transport = TSocket.TServerSocket(port=9090) + tfactory = TTransport.TBufferedTransportFactory() + pfactory = TBinaryProtocol.TBinaryProtocolFactory() + + server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) + + # You could do one of these for a multithreaded server + # server = TServer.TThreadedServer(processor, transport, tfactory, pfactory) + # server = TServer.TThreadPoolServer(processor, transport, tfactory, pfactory) + + print('Starting the server...') + server.serve() + print('done.')