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/08/27 22:51:33 UTC
svn commit: r990264 - in /avro/trunk: CHANGES.txt lang/py/src/avro/schema.py
Author: cutting
Date: Fri Aug 27 20:51:33 2010
New Revision: 990264
URL: http://svn.apache.org/viewvc?rev=990264&view=rev
Log:
AVRO-639. Use namespace-unqualified names for references to schemas in the same namespace.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/py/src/avro/schema.py
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=990264&r1=990263&r2=990264&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Fri Aug 27 20:51:33 2010
@@ -149,6 +149,9 @@ Avro 1.4.0 (unreleased)
AVRO-632. Java: Change RPC responder to log stack traces for user
exceptions. (cutting)
+ AVRO-639. Python: Use namespace-unqualified names for references
+ to schemas in the same namespace. (cutting)
+
BUG FIXES
AVRO-622. python avro.ipc doesn't work with python2.4 (philz)
Modified: avro/trunk/lang/py/src/avro/schema.py
URL: http://svn.apache.org/viewvc/avro/trunk/lang/py/src/avro/schema.py?rev=990264&r1=990263&r2=990264&view=diff
==============================================================================
--- avro/trunk/lang/py/src/avro/schema.py (original)
+++ avro/trunk/lang/py/src/avro/schema.py Fri Aug 27 20:51:33 2010
@@ -271,6 +271,11 @@ class NamedSchema(Schema):
# Store full name as calculated from name, namespace
self._fullname = new_name.fullname
+ def name_ref(self, names):
+ if self.namespace == names.default_namespace:
+ return self.name
+ else:
+ return self.fullname
# read-only properties
name = property(lambda self: self.get_prop('name'))
@@ -378,7 +383,7 @@ class FixedSchema(NamedSchema):
def to_json(self, names):
if self.fullname in names.names:
- return self.fullname
+ return self.name_ref(names)
else:
names.names[self.fullname] = self
return self.props
@@ -410,7 +415,7 @@ class EnumSchema(NamedSchema):
def to_json(self, names):
if self.fullname in names.names:
- return self.fullname
+ return self.name_ref(names)
else:
names.names[self.fullname] = self
return self.props
@@ -614,7 +619,7 @@ class RecordSchema(NamedSchema):
return [ f.to_json(names) for f in self.fields ]
if self.fullname in names.names:
- return self.fullname
+ return self.name_ref(names)
else:
names.names[self.fullname] = self