geoarrow-c 0.3.1


pip install geoarrow-c

  Latest version

Released: Oct 10, 2025


Meta
Author: Dewey Dunnington
Requires Python: >=3.8

Classifiers

geoarrow-c for Python

The geoarrow-c Python package provides bindings to the geoarrow-c implementation of the GeoArrow specification. Its primary purpose is to serve as a dependency to geoarrow-python where needed.

Installation

Python bindings for geoarrow are available on PyPI and can be installed with:

pip install geoarrow-c

You can install a development version with:

python -m pip install "git+https://github.com/geoarrow/geoarrow-c.git#egg=geoarrow-c&subdirectory=python/geoarrow-c"

If you can import the namespace, you're good to go!

import geoarrow.c

Example

Most users should use the higher-level geoarrow-python bindings. If you would like to use the compute kernels exposed via geoarrow-c directly, you will have to use the Arrow C Data interface to pass and retrieve values.

import geoarrow.pyarrow as ga
from geoarrow.c import lib

input_pyarrow = ga.array(["POINT (0 1)"])

type_in = lib.SchemaHolder()
input_pyarrow.type._export_to_c(type_in._addr())
array_in = lib.ArrayHolder()
input_pyarrow._export_to_c(array_in._addr())

kernel = lib.CKernel("box_agg".encode("UTF-8"))
type_out = kernel.start(type_in, bytes())
kernel.push_batch_agg(array_in)
array_out = kernel.finish_agg()

result = pyarrow.Array._import_from_c(array_out._addr(), type_out._addr())

Building

Python bindings for nanoarrow are managed with setuptools. This means you can build the project using:

git clone https://github.com/geoarrow/geoarrow-c.git
cd python
pip install -e geoarrow-c/

Tests use pytest:

# Install dependencies
cd python/geoarrow-c
pip install -e ".[test]"

# Run tests
pytest

Wheel compatibility matrix

Platform CPython 3.8 CPython 3.9 CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14 CPython (additional flags: t) 3.14
macosx_10_13_x86_64
macosx_10_9_x86_64
macosx_11_0_arm64
manylinux_2_24_aarch64
manylinux_2_24_x86_64
manylinux_2_28_aarch64
manylinux_2_28_x86_64
musllinux_1_2_aarch64
musllinux_1_2_x86_64
win32
win_amd64
win_arm64

Files in release

