Skip to content

types

arro3.core.types

ArrowArrayExportable

Bases: Protocol

An object with an __arrow_c_array__ method.

Supported objects include:

  • arro3 Array or RecordBatch objects.
  • pyarrow Array or RecordBatch objects

Such an object implements the Arrow C Data Interface interface via the Arrow PyCapsule Interface. This allows for zero-copy Arrow data interchange across libraries.

__arrow_c_array__

__arrow_c_array__(
    requested_schema: object | None = None,
) -> Tuple[object, object]

ArrowSchemaExportable

Bases: Protocol

An object with an __arrow_c_schema__ method.

Supported objects include:

  • arro3 Schema, Field, or DataType objects.
  • pyarrow Schema, Field, or DataType objects.

Such an object implements the Arrow C Data Interface interface via the Arrow PyCapsule Interface. This allows for zero-copy Arrow data interchange across libraries.

__arrow_c_schema__

__arrow_c_schema__() -> object

ArrowStreamExportable

Bases: Protocol

An object with an __arrow_c_stream__ method.

Supported objects include:

  • arro3 Table, RecordBatchReader, ChunkedArray, or ArrayReader objects.
  • Polars Series or DataFrame objects (polars v1.2 or higher)
  • pyarrow RecordBatchReader, Table, or ChunkedArray objects (pyarrow v14 or higher)
  • pandas DataFrames (pandas v2.2 or higher)
  • ibis Table objects.

For an up to date list of supported objects, see this issue.

Such an object implements the Arrow C Stream interface via the Arrow PyCapsule Interface. This allows for zero-copy Arrow data interchange across libraries.

__arrow_c_stream__

__arrow_c_stream__(requested_schema: object | None = None) -> object

BufferProtocolExportable

Bases: Protocol

A python object that implements the Buffer Protocol