Skip to main content

PyPI version Downloads Build Status Rust License: MIT Python Versions

xml2arrow-python

A Python package for efficiently converting XML files to Apache Arrow tables using a YAML configuration. Powered by the xml2arrow Rust crate for high performance.

Features

  • 🚀 High-performance XML parsing via the xml2arrow Rust crate
  • 📊 Declarative mapping from XML structures to Arrow tables using a YAML config file
  • 🔄 Nested structure support with parent–child index columns linking related tables
  • 🎯 Type conversion including automatic scale and offset transforms for float fields
  • 💡 Attribute and element extraction using @-prefixed path segments for attributes
  • ⏹️ Early termination via stop_at_paths for efficiently reading only part of a file
  • 🐍 Flexible input — accepts file paths, path-like objects, readable file-like objects, or in-memory bytes/bytearray (parsed zero-copy, no intermediate buffering)
  • 🧵 Thread-friendly — the GIL is released while parsing, so threads sharing one parser instance can parse multiple documents in parallel
  • 🌊 Bounded-memory streaming for documents larger than RAM — parse_batches() yields batches incrementally, and parse_single_table() returns a native pyarrow.RecordBatchReader for Parquet/dataset/DuckDB pipelines

Installation

pip install xml2arrow

Usage

1. Write a configuration file

The YAML configuration defines which parts of the XML document become tables and how their fields are typed. The full schema is:

parser_options:
  trim_text: <true|false>      # Trim whitespace from text nodes (default: false)
  stop_at_paths: [<xml_path>]  # Stop parsing after these closing tags (optional,
                               # useful for reading only a file header)
tables:
  - name: <table_name>         # Name of the resulting PyArrow RecordBatch
    xml_path: <xml_path>       # Path to the element whose children are rows.
                               # Use "/" to treat the whole document as one row.
    levels: [<level>, ...]     # Parent-link index columns — see "Nested tables"
    fields:
      - name: <field_name>     # Column name
        xml_path: <field_path> # Path to the element or attribute holding the value.
                               # Prefix the last segment with @ for attributes
                               # (e.g. /library/book/@id)
        data_type: <type>      # Arrow data type — see supported types below
        nullable: <true|false> # Whether the field can be null (default: false)
                               # If false, missing/empty tags cause a ParseError.
        scale: <number>        # Multiply float values by this factor (optional)
        offset: <number>       # Add this value to float values after scaling (optional)
                               # value = (value * scale) + offset

Supported data types: Boolean, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Float32, Float64, Utf8

Boolean fields accept (case-insensitively): true, false, 1, 0, yes, no, on, off, t, f, y, n.

2. Nested tables and levels

When your XML has a parent–child relationship between tables, levels creates the index columns that link child rows back to their parent rows. Each string in the list names an element at a nesting boundary above the row element, and generates a zero-based uint32 column named <level> in the output.

Note: If a table is defined purely to establish a structural hierarchy (i.e., it has levels defined but an empty fields list), it acts only as a boundary and will be excluded from the final output map.

For example, given stations that each have multiple measurements:

<report>
  <monitoring_stations>
    <monitoring_station>   <!-- boundary → produces <station> index -->
      <measurements>
        <measurement>      <!-- row element for the measurements table -->
          ...
        </measurement>
      </measurements>
    </monitoring_station>
  </monitoring_stations>
</report>
- name: measurements
  xml_path: /report/monitoring_stations/monitoring_station/measurements
  levels: [station, measurement]
  fields: [...]

This produces a <station> column (which parent station each measurement belongs to) and a <measurement> column (the per-station row counter), letting you join the measurements table back to the stations table on <station>.

3. Parse the XML

import polars as pl
from xml2arrow import XmlToArrowParser

parser = XmlToArrowParser("config.yaml")
record_batches = parser.parse("data.xml")  # also accepts pathlib.Path, bytes,
                                           # bytearray, or any file-like object

# Access a table by name
batch = record_batches["measurements"]     # pyarrow.RecordBatch

# Convert to a pandas DataFrame
df = batch.to_pandas()

# Convert to a Polars DataFrame
df = pl.from_arrow(batch)

# Convert to a PyArrow Table
import pyarrow as pa
table = pa.Table.from_batches([batch])

