Skip to main content

High-performance Cython XML parser for Python — pugixml with a Pythonic API

Project description

pygixml

Python Version PyPI version License: MIT Build Status Documentation Status GitHub Stars

A high-performance XML parser for Python based on Cython and pugixml. Fast parsing, full XPath 1.0 support, and a clean Pythonic API for reading, writing, and transforming XML.

📚 View Full Documentation


Why pygixml?

Speed, memory, and size. pygixml brings pugixml's battle-tested C++ parser directly to Python — with numbers that speak for themselves.

Parsing Performance (5 000 elements)

Library Parsing Time Speedup vs ElementTree
pygixml 0.0009 s 8.6× faster
lxml 0.0041 s 1.9× faster
ElementTree 0.0076 s 1.0× (baseline)

Memory Usage (5 000 elements, peak)

Library Peak Memory vs ElementTree
pygixml 0.67 MB 7.2× less
lxml 0.67 MB 7.2× less
ElementTree 4.84 MB 1.0×

Package Size

Library Installed Size vs lxml
pygixml 0.43 MB 12.7× smaller
lxml 5.48 MB 1.0×

All numbers from benchmarks/full_benchmark.py. See the Performance page for the full comparison across 6 XML sizes.

Features

  • Blazing-fast parsing — up to 14× faster than ElementTree
  • Low memory — 7× less than ElementTree, on par with lxml
  • Tiny footprint — 0.43 MB installed (12.7× smaller than lxml)
  • Full XPath 1.0 — complete query engine with all standard functions
  • Pythonic API — intuitive properties and methods, not a direct C++ mirror
  • Cross-platform — Windows, Linux, macOS
  • Text extraction — recursive text gathering with configurable joins
  • XML serialization — output with custom indentation
  • Node iteration — depth-first traversal of the entire document

Installation

# From PyPI
pip install pygixml

# Or from GitHub
pip install git+https://github.com/MohammadRaziei/pygixml.git

Quick Start

import pygixml

# Parse XML from string
xml = """
<library>
    <book id="1" category="fiction">
        <title>The Great Gatsby</title>
        <author>F. Scott Fitzgerald</author>
        <year>1925</year>
    </book>
    <book id="2" category="fiction">
        <title>1984</title>
        <author>George Orwell</author>
        <year>1949</year>
    </book>
</library>
"""

doc = pygixml.parse_string(xml)
root = doc.root                           # <library>

# Access children and attributes
book = root.child("book")
print(book.name)                          # book
print(book.attribute("id").value)         # 1
print(book.child("title").text())         # The Great Gatsby

# XPath queries
fiction = root.select_nodes("book[@category='fiction']")
print(f"Found {len(fiction)} fiction books")

# Create & save
doc = pygixml.XMLDocument()
root = doc.append_child("catalog")
root.append_child("item").set_value("Hello")
doc.save_file("output.xml")

Properties vs Methods

A quick reference so you don't get tripped up:

Properties (no ()) Methods (need ())
node.name, node.value, node.type node.child(name)
node.parent, node.next_sibling node.first_child()
node.xml, node.xpath node.append_child(name)
attr.name, attr.value node.set_value(v)
doc.root node.select_nodes(query)
node.first_attribute()
node.text()

Advanced Features

Text Content Extraction

import pygixml

xml = """
<root>
    <simple>Hello World</simple>
    <nested>
        <child>Child Text</child>
        More text
    </nested>
    <mixed>Text <b>with</b> mixed <i>content</i></mixed>
</root>
"""

doc = pygixml.parse_string(xml)
root = doc.root

# Direct text content of a child element
print(root.child("simple").text())                # Hello World

# Recursive text content (all descendant text joined)
nested = root.child("nested")
print(nested.text())                              # Child Text\nMore text
print(nested.text(join=" | "))                    # Child Text | More text

# Direct text only (non-recursive — immediate text children)
mixed = root.child("mixed")
print(mixed.text(recursive=False))                # Text

