Author: sharad
Date: Tue Oct 20 06:25:37 2009
New Revision: 826972

URL: http://svn.apache.org/viewvc?rev=826972&view=rev
Log:
AVRO-155. Make python avro.io.DataFileReader iterable. Contributed by Jeff 
Hammerbacher.

Modified:
    hadoop/avro/trunk/CHANGES.txt
    hadoop/avro/trunk/src/py/avro/io.py
    hadoop/avro/trunk/src/test/py/testio.py

Modified: hadoop/avro/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=826972&r1=826971&r2=826972&view=diff
==============================================================================
--- hadoop/avro/trunk/CHANGES.txt (original)
+++ hadoop/avro/trunk/CHANGES.txt Tue Oct 20 06:25:37 2009
@@ -15,6 +15,9 @@
 
     AVRO-147. Use configure to create makefile for C++ builds. (sbanacho)
 
+    AVRO-155. Make python avro.io.DataFileReader iterable.
+    (Jeff Hammerbacher via sharad)
+
   OPTIMIZATIONS
 
   BUG FIXES

Modified: hadoop/avro/trunk/src/py/avro/io.py
URL: 
http://svn.apache.org/viewvc/hadoop/avro/trunk/src/py/avro/io.py?rev=826972&r1=826971&r2=826972&view=diff
==============================================================================
--- hadoop/avro/trunk/src/py/avro/io.py (original)
+++ hadoop/avro/trunk/src/py/avro/io.py Tue Oct 20 06:25:37 2009
@@ -323,6 +323,9 @@
     self.__dreader.setschema(self.__schema)
     self.__reader.seek(len(_MAGIC))
 
+  def __iter__(self):
+    return self
+
   def getmeta(self, key):
     """Return the value of a metadata property."""
     return self.__meta.get(key)
@@ -331,7 +334,7 @@
     """Return the next datum in the file."""
     while self.__blockcount == 0:
       if self.__reader.tell() == self.__length:
-        return None
+        raise StopIteration
       self.__skipsync()
       self.__blockcount = self.__decoder.readlong()
       if self.__blockcount == _FOOTER_BLOCK:

Modified: hadoop/avro/trunk/src/test/py/testio.py
URL: 
http://svn.apache.org/viewvc/hadoop/avro/trunk/src/test/py/testio.py?rev=826972&r1=826971&r2=826972&view=diff
==============================================================================
--- hadoop/avro/trunk/src/test/py/testio.py (original)
+++ hadoop/avro/trunk/src/test/py/testio.py Tue Oct 20 06:25:37 2009
@@ -220,10 +220,12 @@
     dw.close()
     randomData = self.__random(schm, seed)
     dr = io.DataFileReader(open(_FILE, "rb"), self.__datumreader())
-    for i in range(0,count):
-      data = randomData.next()
+    count_read = 0
+    for data in dr:
+      count_read = count_read + 1
       if self.__assertdata:
-        self.assertEquals(data, dr.next())
+        self.assertEquals(randomData.next(), data)
+    self.assertEquals(count, count_read)
 
 if __name__ == '__main__':
   if len(sys.argv) != 4:


Reply via email to