parse() returns a dict[str, pyarrow.RecordBatch] whose keys are the table names defined in your config. Because the values are standard PyArrow RecordBatch objects they integrate directly with pandas, Polars, DuckDB, and any other tool in the Arrow ecosystem.

Tip: Constructing an XmlToArrowParser validates the config and compiles its path lookup table once, up front. When processing many files with the same config, build the parser once and reuse it across parse() calls — this amortizes that fixed setup cost and is noticeably faster than creating a new parser per file, especially for many small documents.

parser = XmlToArrowParser("config.yaml")  # validate + compile once
for path in xml_files:
    record_batches = parser.parse(path)   # reused for every file
    ...

4. Streaming documents too large for memory

parse() materializes every table in full, so peak memory grows with the document. For XML files that don't fit in memory (multi-GB exports, Wikipedia-style dumps), parse_batches() yields each table's rows incrementally as (table_name, batch) tuples — memory stays bounded by the batch limits, and parsing runs on a background Rust thread that overlaps with your processing:

parser = XmlToArrowParser("config.yaml")

for name, batch in parser.parse_batches("huge.xml"):
    writers[name].write_batch(batch)   # e.g. per-table ParquetWriter

Concatenating a table's batches in yield order reproduces exactly what parse() would have returned. Batches flush at 8192 rows or 128 MiB of accumulated values per table (tune with max_rows_per_batch / max_bytes_per_batch), and parser.schema(name) provides any table's schema up front for schema-first sinks. One caveat inherent to single-pass XML: a parent element closes after its children, so a child batch can reference a parent row that arrives in a later batch of the parent table — irrelevant when each table goes to its own sink.

When the config defines exactly one table with fields — the common shape for huge documents — parse_single_table() returns a native pyarrow.RecordBatchReader, pluggable directly into pyarrow.parquet.ParquetWriter, pyarrow.dataset, or DuckDB:

import pyarrow.parquet as pq

reader = parser.parse_single_table("huge.xml")
with pq.ParquetWriter("out.parquet", reader.schema) as writer:
    for batch in reader:
        writer.write_batch(batch)

Example

This example extracts meteorological station data from a nested XML document into three linked Arrow tables.

XML data (stations.xml)

<report>
  <header>
    <title>Meteorological Station Data</title>
    <created_by>National Weather Service</created_by>
    <creation_time>2024-12-30T13:59:15Z</creation_time>
  </header>
  <monitoring_stations>
    <monitoring_station id="MS001">
      <location>
        <latitude>-61.39110459389277</latitude>
        <longitude>48.08662749089257</longitude>
        <elevation>547.1050788360882</elevation>
      </location>
      <measurements>
        <measurement>
          <timestamp>2024-12-30T12:39:15Z</timestamp>
          <temperature unit="C">35.486545480326114</temperature>
          <pressure unit="hPa">950.439973486407</pressure>
          <humidity unit="%">49.77716576844861</humidity>
        </measurement>
        <measurement>
          <timestamp>2024-12-30T12:44:15Z</timestamp>
          <temperature unit="C">29.095166644493865</temperature>
          <pressure unit="hPa">1049.3215015450517</pressure>
          <humidity unit="%">32.5687148391251</humidity>
        </measurement>
      </measurements>
      <metadata>
        <description>Located in the Arctic Tundra area, used for Scientific Research.</description>
        <install_date>2024-03-31</install_date>
      </metadata>
    </monitoring_station>
    <monitoring_station id="MS002">
      <location>
        <latitude>11.891496388319311</latitude>
        <longitude>135.09336983543022</longitude>
        <elevation>174.53349357280004</elevation>
      </location>
      <measurements>
        <measurement>
          <timestamp>2024-12-30T12:39:15Z</timestamp>
          <temperature unit="C">24.791842953632283</temperature>
          <pressure unit="hPa">989.4054287187706</pressure>
          <humidity unit="%">57.70794884397625</humidity>
        </measurement>
        <measurement>
          <timestamp>2024-12-30T12:44:15Z</timestamp>
          <temperature unit="C">15.153690541845911</temperature>
          <pressure unit="hPa">1001.413052919951</pressure>
          <humidity unit="%">45.45094598045342</humidity>
        </measurement>
        <measurement>
          <timestamp>2024-12-30T12:49:15Z</timestamp>
          <temperature unit="C">-4.022555715139081</temperature>
          <pressure unit="hPa">1000.5225751769922</pressure>
          <humidity unit="%">70.40117458947834</humidity>
        </measurement>
        <measurement>
          <timestamp>2024-12-30T12:54:15Z</timestamp>
          <temperature unit="C">25.852920542644185</temperature>
          <pressure unit="hPa">953.762785698162</pressure>
          <humidity unit="%">42.62088244545566</humidity>
        </measurement>
      </measurements>
      <metadata>
        <description>Located in the Desert area, used for Weather Forecasting.</description>
        <install_date>2024-01-17</install_date>
      </metadata>
    </monitoring_station>
  </monitoring_stations>