XML Serialization

import pygixml

doc = pygixml.XMLDocument()
root = doc.append_child("root")
root.append_child("item").set_value("content")

# Convenience property
print(root.xml)
# <root>
#   <item>content</item>
# </root>

# Custom indentation
print(root.to_string("    "))

Document Iteration

import pygixml

doc = pygixml.parse_string("<root><a/><b/></root>")

# Depth-first traversal of every node
for node in doc:
    print(f"{node.type:12s} {node.name}")
# document
# element       root
# element       a
# element       b

Node Identity

import pygixml

doc = pygixml.parse_string("<root><a/><b/></root>")
root = doc.root

a = root.child("a")
a2 = root.child("a")
print(a == a2)          # True — same underlying node
print(a.mem_id)         # Memory address for debugging

Modifying XML

import pygixml

doc = pygixml.parse_string("<person><name>John</name></person>")
root = doc.root

# Change text content
root.child("name").set_value("Jane")

# Rename an element
root.child("name").name = "full_name"

# Add children
root.append_child("age").set_value("30")

print(root.xml)
# <person>
#   <full_name>Jane</full_name>
#   <age>30</age>
# </person>

XPath Support

Full XPath 1.0 via pugixml's engine:

import pygixml

xml = """
<library>
    <book id="1" category="fiction">
        <title>The Great Gatsby</title>
        <author>F. Scott Fitzgerald</author>
        <year>1925</year>
        <price>12.99</price>
    </book>
    <book id="2" category="fiction">
        <title>1984</title>
        <author>George Orwell</author>
        <year>1949</year>
        <price>10.99</price>
    </book>
</library>
"""

doc = pygixml.parse_string(xml)
root = doc.root

# Select nodes
books = root.select_nodes("book")
print(f"Found {len(books)} books")

# Predicates
fiction = root.select_nodes("book[@category='fiction']")
print(f"Found {len(fiction)} fiction books")

# Single node
book = root.select_node("book[@id='2']")
if book:
    print(book.node.child("title").text())    # 1984

# Pre-compiled XPathQuery for repeated use
query = pygixml.XPathQuery("book[year > 1930]")
recent = query.evaluate_node_set(root)
print(f"Found {len(recent)} books published after 1930")

# Scalar evaluations
avg = pygixml.XPathQuery("sum(book/price) div count(book)").evaluate_number(root)
print(f"Average price: ${avg:.2f}")           # Average price: $11.99

has_orwell = pygixml.XPathQuery("book[author='George Orwell']").evaluate_boolean(root)
print(f"Has Orwell books: {has_orwell}")       # Has Orwell books: True

Supported XPath

Category Examples
Node selection //book, /library/book, book[1]
Attributes book[@id], book[@category='fiction']
Boolean ops and, or, not()
Comparisons =, !=, <, >, <=, >=
Math +, -, *, div, mod
Functions position(), last(), count(), sum(), string(), number()
Axes child::, attribute::, descendant::, ancestor::
Wildcards *, @*, node()

Core API

Class Purpose
XMLDocument Document-level operations: load, save, append-child
XMLNode Navigate, read, and modify individual nodes
XMLAttribute Attribute name and value access
XPathQuery Pre-compiled XPath queries for repeated evaluation
XPathNode Single XPath result (wraps a node or attribute)
XPathNodeSet Collection of XPath results

Module-level functions: parse_string(xml), parse_file(path).


Important: Element Nodes vs Text Nodes

In pugixml (and therefore pygixml), element nodes do not store text as a value. They contain child text nodes instead.

# ❌  Setting value on an element node does nothing useful:
element.value = "some text"

# ✅  To SET text, append a text node (empty name) and set its value:
text_node = element.append_child("")
text_node.value = "some text"

# ✅  To GET text, use .text():
print(element.text())                     # "some text"

# ✅  Or read the text node directly:
print(element.first_child().value)        # "some text"

For most use-cases, element.text() is all you need.


Benchmarks

