Skip to main content

Convert from protobuf to arrow and back

Project description

PyPI Version Python Version Github Stars codecov Build Status Documentation License Downloads Downloads Code style: black snyk

Protarrow

Protarrow is a python library for converting from Protocol Buffers to Apache Arrow and back.

It is used at Tradewell Technologies, to share data between transactional and analytical applications, with little boilerplate code and zero data loss.

Installation

pip install protarrow

Usage

Taking a simple protobuf:

message MyProto {
  string name = 1;
  int32 id = 2;
  repeated int32 values = 3;
}

It can be converted to a pyarrow.Table:

import protarrow

my_protos = [
    MyProto(name="foo", id=1, values=[1, 2, 4]),
    MyProto(name="bar", id=2, values=[3, 4, 5]),
]

table = protarrow.messages_to_table(my_protos, MyProto)
name id values
foo 1 [1 2 4]
bar 2 [3 4 5]

And the table can be converted back to proto:

protos_from_table = protarrow.table_to_messages(table, MyProto)

See the documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

protarrow-0.8.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

protarrow-0.8.0-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file protarrow-0.8.0.tar.gz.

File metadata

  • Download URL: protarrow-0.8.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.10.15 Linux/6.5.0-1025-azure

File hashes

Hashes for protarrow-0.8.0.tar.gz
Algorithm Hash digest
SHA256 6a9e239bc11ad4ad35e90c48e7acec67666628e6fa9907881d8d267272c1294b
MD5 73380c7beac6abb10bf1283e85158f0d
BLAKE2b-256 0083668797be459b133d51a01421884eb3cdd7f5e95c3380bc1c9e733a84081e

See more details on using hashes here.

File details

Details for the file protarrow-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: protarrow-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.10.15 Linux/6.5.0-1025-azure

File hashes

Hashes for protarrow-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba8826767e3112fa17e810917f8b9beda3475609a4533036ad18439076eae32a
MD5 84b16d64ac7743b1581d4029ceb266bc
BLAKE2b-256 0c7c02be4a55851f3fc0c6b21e89c240e0afe85ff31ced1d7de77079c90d66c1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page