</report>

Configuration (stations.yaml)

tables:
  - name: report
    xml_path: /
    levels: []
    fields:
      - name: title
        xml_path: /report/header/title
        data_type: Utf8
      - name: created_by
        xml_path: /report/header/created_by
        data_type: Utf8
      - name: creation_time
        xml_path: /report/header/creation_time
        data_type: Utf8

  - name: stations
    xml_path: /report/monitoring_stations
    levels:
      - station
    fields:
      - name: id
        xml_path: /report/monitoring_stations/monitoring_station/@id
        data_type: Utf8
      - name: latitude
        xml_path: /report/monitoring_stations/monitoring_station/location/latitude
        data_type: Float32
      - name: longitude
        xml_path: /report/monitoring_stations/monitoring_station/location/longitude
        data_type: Float32
      - name: elevation
        xml_path: /report/monitoring_stations/monitoring_station/location/elevation
        data_type: Float32
      - name: description
        xml_path: /report/monitoring_stations/monitoring_station/metadata/description
        data_type: Utf8
      - name: install_date
        xml_path: /report/monitoring_stations/monitoring_station/metadata/install_date
        data_type: Utf8

  - name: measurements
    xml_path: /report/monitoring_stations/monitoring_station/measurements
    levels:
      - station      # Links each measurement back to its parent station
      - measurement
    fields:
      - name: timestamp
        xml_path: /report/monitoring_stations/monitoring_station/measurements/measurement/timestamp
        data_type: Utf8
      - name: temperature
        xml_path: /report/monitoring_stations/monitoring_station/measurements/measurement/temperature
        data_type: Float64
        offset: 273.15   # Convert °C → K
      - name: pressure
        xml_path: /report/monitoring_stations/monitoring_station/measurements/measurement/pressure
        data_type: Float64
        scale: 100.0     # Convert hPa → Pa
      - name: humidity
        xml_path: /report/monitoring_stations/monitoring_station/measurements/measurement/humidity
        data_type: Float64

Parsing and using the output

import polars as pl
from xml2arrow import XmlToArrowParser

parser = XmlToArrowParser("stations.yaml")
record_batches = parser.parse("stations.xml")

stations_df = pl.from_arrow(record_batches["stations"])
measurements_df = pl.from_arrow(record_batches["measurements"])

# Join measurements back to their parent station using the <station> index
merged = measurements_df.join(
    stations_df.select(["<station>", "id"]),
    on="<station>",
)
print(merged.select(["id", "timestamp", "temperature", "pressure"]))

Output

- report:
 ┌─────────────────────────────┬──────────────────────────┬──────────────────────┐
 │ title                       ┆ created_by               ┆ creation_time        │
 │ ---                         ┆ ---                      ┆ ---                  │
 │ str                         ┆ str                      ┆ str                  │
 ╞═════════════════════════════╪══════════════════════════╪══════════════════════╡
 │ Meteorological Station Data ┆ National Weather Service ┆ 2024-12-30T13:59:15Z │
 └─────────────────────────────┴──────────────────────────┴──────────────────────┘