Run the full benchmark suite on your machine:

# Full suite: parsing (6 sizes), memory (3 sizes), package size
python benchmarks/full_benchmark.py

# Legacy parsing-only benchmark
python benchmarks/benchmark_parsing.py

Compares pygixml against lxml and xml.etree.ElementTree. Results are printed as tables and saved to benchmarks/results/benchmark_full.json.


Documentation

📖 Full docs: https://mohammadraziei.github.io/pygixml/

  • Complete API reference
  • Installation guides for all platforms
  • Performance benchmarks and optimization tips
  • XPath 1.0 usage guide with examples
  • Real-world usage scenarios

License

MIT License — see LICENSE.

Enjoy pygixml? Star the repository to support the development: 👉 Star pygixml on GitHub


Acknowledgments

  • pugixml — Fast and lightweight C++ XML library
  • Cython — C extensions for Python
  • scikit-build — Modern Python build system

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

pygixml-0.9.1.tar.gz (661.8 kB view details)

Uploaded Source

Built Distributions

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

pygixml-0.9.1-pp310-pypy310_pp73-win_amd64.whl (128.1 kB view details)

Uploaded PyPyWindows x86-64

pygixml-0.9.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (174.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pygixml-0.9.1-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (181.0 kB view details)

Uploaded PyPymanylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

pygixml-0.9.1-pp39-pypy39_pp73-win_amd64.whl (128.0 kB view details)

Uploaded PyPyWindows x86-64

pygixml-0.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (174.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pygixml-0.9.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (180.6 kB view details)

Uploaded PyPymanylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

pygixml-0.9.1-cp312-cp312-win_amd64.whl (135.3 kB view details)

Uploaded CPython 3.12Windows x86-64

pygixml-0.9.1-cp312-cp312-win32.whl (115.2 kB view details)

Uploaded CPython 3.12Windows x86

pygixml-0.9.1-cp312-cp312-musllinux_1_1_x86_64.whl (701.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

pygixml-0.9.1-cp312-cp312-musllinux_1_1_i686.whl (760.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

pygixml-0.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (175.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pygixml-0.9.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (182.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

pygixml-0.9.1-cp312-cp312-macosx_10_9_universal2.whl (255.0 kB view details)

Uploaded CPython 3.12macOS 10.9+ universal2 (ARM64, x86-64)

pygixml-0.9.1-cp311-cp311-win_amd64.whl (138.6 kB view details)

Uploaded CPython 3.11Windows x86-64

pygixml-0.9.1-cp311-cp311-win32.whl (114.8 kB view details)

Uploaded CPython 3.11Windows x86

pygixml-0.9.1-cp311-cp311-musllinux_1_1_x86_64.whl (704.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

pygixml-0.9.1-cp311-cp311-musllinux_1_1_i686.whl (763.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

pygixml-0.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pygixml-0.9.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (184.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

pygixml-0.9.1-cp311-cp311-macosx_10_9_universal2.whl (254.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

pygixml-0.9.1-cp310-cp310-win_amd64.whl (138.5 kB view details)

Uploaded CPython 3.10Windows x86-64

pygixml-0.9.1-cp310-cp310-win32.whl (114.8 kB view details)

Uploaded CPython 3.10Windows x86

pygixml-0.9.1-cp310-cp310-musllinux_1_1_x86_64.whl (704.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

pygixml-0.9.1-cp310-cp310-musllinux_1_1_i686.whl (764.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

pygixml-0.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pygixml-0.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (184.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

pygixml-0.9.1-cp310-cp310-macosx_10_9_universal2.whl (254.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

pygixml-0.9.1-cp39-cp39-win_amd64.whl (138.9 kB view details)

Uploaded CPython 3.9Windows x86-64

pygixml-0.9.1-cp39-cp39-win32.whl (115.2 kB view details)

Uploaded CPython 3.9Windows x86

pygixml-0.9.1-cp39-cp39-musllinux_1_1_x86_64.whl (705.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

pygixml-0.9.1-cp39-cp39-musllinux_1_1_i686.whl (764.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

pygixml-0.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pygixml-0.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (185.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

pygixml-0.9.1-cp39-cp39-macosx_10_9_universal2.whl (255.2 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file pygixml-0.9.1.tar.gz.

File metadata

  • Download URL: pygixml-0.9.1.tar.gz
  • Upload date:
  • Size: 661.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1.tar.gz
Algorithm Hash digest
SHA256 8ad5b690d24b159ff9e1f4c1fe3a5985c90a27421ca0e3fa84f22d0a4efd9fc0
MD5 2a184a40bda6a140a2af92e432bee7ff
BLAKE2b-256 0bef4cfffe46f9a5075c67e1983adae350cb920aa3cce2d21aca2a6b2a7ed348

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 ea7de7b59f93a2d02f5a95d1342ca01fab4b4ff0d5bec23a8738743519f9a930
MD5 495c906c7e98c46ea99c6ec572efd55a
BLAKE2b-256 a3fcd9957f3157d0e1cf2e4a1267b9a3db3314c0d607ee641597c03a331bb018

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8ccc5572ba253a2c40cd716a99dfae2568b7a164263bc40acac848f4cc0fd5b
MD5 4e381a610c2112e70602c8b27989f65c
BLAKE2b-256 2ab720002f3d98b77409dc8e0f8794da76aa44369dc756ba9ecd0f3b57c75be9

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0f8a7fcbfc14cc3798129afb160dcf28b48e7e0609571cb661781df8e25b85a0
MD5 256220d95bc9ab1e4b19e981c6efc8b3
BLAKE2b-256 f2b55cc83086e5a1fa88c8b3d49d7aefd0bd0b8e2cc10b4a0e7b19b19d50e86c

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 b88fbb8814e1a092d19de23d562911dc65216c2ccb685d43f27eaaf7950f9e0c
MD5 28734db5a0fdb77b54dbe26612bc476a
BLAKE2b-256 8f269fe7553f506da41271f213f14bf675b8844255ac05eb7390160d5701fc6b

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01b5c18531e9084ce597f2f839a4501f93c851f02b7f478bb180cc52685e855c
MD5 919908a8ede6a8f35c0a555c1823230d
BLAKE2b-256 e9cb220942fa3098d06dade2215f86cd1da0e4f4ac725529d808c399210cc613

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 62e1a0e08be8104b93e97060d3506263f293f839db98fcbedb66e786f86d7731
MD5 d464a3905381526fcae40957796d7679
BLAKE2b-256 457f6537bb38f627dafdd54c63a94949ff68c12721a9f2eba499bf1a9c5902d6

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pygixml-0.9.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 135.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2f915757075047e1b8f4e9721806474b5ddd7012dc7987f1923c362266c3c3bd
MD5 ab6b861b8ddcabba3b41d930e9ef7aad
BLAKE2b-256 e79daf86384099c1f6431c52fa51934a09d2ab5404a8ab686db18b489dca3045

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: pygixml-0.9.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 115.2 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 5650c35809982dd9155868fc5da5053fc9e985da2c597e9e0b3ead74fbdbe6d5
MD5 91bcb6963e9c56fc6c796a8985685c91
BLAKE2b-256 27643b1a6f32deb55328d1059274429f6848fb37e22a4afa5c9771bfe288943e

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 dc52db7c041bea8e14ebbcffe9d27078ac146ef22b6a9fc67ead5332c36cf2cf
MD5 08aaa69e622ac36298f931c644c08cd7
BLAKE2b-256 3d2500823287dc4d9d00020155c2cdb160761c5b7fdd3cba7f463d7fc864369c

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp312-cp312-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 22d13288b6c75eb3c2b290ff2ff2b82a3c743b29c7793bd99515718c67b7f8bc
MD5 d5b7287e9c46531d0e8e68e889cc2a84
BLAKE2b-256 748bc9cb0132ec02da6da61a4083d04e7c1917f637b78ffbcd6d7cb49d2aea39

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a0374643a804e1d9769eeab65380f834ff1660c356404be781a7243bedfb080
MD5 0b4a17195bf44ad6ac8bc3fc71443f14
BLAKE2b-256 7308e14965cdf879ac4d77aef45c397ba5cb289e7547ccfff117af061e871a0c

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1b97d9840400ed437453dbb1a1c778f5233999d1a387c59a665e6247992f5703
MD5 b12373ef1bc7347c65fe32b42fcdee92
BLAKE2b-256 70212c1f2565113e2f27b5850b96ef05a0d9b697be5aa7ad34b88a0671721824

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 46039717846a953c6ecfdfce1d4ed2187aae5c8c47a5e8e948df75428241a5f2
MD5 8a7947d4a3b5b42b91d1c415f6bf6431
BLAKE2b-256 e6ebbc9ae8a7edbdbecb924b964001af3bba5e6897082d813725b3367e0cc79c

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pygixml-0.9.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 138.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 87be5232f4e264f25751fe0a44428e98e549f918a529caebec8637d6d4936d1d
MD5 9823d28a0de9430613a7173ac2e3fed6
BLAKE2b-256 ab90d26236054ce8e8287061e235587a7ad2b020a1f8294c040ebbe9faa26b60

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: pygixml-0.9.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 114.8 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 aa7b995df182ed8026835a81d2c5cabe96b4e07013b6c2a4aad52537788a70ef
MD5 179f1d65255950c10bee9ea57f2c5a5d
BLAKE2b-256 5fb4e8800a58b1db86ff09be05f1240c2166ca7e574e71a90a32797e320bad2c

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c02e1ff9ab0fe541ac6e0b2871ee1c5e01dbb42e203a8f394c2c98ecf045c670
MD5 2cb29cb9b7544467388084559b976a71
BLAKE2b-256 4fd9d6512353a3574f6a4175efe79f6147bc520b8fc79ca2e6297298582b6cf3

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 f677b67a634ef4b1d832a638c929535ceec21d63847361f24a7976847819e451
MD5 c1b3cd3aad18b479883cc42fbb405aa3
BLAKE2b-256 1846e495149c30160c30ae5e707c68a9d418e4cc748369741d77fbb791010bbd

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98f31ff7d4ce9645ade26e0a0bbfefc0c61a2d50281ac84260849b5ed42f9493
MD5 faaffdc906c9d2dbc7d7371d7fcdfef8
BLAKE2b-256 7438143cd3d1048c46b78ebfb9261bad30c26977281dd16bcb40075124f4e06d

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ebd74e4f2aec26e20860b38dc6e895c8bdbacbd1aef689a6bc8f0b65bce6567f
MD5 b592d72c859dafb2e670bceccbb46524
BLAKE2b-256 58e812bfa90499b9ed849591f09bc19eaab773aa9c749375661559820a08bf14

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 dbb8a343c3c1f4114422b77ce7945d7dd5ad72490555a7232a570273149eb599
MD5 2837982c3c1d724ff335b611f3423fa7
BLAKE2b-256 4fcae818d8b56ec07254b2d410495bb162c7308b612de4b6d3242e9f43a6809d

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pygixml-0.9.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 138.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d8f895bb69753ad7b882040e61484fcd5461963527174cb2f256c6c84001b998
MD5 37e0fb5e33c0f74db5c082b3b9209396
BLAKE2b-256 2b2d52d97a1b7945c2c996eb6e3d6ab82020c48c4c7e27157c267a30c4d45091

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: pygixml-0.9.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 114.8 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 c35447a27b7923b6f4fe14ce9fc57b559998d6168399594178b983ad4d494c34
MD5 e95905fce3ab2173c86895311d2d18b0
BLAKE2b-256 8218b384895e3a8e1ebf502c632c0b796a660365d762a77b9e61168129905b7f

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5a18a0e782cdce0f8a58a43bc298e7a36e80466994a1e1b915687489820cfe11
MD5 74055352d1453b01ebc37cfafe74f494
BLAKE2b-256 1030424a72d3891e8db5396025fab95330e14c1e00d995f946f877071f51d352

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 fe14b21e7f25748613d14688fa1c251049d52942944e2ba9ff86898d5759bddd
MD5 75d9fddda1c909bb281c9af06e47beec
BLAKE2b-256 ce4655c4086e07f3fc09e6011d6c5a539e28919d008962f6c4506e245a76bc74

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd4b06209d618996364a13cce53342af90bc73b35d08daa6620f978d84f388bd
MD5 fb61856d0ed010a80a1af25f62b2ec19
BLAKE2b-256 bba2639b7b73fa0bf1f5d118c9b00069dd00aa6520cd5eed668cd18fee500f35

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c13bf4ffe1a64a79662ac3cd7dce2503562e7a73d5649aaa240c71ac146c5a3d
MD5 4f16d13800f3f1a18f2ffe3836393368
BLAKE2b-256 c5bf6774ba9e7d509a64dfbcb808de48f329daae9f3eeb9cc7f05745f1d68493

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e51a16c3526bbc2da8ce2a9dcb5b68ccd7647f2bdd1cd086d841c2046d33dbda
MD5 e7f4cd3a1ffdabc64fbb03f43f1c065b
BLAKE2b-256 c360c49677db4545b0570a359dacb0379908b80755a24ac7de168aaf9fd22827

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pygixml-0.9.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 138.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e208622b7c5c6c200c4ef6f00fee4d0ddb18d0c5a8b52abc59144ac4ad41b257
MD5 b1671bd28ba6924f8292b6597cbed4e0
BLAKE2b-256 5fc3e987f33f3e990a1a666ef75118ee91db674bf64993493a4a6d8a023f38ba

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp39-cp39-win32.whl.

File metadata

  • Download URL: pygixml-0.9.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 115.2 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.9.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 b6cc3a2413758d73fec1cd4af658b5ea6eaf941d05fbd9a88779ec225e4a132f
MD5 b8c892535877f46a74136b42cb646e26
BLAKE2b-256 6e87f58c6caab3edce81a2b636f7f762d9b7100085adf69c8a82d727f3435d61

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8a7f0cb17d145cb81eb9eb4efbb2ac21010d8d6bee50c916d490ee3bef5508d1
MD5 58da6fc241858357f71256a039e47f3d
BLAKE2b-256 71932e9407f2802616e115bf375c58f5a8dc5fb303224d045c9f6ca951079be6

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e825d63b7e381463d79463fb868544d453883ed86db07c57207a9944454d8a88
MD5 20b614177cb22bd79cb847856ce3dde4
BLAKE2b-256 de203f5860fdf3676607f2210b9a696ce4a17f9c1593fe361fa8d60fd266cb9f

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e1d3d3499beb3dc94e45dfd9f3074a0c1ec52f1a1e0698f457845a357d088c86
MD5 c8fa9cfcd6f50a15415e295c08d6992c
BLAKE2b-256 64d03e2ca2aa80a3039c1ac3ee96eedb7055eed496efd5c53bf4e80d0c840c3c

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e797e52ea7513cee4ddc09a94ba29ab20c4a70d205ddfc57754fd8183bb6cb70
MD5 00f0bd5e123995a0d84475bf108ff111
BLAKE2b-256 38ed25054ed139ad3aa843dbb8cabc22df1fa0cc4772c48dbe61e4f10425fd37

See more details on using hashes here.

File details

Details for the file pygixml-0.9.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pygixml-0.9.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2cce15d504911c797a3c4ccbaa1e56eb5a17de2f6c5e751b09d7e91024c3bfeb
MD5 f2744576b5a1aeac797b858b471bc34f
BLAKE2b-256 9cf449b39095493c94120bc63dc1d3e2f7f58bf3a3dc728612475a47febace51

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