Skip to main content

Efficiently convert XML data to Apache Arrow format.

Project description

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, or any file-like object

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 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.

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>.

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

xml2arrow-0.16.0.tar.gz (32.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xml2arrow-0.16.0-cp310-abi3-win_amd64.whl (476.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

xml2arrow-0.16.0-cp310-abi3-win32.whl (449.1 kB view details)

Uploaded CPython 3.10+Windows x86

xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_x86_64.whl (871.9 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_i686.whl (916.9 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_armv7l.whl (937.0 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_aarch64.whl (837.4 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (888.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (712.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (665.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (663.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

xml2arrow-0.16.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (717.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

xml2arrow-0.16.0-cp310-abi3-macosx_11_0_arm64.whl (599.1 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

xml2arrow-0.16.0-cp310-abi3-macosx_10_12_x86_64.whl (609.2 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file xml2arrow-0.16.0.tar.gz.

File metadata

  • Download URL: xml2arrow-0.16.0.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for xml2arrow-0.16.0.tar.gz
Algorithm Hash digest
SHA256 8a2de6601212edee292c7cbaa8b089e13d2afe1909d4c89a1226f4528bfe01fb
MD5 9239f846e9395d74bc867c7298d569ef
BLAKE2b-256 41bdabbf0973d2867fda51b498e27a945f8da70f04b129a7542e61ed2ef401bf

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 eacc111c7f5896edfe2abe8ba4c50ed3bbd77b295c4a017e5fed4450ed0a96fd
MD5 e7286302041e6a05194a9bebb256a3e4
BLAKE2b-256 75a52ac88d4cb43094c22a7ea9c12418b1340e921cebd0a9f20c1fd828d0c071

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-win32.whl.

File metadata

  • Download URL: xml2arrow-0.16.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 449.1 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 d0abcc5bed8942510ec3ad183455a1d0078dac1df9da78450fde93730b76340d
MD5 3b81d85c299ea3c672a496f82f621b64
BLAKE2b-256 8c76979ad2e3a1ee1eb47bc4c0ca31dca2909329dd8e130ff81afd5650910be3

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 49de6cce2d831c6c7a56035fa39e4c5c0ba53611352a8462862e7517e2e4b962
MD5 1b88bab18a46fb2bc4f53865f79b24f8
BLAKE2b-256 1431ab17236beb15e5ce95dfb04b275baea97fc0779c2924707cb1d487685f3c

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 fa6b477ed82e06f3dbc3503b5083a4862033266024c8e56334b621c2fda4016a
MD5 4fa642623578a4a87003f0f87d79104b
BLAKE2b-256 71e8751444b8ce7c30ca327db6e5e7eeaa30f50ff46d68914cf5b95925528ab1

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 5641db3b7e9f294d1ce871d8faf4429d5bc3dbcd94084c181e0052aea25d4dfc
MD5 c6f39ec44d7b489fa231f5ccab5fe39f
BLAKE2b-256 dff59d1e86481d3a734d640fe699bb1601c277f6d8446928f7cdff4cf18814b5

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ceb820ebfc9076aeafcbfd03b37410518233a3bd6f16fcbadb2f31b6573b66a4
MD5 fe4ba7af06383681e7d16bfc2ddff1b8
BLAKE2b-256 4ccf39270a393fbc4260c64e3aa96db3c5f93d549a6d59eff74c5cc3bc04c077

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 362ab19d72ab15b5744d85d26f1285a66881f98c10e6e053ebf5343aa67b73c9
MD5 320fff5d217bc5cbeaf24ae8b5bc35ba
BLAKE2b-256 57ac25a465d0c4430ee0e350c049ff5207e83de90f5305be78c50da21b77c42c

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c01923273eb6aa5aad1c84133b2bba1d592fd6bb203295f556dfa265d3774cfd
MD5 6251fb06b0e8d389d82d1185e9819745
BLAKE2b-256 180f4efc6f34d4c70ef0911410d1b29ea78fa286ad5221f987c5c169d0b7b754

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f025e3f583c2cf7dd61bcf316345869ac759574872e5ef852a517e928d049571
MD5 047f9eff669250cc277d7d85a00a0f59
BLAKE2b-256 645ca31f75684ffe30af946d4952d338e9265d65560607a9e1934ad46d10c86d

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 787eecb41b7f8d91dda4a70552e2827a6e395b9b1fb6afe6cc25612957257acc
MD5 f6a0a863da8c99cc3f979d3af7b4d5b4
BLAKE2b-256 3e074653959a3a8fcb87f74f769b17441180032c2b936be439f604a5d02d8484

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 32167ffda5d8dae456290821e5612e888948ae2ffedeed25014f4ee550037db4
MD5 48b24cfa1ceccaea32f1498a0242a7a3
BLAKE2b-256 5f64abdfb22e980cdf3a35dab9bbff39adcea6564ebcf9901daeaf3bc426531e

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e9fbb2d758299f3436b52f2e022982ca7a3ad5b9fc628bd0c3fd775d0c8243a2
MD5 ed93861455c749db434e50bae8239d31
BLAKE2b-256 60f03688184400e5caca2672df9008acaef5e792c3302469af2a68bac5da4563

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f9403b78c6a3541067d7b1c6a1e025381a48bde1db67a3d3a50e5f419665a8c
MD5 f729862f51b07635e698e96488d748fb
BLAKE2b-256 8ae83024fb7ce5e85b0a377624cb62b1d6e6eab7a81c379bdda7beb0495ae744

See more details on using hashes here.

File details

Details for the file xml2arrow-0.16.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for xml2arrow-0.16.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dc165efea72342a69d40e9204059d2ef5043e26bcc22bc475d052ab9ba56381a
MD5 98b48826e35445b1f8bc5f77a4970c7a
BLAKE2b-256 37a35f9a18bb49ebbda61659c1bbb1699ab3693543e63550b51272ce9040e906

See more details on using hashes here.

Supported by

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