- stations:
 ┌───────────┬───────┬────────────┬────────────┬────────────┬────────────────────────┬──────────────┐
 │ <station> ┆ id    ┆ latitude   ┆ longitude  ┆ elevation  ┆ description            ┆ install_date │
 │ ---       ┆ ---   ┆ ---        ┆ ---        ┆ ---        ┆ ---                    ┆ ---          │
 │ u32       ┆ str   ┆ f32        ┆ f32        ┆ f32        ┆ str                    ┆ str          │
 ╞═══════════╪═══════╪════════════╪════════════╪════════════╪════════════════════════╪══════════════╡
 │ 0         ┆ MS001 ┆ -61.391106 ┆ 48.086628  ┆ 547.105103 ┆ Located in the Arctic  ┆ 2024-03-31   │
 │           ┆       ┆            ┆            ┆            ┆ Tundra a…              ┆              │
 │ 1         ┆ MS002 ┆ 11.891497  ┆ 135.093369 ┆ 174.533493 ┆ Located in the Desert  ┆ 2024-01-17   │
 │           ┆       ┆            ┆            ┆            ┆ area, us…              ┆              │
 └───────────┴───────┴────────────┴────────────┴────────────┴────────────────────────┴──────────────┘

- measurements:
 ┌───────────┬───────────────┬──────────────────────┬─────────────┬───────────────┬───────────┐
 │ <station> ┆ <measurement> ┆ timestamp            ┆ temperature ┆ pressure      ┆ humidity  │
 │ ---       ┆ ---           ┆ ---                  ┆ ---         ┆ ---           ┆ ---       │
 │ u32       ┆ u32           ┆ str                  ┆ f64         ┆ f64           ┆ f64       │
 ╞═══════════╪═══════════════╪══════════════════════╪═════════════╪═══════════════╪═══════════╡
 │ 0         ┆ 0             ┆ 2024-12-30T12:39:15Z ┆ 308.636545  ┆ 95043.997349  ┆ 49.777166 │
 │ 0         ┆ 1             ┆ 2024-12-30T12:44:15Z ┆ 302.245167  ┆ 104932.150155 ┆ 32.568715 │
 │ 1         ┆ 0             ┆ 2024-12-30T12:39:15Z ┆ 297.941843  ┆ 98940.542872  ┆ 57.707949 │
 │ 1         ┆ 1             ┆ 2024-12-30T12:44:15Z ┆ 288.303691  ┆ 100141.305292 ┆ 45.450946 │
 │ 1         ┆ 2             ┆ 2024-12-30T12:49:15Z ┆ 269.127444  ┆ 100052.257518 ┆ 70.401175 │
 │ 1         ┆ 3             ┆ 2024-12-30T12:54:15Z ┆ 299.002921  ┆ 95376.27857   ┆ 42.620882 │
 └───────────┴───────────────┴──────────────────────┴─────────────┴───────────────┴───────────┘

The <station> index in the measurements table links each measurement to its parent station by row position, enabling a join on stations.<station> = measurements.<station>.

Release files for xml2arrow 0.19.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xml2arrow 0.19.0
File Size Uploaded
xml2arrow-0.19.0.tar.gz 48.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for xml2arrow 0.19.0
File
xml2arrow-0.19.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
xml2arrow-0.19.0-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_armv7l.whl CPython 3.10 abi3 Linux musl 1.2+ ARMv7l Details
xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.10 abi3 Linux glibc 2.17+ IBM System/390x Details
xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.10 abi3 Linux glibc 2.17+ PowerPC 64-le Details
xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
xml2arrow-0.19.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.10 abi3 Linux glibc 2.12+ x86-32 Details
xml2arrow-0.19.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
xml2arrow-0.19.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 8.7 MB

Release files / xml2arrow-0.19.0.tar.gz

Download URL xml2arrow-0.19.0.tar.gz
Size 48.6 kB
Tags Source
SHA-256 checksum
How to use checksums
83dbd096fdbbf286390b972e60147dc771cc2d48c001d0bb5257555bb5d7ab64
BLAKE2b-256 checksum
How to use checksums
a3b96913c62b410b900d441d19b4251532371f72261f2410a12d4d8e37620640
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-win_amd64.whl

Download URL xml2arrow-0.19.0-cp310-abi3-win_amd64.whl
Size 500.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
6edf2ae4a2b07a159683d61be1fe91427796fec991c3cbb8c9a39cdf4f4c7c37
BLAKE2b-256 checksum
How to use checksums
2209845c222952f7e16d5015e5c7f1e1f949ac79dc6a4d36ac878ff923ff4e18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-win32.whl

