You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2010/10/08 23:15:00 UTC
svn commit: r1006021 - in /avro/trunk: CHANGES.txt lang/py/src/avro/io.py
lang/py/test/test_io.py
Author: cutting
Date: Fri Oct 8 21:14:58 2010
New Revision: 1006021
URL: http://svn.apache.org/viewvc?rev=1006021&view=rev
Log:
AVRO-537. Python: Remove unneeded schema validations. Contributed by Erik Frey.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/py/src/avro/io.py
avro/trunk/lang/py/test/test_io.py
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1006021&r1=1006020&r2=1006021&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Fri Oct 8 21:14:58 2010
@@ -21,6 +21,11 @@ Avro 1.4.1 (unreleased)
AVRO-634. Java: Add support for reading Hadoop sequence files as
Avro data to MapReduce API. (cutting)
+ OPTIMIZATIONS
+
+ AVRO-537. Python: Remove unneeded schema validations.
+ (Erik Frey via cutting)
+
IMPROVEMENTS
AVRO-655. Change build so that 'dist' target no longer also runs C
Modified: avro/trunk/lang/py/src/avro/io.py
URL: http://svn.apache.org/viewvc/avro/trunk/lang/py/src/avro/io.py?rev=1006021&r1=1006020&r2=1006021&view=diff
==============================================================================
--- avro/trunk/lang/py/src/avro/io.py (original)
+++ avro/trunk/lang/py/src/avro/io.py Fri Oct 8 21:14:58 2010
@@ -743,13 +743,13 @@ class DatumWriter(object):
set_writers_schema)
def write(self, datum, encoder):
+ # validate datum
+ if not validate(self.writers_schema, datum):
+ raise AvroTypeException(self.writers_schema, datum)
+
self.write_data(self.writers_schema, datum, encoder)
def write_data(self, writers_schema, datum, encoder):
- # validate datum
- if not validate(writers_schema, datum):
- raise AvroTypeException(writers_schema, datum)
-
# function dispatch to write datum
if writers_schema.type == 'null':
encoder.write_null(datum)
Modified: avro/trunk/lang/py/test/test_io.py
URL: http://svn.apache.org/viewvc/avro/trunk/lang/py/test/test_io.py?rev=1006021&r1=1006020&r2=1006021&view=diff
==============================================================================
--- avro/trunk/lang/py/test/test_io.py (original)
+++ avro/trunk/lang/py/test/test_io.py Fri Oct 8 21:14:58 2010
@@ -324,5 +324,14 @@ class TestIO(unittest.TestCase):
print 'Datum Read: %s' % datum_read
self.assertEquals(datum_to_read, datum_read)
+ def test_type_exception(self):
+ print_test_name('TEST TYPE EXCEPTION')
+ writers_schema = schema.parse("""\
+ {"type": "record", "name": "Test",
+ "fields": [{"name": "F", "type": "int"},
+ {"name": "E", "type": "int"}]}""")
+ datum_to_write = {'E': 5, 'F': 'Bad'}
+ self.assertRaises(io.AvroTypeException, write_datum, datum_to_write, writers_schema)
+
if __name__ == '__main__':
unittest.main()