[ 
https://issues.apache.org/jira/browse/AVRO-1788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16955536#comment-16955536
 ] 

Michael A. Smith commented on AVRO-1788:
----------------------------------------

I have madeĀ [an incremental PR#683|https://github.com/apache/avro/pull/683] to 
improve future compatibility of the Python 2 codebase. It doesn't entirely 
resolve the differences, but it resolves some of the low-hanging fruit in terms 
of being able to use modern static analysis.

It does remove support for Python versions < 2.7.

Avro is particularly sensitive to the bytes <-> strings <-> unicode differences 
between Python2 and 3, so that will take a fair bit of effort and is not 
included in this PR.

> python api differs unnecessarily between python2 and python3
> ------------------------------------------------------------
>
>                 Key: AVRO-1788
>                 URL: https://issues.apache.org/jira/browse/AVRO-1788
>             Project: Apache Avro
>          Issue Type: Wish
>          Components: python
>            Reporter: Alexander Hasha
>            Assignee: Michael A. Smith
>            Priority: Minor
>
> It is difficult to use the python avro module in projects that maintain 
> simultaneous compatibility between python 2 and python 3, because there are 
> small differences in the API between the two versions in the module that seem 
> unnecessary.
> For example, to parse a schema string in python 2:
> {code}
> from avro.schema import parse
> {code}
> and in python 3:
> {code}
> from avro.schema import Parse
> {code}
> In Python2, DatumReader's constructor has keyword argument "writers_schema", 
> and in Python 3 it becomes "writer_schema" (no s).
> Would it be possible to align method names and arguments across the two 
> modules?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to