Download URL xml2arrow-0.19.0-cp310-abi3-win32.whl
Size 467.7 kB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
e0b7fbe528fdc19f6602f73bed158fd644f4f16c12b62b0cd170a8fb7aa70f21
BLAKE2b-256 checksum
How to use checksums
021e0d5940db0497e9999cc2b20339be1c0d4a031c7cf4c96503b1510970961e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 780.2 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
a01aaf133fbe4510374bbe3463d8f5963c14b47b68c05445d36c580439deb814
BLAKE2b-256 checksum
How to use checksums
f0bfc97864d7a099006d30c3f2ae743b084e1b09993f6d2b3fa5ae660d575ff9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_i686.whl

Download URL xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_i686.whl
Size 806.0 kB
Tags CPython 3.10 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
aaf32c459f8781a70cf0d03e7539ae2e744a61b50b41a1b59e729345b6d1b0b5
BLAKE2b-256 checksum
How to use checksums
d2903c33d150b196ef30b7bb5582fc57df7526d3ffdd6f709ccce4a2b5384676
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_armv7l.whl

Download URL xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_armv7l.whl
Size 835.6 kB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
a5b680a7c53201e7da58356e525b6b44bda403fac2ee39be9a991508fbac312c
BLAKE2b-256 checksum
How to use checksums
a754160f97201f8f74370cd989ff2ca4ab48ed1162b00d6809744c017c5c8d55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL xml2arrow-0.19.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 722.4 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
08519a9da78f65134abb4fc3c475c90c3c8f4bb3e536ad832d42caa0cdaa3bab
BLAKE2b-256 checksum
How to use checksums
9e2ecb30522eba90844eaaaebc32a566d698ffa4a82a9383dd445832d99e01a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 567.2 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
a50389897824ed2d76791c3b19b37da9e3ffa1acc7ad6b564f31908b4e22653b
BLAKE2b-256 checksum
How to use checksums
86ac07e320bfec23006b270f10f09ef41342ddc5426095b41a8e05df378b0e29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 637.4 kB
Tags CPython 3.10 Linux glibc 2.17+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
5e3453162ca0c550065d5af9f9c427b627da3808bc2e242dc29170e20555eb0d
BLAKE2b-256 checksum
How to use checksums
6a3fcfab4799cb4b03c2138f7d2ee7e8d88c8cffd32e2e142868626165ff2c3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 618.5 kB
Tags CPython 3.10 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
8a1ad8ee835dd7ff2ea345d1515c632b0040d175a52e193136d616e40ae7858f
BLAKE2b-256 checksum
How to use checksums
25368c76e1609bfd817a14930fda2cfb08b65628777cf46a717b5db85cdafc60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 558.4 kB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
3f062c629dc0a6a52027ceaad0d383e441a0cc22976abeaa60ffa8cd619cbdaa
BLAKE2b-256 checksum
How to use checksums
215167554f07360d188295e75c0c1ca8f641ab423300751f92793dbe168449c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL xml2arrow-0.19.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 544.6 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
1882c96a91a67131b5cdd74b015438a8531e9fde78c11e889070d03cc87c099c
BLAKE2b-256 checksum
How to use checksums
e0133f6913d064c8f91584815e0dd1e8fc6a9de0ea83b567a4e78c7a90e12663
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL xml2arrow-0.19.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
Size 597.0 kB
Tags CPython 3.10 Linux glibc 2.12+ x86-32 abi3
SHA-256 checksum
How to use checksums
a0189622ef81e6a959edaa9df49352edf9a667664a42aa5495809e758bd7c60b
BLAKE2b-256 checksum
How to use checksums
98dd8c3104c021e8688ad084cd38fe6629da4fc94d9a1bb6624a9214e1cb3132
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL xml2arrow-0.19.0-cp310-abi3-macosx_11_0_arm64.whl
Size 521.4 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
115936ca62d43b6549fb41ad73a3b0a37dc33eda89ea187ac5bd0de1645bea8b
BLAKE2b-256 checksum
How to use checksums
088d069d5374cdb9a64dcddc8e6a993e93cf4779505159eb87912d4f5ac37c7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / xml2arrow-0.19.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL xml2arrow-0.19.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 542.5 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1468bbc285b6404cce58ea2fc6a3d875190e081f749447db454647bb44126875
BLAKE2b-256 checksum
How to use checksums
6e09108b1827e88acd80256cc84d38441dab7cb96cec94ee6e6a1c194a7f2389
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page