[ https://issues.apache.org/jira/browse/AVRO-2183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Fokko Driesprong resolved AVRO-2183. ------------------------------------ Resolution: Fixed Assignee: Michael A. Smith Hadoop Flags: Reviewed Fix Version/s: 1.9.0 > Nameless schema should raise AttributeError when attempting to access name > -------------------------------------------------------------------------- > > Key: AVRO-2183 > URL: https://issues.apache.org/jira/browse/AVRO-2183 > Project: Apache Avro > Issue Type: Bug > Components: python > Reporter: Michael A. Smith > Assignee: Michael A. Smith > Priority: Major > Fix For: 1.9.0 > > > In the "py" implementation, this works as expected: > {noformat} > >>> from avro.schema import parse > >>> s = parse('{"type": "array", "items": "int"}') > >>> s.name > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > AttributeError: 'ArraySchema' object has no attribute 'name'{noformat} > but in the py3 implementation, a {{NameError}} is raised instead: > {noformat} > >>> from avro.schema import Parse > >>> s=Parse('{"type":"array","items":"int"}') > >>> s.name > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/home/michaels/dev/avro/lang/py3/avro/schema.py", line 224, in name > return self._props['name'] > KeyError: 'name'{noformat} > This behavior breaks several python idioms, including the ability to get a > default value using {{getattr}}: > {noformat} > >>> getattr(s, "name", "default") > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/home/michaels/dev/avro/lang/py3/avro/schema.py", line 224, in name > return self._props['name'] > KeyError: 'name'{noformat} > I will open a PR with tests and a fix. -- This message was sent by Atlassian JIRA (v7.6.3#76005)