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.15.0.tar.gz (27.1 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.15.0-cp310-abi3-win_amd64.whl (462.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

xml2arrow-0.15.0-cp310-abi3-win32.whl (433.1 kB view details)

Uploaded CPython 3.10+Windows x86

xml2arrow-0.15.0-cp310-abi3-musllinux_1_2_x86_64.whl (859.5 kB view details)

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

xml2arrow-0.15.0-cp310-abi3-musllinux_1_2_i686.whl (897.5 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

xml2arrow-0.15.0-cp310-abi3-musllinux_1_2_armv7l.whl (923.0 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

xml2arrow-0.15.0-cp310-abi3-musllinux_1_2_aarch64.whl (820.5 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

xml2arrow-0.15.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (878.9 kB view details)

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

xml2arrow-0.15.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (696.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

xml2arrow-0.15.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.15.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (649.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

xml2arrow-0.15.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (647.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

xml2arrow-0.15.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (696.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

xml2arrow-0.15.0-cp310-abi3-macosx_11_0_arm64.whl (579.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

xml2arrow-0.15.0-cp310-abi3-macosx_10_12_x86_64.whl (590.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for xml2arrow-0.15.0.tar.gz
Algorithm Hash digest
SHA256 3958014b4617c8bec0e853cd12734932db014ebba531e7df3c95c3f09c79b54e
MD5 ff7cc154571f127e67650e4219c2f57f
BLAKE2b-256 e3c32c1691f0f7a017a98123c68d2ca3cfd97777e17ca80cb16e2b8067fc82c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 16b3b499e246c73a8b95faa2fdeb4a9843bf3c5b38b825ecbda404c322ffcf79
MD5 93aad2ebc8e7efe2062a28e2137b2c3c
BLAKE2b-256 ed67c73f16280f1bf351e6093febd1495602fc51ea12858cf86017e469eef79b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xml2arrow-0.15.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 433.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.15.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 0cf700d3548fa7fe7aca39885ac8e1c4841405183eb0388bb5ee4838e4e9ce91
MD5 20bbeb8112413c79bb3171b075dd521b
BLAKE2b-256 123554df37feb930e942f63b36ebb3bb0758ded2c44e76820f0da33ce0db93b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 be934ed4e13b2d4fc86bb9abaa168708cb37af44bb3447784ad217809bdf580c
MD5 a66aee0f7267b1567c4ac2aebd02c0c2
BLAKE2b-256 5109489a2709a87f71e254a26a5b33c59791ec16878fd37487f41adc6bb3269f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 fdedae7dae45b8edb3403634ee7b9b93bc73d63706f33bc7061c77e2e390f9e4
MD5 288386e128c39ca0a84f119702be4891
BLAKE2b-256 4a952f9a69484e3c91e7a685a41cf7fcc80fd384f6d4a698b3f3fae9b8bc23ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 74d4fdb3143faf496e17980f6db1ddeb85b581e4657f6995cce7dbc1efd9e87a
MD5 5b71bd011a863c40327ad9abc0181c83
BLAKE2b-256 37970a48dbf2ffbd063236e6dda2ceb7120faff39bf30e534c724387ed03980b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 47d58cd3ca0db1be2093e1284b1dfd1d6150f2eda10f0e0fb3ce6eb18706a509
MD5 28e625b74fcf4a9422980af06ea45885
BLAKE2b-256 f93df1ddf0418a09ef3236372e8a4863d6638db6f7b8ae71aa5be0eeb0a4106b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 713f5601f12db32cbbc436dff507d022b93def09cafbb95dc31489672b6cc4a5
MD5 8ffe5f963c04fd813af7b71706a72245
BLAKE2b-256 435a2a43c47be426d9ba66d651870565e52e25bd22ac7d8dacef0a0a9708603e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 8a46ccd983f596a989c1f56dddc1a0114305fe1426f13bce38af6d714bcbcbd4
MD5 95665b84217adbeb337b6ca074c0f407
BLAKE2b-256 845ea06cb65ed029a67c8deee253f736e37fd742ba44219813fe26dcffa925c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b3dd8772b5362fbf83cd274487ee00729252b307d66449b93174a2c7fe8793b7
MD5 dbb3f20b80ac6a78bcc5dc0d7e6181ab
BLAKE2b-256 66389bb4dada78f5ebbbd7d4daebd3053ed8ea37f6fc341d32d6a119d7ca7daf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bac11d0227ffcdf4b6045f8266281e431460343329340baca89dd9a595ddda44
MD5 5166a5a7a294743c2a8171ec2730a64a
BLAKE2b-256 e59e5fab6c21d41e600bd691ffcc52e8de61175c8ecb84d6b665834f70956456

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7da0f51c1f52c073b8e0e034b86f4cc56aecd6aed05e1e283bc364617eca8afa
MD5 26bd4985edae7a22ee202b1b06cb02bc
BLAKE2b-256 081ae5c843768d544d4984e30cb699b8ce2ec2bbc2d1ee54b6ae14fa98491cdc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c52fb7e6dde898cc9edd9ec6b6d473fc3cb9c484af43c53a308b1a3056100e19
MD5 2f3e8dd16a2125ac3c34eb2f00bf7b02
BLAKE2b-256 800f74eef4ad427b14d5e95520366bb63240cf85b231d5b8374c0ab743d08b53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a1fefed724488a9af71714c30460a9bcac050052ea5b30b815be7620a3cd764
MD5 fc53a24bf355774733ff72b7e948f39d
BLAKE2b-256 bf62b83eeff67b410aa027b124fb0cebbfcf5c88f8aaa3d8fd6a13806d06549b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xml2arrow-0.15.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a163ba686ba3eefdf5884544ad0a4f47b015fc50fbcba1909a910afa2974905c
MD5 aa10c9c5046dc8dff40aa38dee60c504
BLAKE2b-256 c7c0f16010e6982280bd14685c7252e5aeaca375abfad7aeacf2d4b51e4e8419

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