[ https://issues.apache.org/jira/browse/AVRO-2183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16682288#comment-16682288 ]
ASF subversion and git services commented on AVRO-2183: ------------------------------------------------------- Commit ca1ef06d87424630f80ade31afcd8a1108dd5fed in avro's branch refs/heads/master from [~kojiro] [ https://gitbox.apache.org/repos/asf?p=avro.git;h=ca1ef06 ] AVRO-2183 Provide name only for named schema (#313) Otherwise, allow python to raise an AttributeError > 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 > Priority: Major > > 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)