Return-Path: Delivered-To: apmail-hadoop-avro-commits-archive@minotaur.apache.org Received: (qmail 82155 invoked from network); 7 May 2010 07:54:24 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 7 May 2010 07:54:24 -0000 Received: (qmail 33825 invoked by uid 500); 7 May 2010 07:54:24 -0000 Delivered-To: apmail-hadoop-avro-commits-archive@hadoop.apache.org Received: (qmail 33786 invoked by uid 500); 7 May 2010 07:54:23 -0000 Mailing-List: contact avro-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: avro-dev@hadoop.apache.org Delivered-To: mailing list avro-commits@hadoop.apache.org Received: (qmail 33778 invoked by uid 99); 7 May 2010 07:54:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 07 May 2010 07:54:23 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 07 May 2010 07:54:20 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D044023888FE; Fri, 7 May 2010 07:53:29 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r942022 - in /hadoop/avro/trunk: CHANGES.txt lang/py/src/avro/ipc.py Date: Fri, 07 May 2010 07:53:29 -0000 To: avro-commits@hadoop.apache.org From: hammer@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100507075329.D044023888FE@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: hammer Date: Fri May 7 07:53:29 2010 New Revision: 942022 URL: http://svn.apache.org/viewvc?rev=942022&view=rev Log: AVRO-526. Fall back to pure Python StringIO if cStringIO is not available (hammer via Esteve Fernandez) Modified: hadoop/avro/trunk/CHANGES.txt hadoop/avro/trunk/lang/py/src/avro/ipc.py Modified: hadoop/avro/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=942022&r1=942021&r2=942022&view=diff ============================================================================== --- hadoop/avro/trunk/CHANGES.txt (original) +++ hadoop/avro/trunk/CHANGES.txt Fri May 7 07:53:29 2010 @@ -33,6 +33,9 @@ Avro 1.4.0 (unreleased) AVRO-525. remove unused imports (hammer via Esteve Fernandez) + AVRO-526. Fall back to pure Python StringIO if cStringIO is not available + (hammer via Esteve Fernandez) + BUG FIXES AVRO-461. Skipping primitives in the ruby side (jmhodges) Modified: hadoop/avro/trunk/lang/py/src/avro/ipc.py URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/py/src/avro/ipc.py?rev=942022&r1=942021&r2=942022&view=diff ============================================================================== --- hadoop/avro/trunk/lang/py/src/avro/ipc.py (original) +++ hadoop/avro/trunk/lang/py/src/avro/ipc.py Fri May 7 07:53:29 2010 @@ -17,7 +17,10 @@ Support for inter-process calls. """ import httplib -import cStringIO +try: + from cStringIO import StringIO +except ImportError: + from StringIO import StringIO import struct from avro import io from avro import protocol @@ -128,7 +131,7 @@ class Requestor(object): Writes a request message and reads a response or error message. """ # build handshake and call request - buffer_writer = cStringIO.StringIO() + buffer_writer = StringIO() buffer_encoder = io.BinaryEncoder(buffer_writer) self.write_handshake_request(buffer_encoder) self.write_call_request(message_name, request_datum, buffer_encoder) @@ -138,7 +141,7 @@ class Requestor(object): call_response = self.transceiver.transceive(call_request) # process the handshake and call response - buffer_decoder = io.BinaryDecoder(cStringIO.StringIO(call_response)) + buffer_decoder = io.BinaryDecoder(StringIO(call_response)) call_response_exists = self.read_handshake_response(buffer_decoder) if call_response_exists: return self.read_call_response(message_name, buffer_decoder) @@ -275,9 +278,9 @@ class Responder(object): Called by a server to deserialize a request, compute and serialize a response or error. Compare to 'handle()' in Thrift. """ - buffer_reader = cStringIO.StringIO(call_request) + buffer_reader = StringIO(call_request) buffer_decoder = io.BinaryDecoder(buffer_reader) - buffer_writer = cStringIO.StringIO() + buffer_writer = StringIO() buffer_encoder = io.BinaryEncoder(buffer_writer) error = None response_metadata = {} @@ -326,7 +329,7 @@ class Responder(object): self.write_error(writers_schema, error, buffer_encoder) except schema.AvroException, e: error = AvroRemoteException(str(e)) - buffer_encoder = io.BinaryEncoder(cStringIO.StringIO()) + buffer_encoder = io.BinaryEncoder(StringIO()) META_WRITER.write(response_metadata, buffer_encoder) buffer_encoder.write_boolean(True) self.write_error(SYSTEM_ERROR_SCHEMA, error, buffer_encoder) @@ -397,7 +400,7 @@ class FramedReader(object): def read_framed_message(self): message = [] while True: - buffer = cStringIO.StringIO() + buffer = StringIO() buffer_length = self._read_buffer_length() if buffer_length == 0: return ''.join(message) @@ -483,7 +486,7 @@ class HTTPTransceiver(object): req_resource = '/' req_headers = {'Content-Type': 'avro/binary'} - req_body_buffer = FramedWriter(cStringIO.StringIO()) + req_body_buffer = FramedWriter(StringIO()) req_body_buffer.write_framed_message(message) req_body = req_body_buffer.writer.getvalue()