Hi all,

We're looking at fixing avroio on Python 3, which still fails due to a
non-picklable schema class in Avro [1]. This is fixed when using the latest
Avro master, but the last release dates back to May 2017.

Fastavro does not have the same problem, but is currently also failing due
to a dependency of avroio on Avro for schema parsing.

We would therefore propose to (temporarily?) deprecate Avro on Python 3,
and implement a pure fastavro solution instead. +Frederik Bode
<[email protected]>  already submitted a PR for this [2].

Use of fastavro is currently activated with the `use_fastavro` flag, which
defaults to False. Since this flag would not make sense anymore on Python
3, we would like to switch the default value to True. The documentation
already mentions that this will probably become the default on the long
term, but this change would also impact Python 2. Is this a problem?

Also, looking at the performance gain of fastavro, is there any reason to
not deprecate Avro in favor of fastavro on Python 3 indefinitely?

[1] https://issues.apache.org/jira/browse/BEAM-6522#comment-16784499
[2] https://github.com/apache/beam/pull/8130

Kind regards,
Robbe

Reply via email to