You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Ryan Blue (JIRA)" <ji...@apache.org> on 2015/01/08 22:50:36 UTC
[jira] [Commented] (AVRO-1291) Python library missing strict JSON
encode/decoe
[ https://issues.apache.org/jira/browse/AVRO-1291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14270091#comment-14270091 ]
Ryan Blue commented on AVRO-1291:
---------------------------------
Hi Sergei, sorry to keep you waiting on a review.
Could you clarify what your additions do to help me review the patch? I think that the "hinting" referenced in the description was in reference to the way that unions are encoded in JSON: as an object that tells you both the union branch as well as the value. Your patch uses HINTS_ALL for to turn this on, with an additional option for Pegasus-style JSON?
The primary changes look like they are to the DatumReader/DatumWriter - why are they there instead of in the encoder/decoder?
What are the changes to schema.py for?
Thanks!
> Python library missing strict JSON encode/decoe
> -----------------------------------------------
>
> Key: AVRO-1291
> URL: https://issues.apache.org/jira/browse/AVRO-1291
> Project: Avro
> Issue Type: Bug
> Components: python
> Affects Versions: 1.7.7
> Reporter: Jeremy Kahn
> Attachments: avro.diff
>
>
> The Python Avro libraries don't actually have a proper JSON decoder or encoder, because they don't handle the [type-hinting for unions|http://avro.apache.org/docs/current/spec.html#json_encoding] properly.
> The Python {{avro.io}} library should provide a pair of {{StrictJsonEncoder,StrictJsonDecoder}}} classes that correctly include (and decode) the type hints when the schema expects a union.
> Jonathan Coveney [raised this concern|http://mail-archives.apache.org/mod_mbox/avro-user/201304.mbox/%3CCAKne9Z6nkYXwb4QzPr4qNyH1o7TnL1674MspgnHuKMuD2imguQ%40mail.gmail.com%3E] on the Avro User mailing list.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)