geoarrow_c-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl (557.7KiB)
geoarrow_c-0.3.1-cp310-cp310-macosx_11_0_arm64.whl (545.0KiB)
geoarrow_c-0.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.8MiB)
geoarrow_c-0.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.8MiB)
geoarrow_c-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl (2.7MiB)
geoarrow_c-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl (2.8MiB)
geoarrow_c-0.3.1-cp310-cp310-win32.whl (420.3KiB)
geoarrow_c-0.3.1-cp310-cp310-win_amd64.whl (438.4KiB)
geoarrow_c-0.3.1-cp310-cp310-win_arm64.whl (414.7KiB)
geoarrow_c-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl (561.4KiB)
geoarrow_c-0.3.1-cp311-cp311-macosx_11_0_arm64.whl (548.0KiB)
geoarrow_c-0.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.8MiB)
geoarrow_c-0.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.9MiB)
geoarrow_c-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl (2.7MiB)
geoarrow_c-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl (2.8MiB)
geoarrow_c-0.3.1-cp311-cp311-win32.whl (421.4KiB)
geoarrow_c-0.3.1-cp311-cp311-win_amd64.whl (439.6KiB)
geoarrow_c-0.3.1-cp311-cp311-win_arm64.whl (415.5KiB)
geoarrow_c-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl (561.5KiB)
geoarrow_c-0.3.1-cp312-cp312-macosx_11_0_arm64.whl (547.2KiB)
geoarrow_c-0.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.8MiB)
geoarrow_c-0.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.9MiB)
geoarrow_c-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl (2.7MiB)
geoarrow_c-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl (2.8MiB)
geoarrow_c-0.3.1-cp312-cp312-win32.whl (420.5KiB)
geoarrow_c-0.3.1-cp312-cp312-win_amd64.whl (440.6KiB)
geoarrow_c-0.3.1-cp312-cp312-win_arm64.whl (414.5KiB)
geoarrow_c-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl (563.0KiB)
geoarrow_c-0.3.1-cp313-cp313-macosx_11_0_arm64.whl (553.7KiB)
geoarrow_c-0.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.9MiB)
geoarrow_c-0.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.9MiB)
geoarrow_c-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl (2.8MiB)
geoarrow_c-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl (2.9MiB)
geoarrow_c-0.3.1-cp313-cp313-win32.whl (421.5KiB)
geoarrow_c-0.3.1-cp313-cp313-win_amd64.whl (445.1KiB)
geoarrow_c-0.3.1-cp313-cp313-win_arm64.whl (417.6KiB)
geoarrow_c-0.3.1-cp314-cp314-macosx_10_13_x86_64.whl (563.6KiB)
geoarrow_c-0.3.1-cp314-cp314-macosx_11_0_arm64.whl (554.3KiB)
geoarrow_c-0.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.9MiB)
geoarrow_c-0.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.9MiB)
geoarrow_c-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl (2.8MiB)
geoarrow_c-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl (2.8MiB)
geoarrow_c-0.3.1-cp314-cp314-win32.whl (426.0KiB)
geoarrow_c-0.3.1-cp314-cp314-win_amd64.whl (449.9KiB)
geoarrow_c-0.3.1-cp314-cp314-win_arm64.whl (423.5KiB)
geoarrow_c-0.3.1-cp314-cp314t-macosx_10_13_x86_64.whl (570.8KiB)
geoarrow_c-0.3.1-cp314-cp314t-macosx_11_0_arm64.whl (563.2KiB)
geoarrow_c-0.3.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.9MiB)
geoarrow_c-0.3.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.9MiB)
geoarrow_c-0.3.1-cp314-cp314t-musllinux_1_2_aarch64.whl (2.8MiB)
geoarrow_c-0.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl (2.8MiB)
geoarrow_c-0.3.1-cp314-cp314t-win32.whl (442.1KiB)
geoarrow_c-0.3.1-cp314-cp314t-win_amd64.whl (471.5KiB)
geoarrow_c-0.3.1-cp314-cp314t-win_arm64.whl (431.8KiB)
geoarrow_c-0.3.1-cp38-cp38-macosx_10_9_x86_64.whl (562.4KiB)
geoarrow_c-0.3.1-cp38-cp38-macosx_11_0_arm64.whl (550.4KiB)
geoarrow_c-0.3.1-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.8MiB)
geoarrow_c-0.3.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.8MiB)
geoarrow_c-0.3.1-cp38-cp38-musllinux_1_2_aarch64.whl (2.7MiB)
geoarrow_c-0.3.1-cp38-cp38-musllinux_1_2_x86_64.whl (2.8MiB)
geoarrow_c-0.3.1-cp38-cp38-win32.whl (423.2KiB)
geoarrow_c-0.3.1-cp38-cp38-win_amd64.whl (440.9KiB)
geoarrow_c-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl (557.8KiB)
geoarrow_c-0.3.1-cp39-cp39-macosx_11_0_arm64.whl (545.1KiB)
geoarrow_c-0.3.1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.8MiB)
geoarrow_c-0.3.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.8MiB)
geoarrow_c-0.3.1-cp39-cp39-musllinux_1_2_aarch64.whl (2.7MiB)
geoarrow_c-0.3.1-cp39-cp39-musllinux_1_2_x86_64.whl (2.8MiB)
geoarrow_c-0.3.1-cp39-cp39-win32.whl (420.4KiB)
geoarrow_c-0.3.1-cp39-cp39-win_amd64.whl (438.2KiB)
geoarrow_c-0.3.1-cp39-cp39-win_arm64.whl (414.7KiB)
geoarrow_c-0.3.1.tar.gz (292.0KiB)
Extras:
Dependencies: