Skip to content

Commit

Permalink
Use pyarrow.field to preserve nullability in Arrow conversion (#602)
Browse files Browse the repository at this point in the history
* Add nullability flags throughout ak.to_arrow.

* Using nullability flags in ak.from_arrow.

* Streamlined handling of lists and added ak.to_arrow_table.

* Non-nullability passed through Parquet, and Arrow 2.0 can convert records in nested lists through Parquet.

* Fix for Python 2.

* More Python 2 fixes.
  • Loading branch information
jpivarski committed Dec 15, 2020
1 parent e1970c0 commit cad41a3
Show file tree
Hide file tree
Showing 8 changed files with 590 additions and 111 deletions.
12 changes: 0 additions & 12 deletions src/awkward/__init__.py
Expand Up @@ -33,21 +33,9 @@
# third-party connectors
import awkward._connect._numpy
import awkward._connect._numba

numba = type(awkward._connect._numba)("numba")
numba.register = awkward._connect._numba.register

import awkward._connect._numexpr

numexpr = type(awkward._connect._numexpr)("numexpr")
numexpr.evaluate = awkward._connect._numexpr.evaluate
numexpr.re_evaluate = awkward._connect._numexpr.re_evaluate

import awkward._connect._autograd

autograd = type(awkward._connect._autograd)("autograd")
autograd.elementwise_grad = awkward._connect._autograd.elementwise_grad

# high-level interface
behavior = {}
from awkward.highlevel import Array
Expand Down
5 changes: 4 additions & 1 deletion src/awkward/_connect/_autograd.py
Expand Up @@ -2,6 +2,8 @@

from __future__ import absolute_import

import types

import awkward as ak

numpy = ak.nplike.Numpy.instance()
Expand Down Expand Up @@ -83,4 +85,5 @@ def getfunction(inputs):
return broadcast


elementwise_grad.elementwise_grad = elementwise_grad
ak.autograd = types.ModuleType("autograd")
ak.autograd.elementwise_grad = elementwise_grad
5 changes: 5 additions & 0 deletions src/awkward/_connect/_numba/__init__.py
Expand Up @@ -3,6 +3,7 @@
from __future__ import absolute_import

import distutils.version
import types

import awkward as ak

Expand Down Expand Up @@ -108,3 +109,7 @@ def castint(context, builder, fromtype, totype, val):
return builder.trunc(val, context.get_value_type(totype))
else:
return val


ak.numba = types.ModuleType("numba")
ak.numba.register = register
5 changes: 4 additions & 1 deletion src/awkward/_connect/_numexpr.py
Expand Up @@ -5,6 +5,7 @@
import warnings
import sys
import distutils.version
import types

import awkward as ak

Expand Down Expand Up @@ -153,4 +154,6 @@ def getfunction(inputs):
return ak._util.wrap(out[0], behavior)


evaluate.re_evaluate = re_evaluate
ak.numexpr = types.ModuleType("numexpr")
ak.numexpr.evaluate = evaluate
ak.numexpr.re_evaluate = re_evaluate

0 comments on commit cad41a3

Please sign in to comment.