Skip to main content

Python wrapper for pugixml using Cython - Please star the project on GitHub to use!

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, providing fast XML parsing, manipulation, XPath queries, text extraction, and advanced XML processing capabilities.

📚 View Full Documentation

🚀 Performance

pygixml delivers exceptional performance compared to other XML libraries:

Performance Comparison (5000 XML elements)

Library Parsing Time Speedup vs ElementTree
pygixml 0.00077s 15.9x faster
lxml 0.00407s 3.0x faster
ElementTree 0.01220s 1.0x (baseline)

Performance Comparison

Key Performance Highlights

  • 15.9x faster than Python's ElementTree for XML parsing
  • 5.3x faster than lxml for XML parsing
  • Memory efficient - uses pugixml's optimized C++ memory management
  • Scalable performance - maintains speed advantage across different XML sizes

Installation

From PyPI

pip install pygixml

From GitHub

pip install git+https://github.com/MohammadRaziei/pygixml.git

Supported XPath Features

  • Node selection: //book, /library/book, book[1]
  • Attribute selection: book[@id], book[@category='fiction']
  • Boolean operations: and, or, not()
  • Comparison operators: =, !=, <, >, <=, >=
  • Mathematical operations: +, -, *, div, mod
  • Functions: position(), last(), count(), sum(), string(), number()
  • Axes: child::, attribute::, descendant::, ancestor::
  • Wildcards: *, @*, node()

API Overview

Core Classes

  • XMLDocument: Create, parse, save XML documents
  • XMLNode: Navigate and manipulate XML nodes
  • XMLAttribute: Handle XML attributes
  • XPathQuery: Compile and execute XPath queries
  • XPathNode: Result of XPath queries (wraps nodes and attributes)
  • XPathNodeSet: Collection of XPath results

Key Methods

XMLDocument Methods

  • parse_string(xml_string) - Parse XML from string
  • parse_file(file_path) - Parse XML from file
  • save_file(file_path) - Save XML to file
  • append_child(name) - Add child node
  • first_child() - Get first child node
  • child(name) - Get child by name
  • reset() - Clear document

XMLNode Methods

  • name - Get/set node name
  • value - Get/set node value (for text nodes only)
  • child_value(name) - Get text content of child node
  • append_child(name) - Add child node
  • first_child() - Get first child
  • child(name) - Get child by name
  • next_sibling - Get next sibling
  • previous_sibling - Get previous sibling
  • parent - Get parent node
  • text(recursive, join) - Get text content
  • to_string(indent) - Serialize to XML string
  • xml - XML representation property
  • xpath - Absolute XPath of node
  • is_null() - Check if node is null
  • mem_id - Memory identifier for debugging

XPath Methods

  • select_nodes(query) - Select multiple nodes using XPath
  • select_node(query) - Select single node using XPath
  • XPathQuery(query) - Create reusable XPath query object
  • evaluate_node_set(context) - Evaluate query and return node set
  • evaluate_node(context) - Evaluate query and return first node
  • evaluate_boolean(context) - Evaluate query and return boolean
  • evaluate_number(context) - Evaluate query and return number
  • evaluate_string(context) - Evaluate query and return string

Quick Start

import pygixml

# Parse XML from string
xml_string = """
<library>
    <book id="1">
        <title>The Great Gatsby</title>
        <author>F. Scott Fitzgerald</author>
        <year>1925</year>
    </book>
</library>
"""

doc = pygixml.parse_string(xml_string)
root = doc.first_child()

# Access elements
book = root.first_child()
title = book.child("title")
print(f"Title: {title.child_value()}")  # Output: Title: The Great Gatsby

# Create new XML
doc = pygixml.XMLDocument()
root = doc.append_child("catalog")
product = root.append_child("product")
product.name = "product"

# To add text content to an element, append a text node
text_node = product.append_child("")  # Empty name creates text node
text_node.value = "content"

Advanced Features

Text Content Extraction

import pygixml

xml_string = """
<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_string)
root = doc.first_child()

# Get direct text content
simple = root.child("simple")
print(simple.child_value())  # "Hello World"

# Get recursive text content
nested = root.child("nested")
print(nested.text(recursive=True))  # "Child Text\nMore text"

# Get direct text only (non-recursive)
mixed = root.child("mixed") 
print(mixed.text(recursive=False))  # "Text "

# Custom join character
print(nested.text(recursive=True, join=" | "))  # "Child Text | More text"

XML Serialization

import pygixml

doc = pygixml.XMLDocument()
root = doc.append_child("root")
child = root.append_child("item")
child.name = "product"

# Serialize to string
print(root.to_string())  # <root>\n  <product/>\n</root>
print(root.to_string("    "))  # Custom indentation

# Convenience property
print(root.xml)  # Same as to_string() with default indent

Node Iteration

import pygixml

xml_string = """
<root>
    <item>First</item>
    <item>Second</item>
    <item>Third</item>
</root>
"""

doc = pygixml.parse_string(xml_string)

# Iterate over document (depth-first)
for node in doc:
    print(f"Node: {node.name}, XPath: {node.xpath}")

# Iterate over children
root = doc.first_child()
for child in root:
    print(f"Child: {child.name}, Value: {child.child_value()}")

Node Comparison and Identity

import pygixml

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

print(a == a2)  # True - same node
print(a == b)   # False - different nodes
print(a.mem_id) # Memory address for debugging

XPath Support

pygixml provides full XPath 1.0 support through pugixml's powerful XPath engine:

import pygixml

xml_string = """
<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_string)
root = doc.first_child()

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

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

# Select specific book by ID
book_2 = root.select_node("book[@id='2']")
if book_2:
    title = book_2.node.child("title").child_value()
    print(f"Book ID 2: {title}")

# Use XPathQuery for repeated queries
query = pygixml.XPathQuery("book[year > 1930]")
recent_books = query.evaluate_node_set(root)
print(f"Found {len(recent_books)} books published after 1930")

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

# XPath number evaluation
avg_price = pygixml.XPathQuery("sum(book/price) div count(book)").evaluate_number(root)
print(f"Average price: ${avg_price:.2f}")

Important Note: Element Nodes vs Text Nodes

In pugixml (and therefore pygixml), element nodes do not have values directly. Instead, they contain child text nodes that hold the text content.

# ❌ This will NOT work (element nodes don't have values):
element_node.value = "some text"

# ✅ Correct approach - use child_value() to get text content:
text_content = element_node.child_value()

# ✅ To set text content, you need to append a text node:
text_node = element_node.append_child("")  # Empty name creates text node
text_node.value = "some text"

Benchmarks

Run performance comparisons:

# Run complete benchmark suite
python benchmarks/clean_visualization.py

# View results
cat benchmarks/results/benchmark_results.csv

The benchmark suite compares pygixml against:

  • lxml - Industry-standard C-based parser
  • xml.etree.ElementTree - Python standard library

Benchmark Files:

  • benchmarks/clean_visualization.py - Main benchmark runner
  • benchmarks/benchmark_parsing.py - Core benchmark logic
  • benchmarks/results/ - Generated CSV data and SVG charts

Documentation

📖 Full documentation is available at: https://mohammadraziei.github.io/pygixml/

The documentation includes:

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

License

MIT License - see LICENSE file for details.

To use this library, you must star the project on GitHub!

This helps support the development and shows appreciation for the work. Please star the repository before using the library:

👉 Star pygixml on GitHub

Acknowledgments

  • pugixml - Fast and lightweight C++ XML processing 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.8.0.tar.gz (650.2 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.8.0-pp310-pypy310_pp73-win_amd64.whl (127.5 kB view details)

Uploaded PyPyWindows x86-64

pygixml-0.8.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (173.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pygixml-0.8.0-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (180.1 kB view details)

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

pygixml-0.8.0-pp39-pypy39_pp73-win_amd64.whl (127.6 kB view details)

Uploaded PyPyWindows x86-64

pygixml-0.8.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (173.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pygixml-0.8.0-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (179.9 kB view details)

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

pygixml-0.8.0-pp38-pypy38_pp73-win_amd64.whl (127.4 kB view details)

Uploaded PyPyWindows x86-64

pygixml-0.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (172.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pygixml-0.8.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (179.4 kB view details)

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

pygixml-0.8.0-cp312-cp312-win_amd64.whl (134.2 kB view details)

Uploaded CPython 3.12Windows x86-64

pygixml-0.8.0-cp312-cp312-win32.whl (114.1 kB view details)

Uploaded CPython 3.12Windows x86

pygixml-0.8.0-cp312-cp312-musllinux_1_1_x86_64.whl (700.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

pygixml-0.8.0-cp312-cp312-musllinux_1_1_i686.whl (760.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

pygixml-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (174.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pygixml-0.8.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (180.9 kB view details)

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

pygixml-0.8.0-cp312-cp312-macosx_10_9_universal2.whl (252.9 kB view details)

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

pygixml-0.8.0-cp311-cp311-win_amd64.whl (137.4 kB view details)

Uploaded CPython 3.11Windows x86-64

pygixml-0.8.0-cp311-cp311-win32.whl (113.6 kB view details)

Uploaded CPython 3.11Windows x86

pygixml-0.8.0-cp311-cp311-musllinux_1_1_x86_64.whl (703.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

pygixml-0.8.0-cp311-cp311-musllinux_1_1_i686.whl (763.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

pygixml-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (175.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pygixml-0.8.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (183.2 kB view details)

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

pygixml-0.8.0-cp311-cp311-macosx_10_9_universal2.whl (252.1 kB view details)

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

pygixml-0.8.0-cp310-cp310-win_amd64.whl (137.2 kB view details)

Uploaded CPython 3.10Windows x86-64

pygixml-0.8.0-cp310-cp310-win32.whl (113.6 kB view details)

Uploaded CPython 3.10Windows x86

pygixml-0.8.0-cp310-cp310-musllinux_1_1_x86_64.whl (703.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

pygixml-0.8.0-cp310-cp310-musllinux_1_1_i686.whl (763.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

pygixml-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (175.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pygixml-0.8.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (183.3 kB view details)

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

pygixml-0.8.0-cp310-cp310-macosx_10_9_universal2.whl (252.3 kB view details)

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

pygixml-0.8.0-cp39-cp39-win_amd64.whl (137.8 kB view details)

Uploaded CPython 3.9Windows x86-64

pygixml-0.8.0-cp39-cp39-win32.whl (114.1 kB view details)

Uploaded CPython 3.9Windows x86

pygixml-0.8.0-cp39-cp39-musllinux_1_1_x86_64.whl (703.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

pygixml-0.8.0-cp39-cp39-musllinux_1_1_i686.whl (763.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

pygixml-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (175.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pygixml-0.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (183.9 kB view details)

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

pygixml-0.8.0-cp39-cp39-macosx_10_9_universal2.whl (253.3 kB view details)

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

pygixml-0.8.0-cp38-cp38-win_amd64.whl (138.8 kB view details)

Uploaded CPython 3.8Windows x86-64

pygixml-0.8.0-cp38-cp38-win32.whl (115.0 kB view details)

Uploaded CPython 3.8Windows x86

pygixml-0.8.0-cp38-cp38-musllinux_1_1_x86_64.whl (704.6 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

pygixml-0.8.0-cp38-cp38-musllinux_1_1_i686.whl (765.0 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

pygixml-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (179.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pygixml-0.8.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (186.1 kB view details)

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

pygixml-0.8.0-cp38-cp38-macosx_10_9_universal2.whl (256.8 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pygixml-0.8.0.tar.gz
Algorithm Hash digest
SHA256 730ffdefc98ef33f1a46c0f2e1ab84bd382738fadde663c5a47192cd1cc999e9
MD5 4df9c07f3e872d10c38dcbfeef756e10
BLAKE2b-256 80bd3d0a46c4f248166ad89fbf01a8dc7961a9c5d52b88951516d1160ed6470d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 0c23c704ce758d5f3a405400e7350e22b1b8f4d84d370249e6b98a91e2d8a6fb
MD5 53f622e82fdeaa4fc5fafab7f57a3715
BLAKE2b-256 0c3627ec49713b2e63a6ad99105406493239e9eb2b289e3a3b2c6dd01749c6ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 097a7bca8e40daf5fafcc90edd663952c19556bba37ecb96a6cab6caed72b4b2
MD5 544f9fffe272b655457afec7f35f8349
BLAKE2b-256 631760287e14e696c27e67510f7dc2d6cab29fd18df583bb7182e0d8fedaa18d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 12bb8660b4e08829bca8fefd5dbe96473cbd4a66fbc4c74e8b6393d65101d4a9
MD5 4ceab28e881d04a0bcb3d042914de7dd
BLAKE2b-256 0ef068c6bc9488be555e8616b30f1055e77412a76263c7689427c9dabd775b99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 2ea3f5d7b86a54a6a42e694a1170c3a19716a44b9725292684bc15b0a6669239
MD5 741888edfac3b6f723b12150df92f710
BLAKE2b-256 3c3ecaf1f3517e248d55a62c30b57c166a92a7dd99b35adfb8fee4d3efbf89f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7adbc79b298af2986b49d61a245ec0fcf2a48714d6fd2a1da62707fc6998a6f8
MD5 d37398e40e6f8b383809c83bb3c43337
BLAKE2b-256 7bc95e4d4d6f3c2638e10a95a636c2656b1264f10dba4809dc1952367963190a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 96c19c63ad420f8df731d18d3f74b6623a9972ff22a0a2ceb2ab12dfbe257159
MD5 7a029e2d7c32d1f34639234e7d382fc0
BLAKE2b-256 54bedd00cf2c3f1954f3f7df46b9d7b6bcaa5499d1e58e20499ca462d4cb21be

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pygixml-0.8.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 e99625af56e1b6efc4e1ad80bb0702bed292856d332315b680b0a72d9909a192
MD5 715625b7a5c2598bdbb261c28eca0b5e
BLAKE2b-256 cf08ae3210c581a30b6a6d55317c76cfe3cb1240198f86e57182ebcd0f205439

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9a110973c4a1ba77979d0082073a2b8cdf1456f34ab91844243f92dbbd16f721
MD5 ebef49d4d7f923ac0929b0de8573022d
BLAKE2b-256 9e81d0fe91336d799512efaebc0b08129d8ea8b996b5235d8ff9a9efa7c9904e

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.8.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9d43e204f230666758e3945d7763db5af5a3a543b9ab7558f0b8dbb60bb4db72
MD5 232026261879b243d3b32d4e4b38a496
BLAKE2b-256 37b6ad621d35f5035af8a7b1405145b43110f8e1b6a4e83e1cb37d351d7028ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygixml-0.8.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 134.2 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.8.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ce57d6a9ab1e72a32fc47957641900a36ab6c8495ec203c244a5bef6e30b236d
MD5 013b445bc70065e09ba8038827a892bb
BLAKE2b-256 531e112c2826e77f51c95cf1b3d5e569b78c87c431eb213904f74719bcbe7ad9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygixml-0.8.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 114.1 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.8.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 801e82c5d476238cd055ea2330dd7c6824223ef95f3de39231817e3ae39913e9
MD5 903a947ed6353863c671fbec590da27e
BLAKE2b-256 9e3fa84fa29cb4fc1b85f2dc01d4fa4e13bdc8f0a4ce6fa8a57beab4e9d05674

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 739f74758bf5c67a79147d4e6096652cc0e78b365ef07b22e2e9d9aff0f585f9
MD5 cb7c8ab5e3d3d68cf0eede92999aa857
BLAKE2b-256 f45e727d543ac049d6ea9aede931304391f25d0312f2861d557188a095cdc222

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 31b87ccfc9401e6a8cd3c5648cc087089de4f8ac94b89445cec49448f7c518cc
MD5 4ae4df0e045d792ef56e3157e6ba3e37
BLAKE2b-256 0eeac465ae62cdcadf0f4245ee74c540b806ee7d7c3d6ba3891e2da3bbf55d79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f083e3c1bc0f258c0adf75bdece17affd4e44a3a0c280cbae6b14334cd7f9ebd
MD5 0ff2d8941fe8417c98f3ea9d24b1947e
BLAKE2b-256 7d8ac906637ea297fdd6f9ea6014aee6f1427552feab97c1ebad1223d6c65815

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f67ef9279a600c329ff7727fbd56205bedb37e355806e836cb5a646c9b38c3c4
MD5 03addcd995b51ee168e82a4ff8917412
BLAKE2b-256 4d672f9d858d7ac9a532daffe5ef1dc6c68c272a25ee8def731380b8ffc6d9ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2e91cc0d7867bfc26774e77f0cbd700e53ce9f81d47be2866c4e5bd944c27d08
MD5 561f2ff8ec17ae20a2be77f523023b3a
BLAKE2b-256 642eb3d19be8fc93ec6949f8e3e7967ff3646ae04571fccc1b146d35a2d77238

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygixml-0.8.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 137.4 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.8.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6a1a5f874b5fd90ad238238524d181deb939cd3f687c33d256b535ffa73aa586
MD5 ae6406382276425ab78d3a003e582522
BLAKE2b-256 3d49baa0744d5d6862e01864ace300d6cf511b4a12e7fdff2b873cc7a17874e4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygixml-0.8.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 113.6 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.8.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 c0515424fcc7850d6f820bc937b57498480249ec99503584c32e6b1c482a90b6
MD5 25c50c2ffb226b20f771c6dc2c17e8cd
BLAKE2b-256 02158c3cb31cc5314a1ac8204b8afecb75eb616a05086e69c0dec98bd2912276

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 64ef874eb0b8101e41bbb4c653f264188b6f46cedc991a49d14ef4e78e74c8d6
MD5 c8fd6bc77fa26b0c6943b288dc9c41a4
BLAKE2b-256 908611c62f9e20c26e9dd411458565d53ff7a6d289a23a83393c06c7a24dbabf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 6871d64c3ca7015363e17b159595c4a9fd8f439773899e7532970071420ae78c
MD5 4be7f150168124ce71fb1fd5255520ea
BLAKE2b-256 7b62b9680b4e487f13202ded09cde9bd74a31389594f770a6b7c7a439c5e03df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3341ec2b5f508a45e4b4602257713f3c153f9e2bc2118ef19c12d25904b92543
MD5 058169ad6e749d9427848e6a62dc980e
BLAKE2b-256 8045be83d63c4f416d50667edcc9c05fffb690adb992f8180fec28d597dfefec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 90bdb54f8393158ef28d971c8edb26dd01687421807438522fd8b87e72deb851
MD5 ea35a6681055b07b91bd10e26764cebf
BLAKE2b-256 c9eec8ee422cd2d6927c431fd1bcffcc9cbd6e79d9029cc341f6464c4d0db69c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1ead4932c3b76d680bcc8ca39604223a961f4ae85d8fd4b01225b97ffc3ed8a0
MD5 f81e88b562a8dce21450c4467da9a6bd
BLAKE2b-256 07e31a46d6ec7c12c7062281a83a3541035e0c3769c0ebf37f8e26fde5415206

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygixml-0.8.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 137.2 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.8.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1bec01a92969049df53dc6df1522e69bfbc9fad9150f211330deb2e3f1c68532
MD5 807c945fcff67b1487c5833a4bd616b5
BLAKE2b-256 ea53f6ffe36e8bb9ae18a42b2713529e338b0db8d23200c34afe5882a88bc8b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygixml-0.8.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 113.6 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.8.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 a6adc4d007d7f4562ef24124fb607fd70ac0572c7426327389f9e6f3a4684632
MD5 99fc3a107adc81874bc132e7f2678a7d
BLAKE2b-256 b72c3e382257d9203256d1b077065a0b922580baebca8b9cdb0658c5cc386e54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8d286d2621930cc50fb6d8334216d78df136380b53b626d7028650f17196304a
MD5 304e04beace4e3fbbadb981c7e32a220
BLAKE2b-256 5a365d6542607a237363145cb136875f7d078fe56ece0febe4f75a491b37eaca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d3521c0429a5415f32a73ee3594199997eabee17bf99b726a91487b73b6ffbc9
MD5 35cca5e6d2b617d4c998c88c80529e85
BLAKE2b-256 e2c2488dd3ff99b57601c435afa41415d4c7c094b1624bfd069f4ddd2eadd954

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c2dd9387672b102c55796dbb7c321a6872c892542f189ea4a526aa6da5d477d1
MD5 f740e190eaa3818fcc5bbfd98158d9b4
BLAKE2b-256 4e65012e7e58dbf222a20b69c7574f961141e424cf9ad30844b4c6d50128f6c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9950a694f6412908be881c1582633a55dbd1b1a4671071cf2df066a14f67882d
MD5 c37089ec3a098d8a7dc9c84ac449ff14
BLAKE2b-256 b6ede036f380527ec621bf4d91ba633d69813e40fa00ab262d58963e9a8a1e29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1f10e665bc42752046df9aadc62737d11dc3a738b4d67b8507bfc43af074c085
MD5 22c7022799c8e2ae99243b3c55c1c627
BLAKE2b-256 f78477045356668dd4f029f2f24ffe4c2bd1bace2dae7dae3ff65443a6a7d6c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygixml-0.8.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 137.8 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.8.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e4b66312c4f3e0ee3de31e7e9517425f37dfd5492eac3860c6959997c4f38451
MD5 97326a6108ba75c4e01d2928fa159a0d
BLAKE2b-256 99cdd461c210a57d6cdf8ce849019fc387c9e224139e51f4c99a296a59aa75f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygixml-0.8.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 114.1 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.8.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 b4ef33284ada949142ad27ca3ce3ed75756289c2f21193829e3eebb77a2c2110
MD5 5d5e9ff20b3647a020207731ae20335a
BLAKE2b-256 865e433da033a560971813c49933f81adcd0657e89f93b86654f62c73c0da213

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7d8a36336c4aa790811823597ed0c112db27b40efee07dc6caa4a0007e1237d6
MD5 d5db54efa9280e52aff02d80251154e6
BLAKE2b-256 2415e25ad9b6819ea227e03496f1367a67e5b2d5afe17ab0c0c06affd69daaae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 9a8249ab6800e5e30006c211fa7d277cfe454b4761812a67847b9e45bcd07386
MD5 8737b2471a4339c9f0715f352d0af5be
BLAKE2b-256 3c73b49a9de6f56f2e267ca0f509012839139ff29ed0a20da470a2eb471c41e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8bde2db7e779cde8b27341b26faaae45e9c97b13fbda0b5b61915e0ab32bbac6
MD5 70e2aa990b3b1e83c9dcbec08127af00
BLAKE2b-256 43483e46c6e00880be6bc3d662ff005ced9254a29a3cd7a883816d42eb7e9b3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e7e7b328969d9c38a3c063eaf50804172f5b71ec1ad02e188d5c74d9d8a8682b
MD5 e9939e907f1ca568eb02de310840bf11
BLAKE2b-256 bc7cdb448dc7087bcad7e700e303f046c36145997ff9d4ce13d75338f38c3eef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygixml-0.8.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a821f4d339124a3b5541e7f3b06b34a1a04b43bb10462cc5fe66e53a0f85b0c3
MD5 6130d56238d7e5999e76207a0080bbe5
BLAKE2b-256 b8a2d7c268ba1d2e84d89b86001c4f282b395eff219b2cddd021e01bf7b008ae

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pygixml-0.8.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 138.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.8.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 998127062cf1054bf348988e749b75d86ad109d7c6951a5c8dc809a32e9280db
MD5 6aa9794df82482ede9cba08a749cf77b
BLAKE2b-256 4f8853cf665f2d73ece5f69b5ba13cb46da195969753551200482b983b0c754e

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: pygixml-0.8.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 115.0 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygixml-0.8.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 2fb8c2a204adf34fec38f599f186cbc0828f04d8a38ff22ad9048d8ca06b81ce
MD5 f7f7000c20e688914430ad27206ab5e2
BLAKE2b-256 528eb5b3090f69b8cc87397249f1497ddf04dd8d6a61b6bc0b227f7ac2b9ff8f

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.8.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b64311859ba51f7b32dc43cedfd05e46c7d73e1b15b2594ebd4d7df98987a708
MD5 f1b30584381abbc382004c12d579231c
BLAKE2b-256 634701cc9346b7cce6a97c99bc3d13f3b9cd6937985a6b8952939cc8d3b741bd

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.8.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 14ce11d84af4f40fc58fc7825b58add9ae16bd66ce1bb21d52a8223ac28465ae
MD5 92a0e78c98e90628fcefd9a38a2a2bbe
BLAKE2b-256 cdeb12b1e6d9092a97a557c4c339b955857e5ff3467839f0a91fd8e6b01b0284

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygixml-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 548e3fa044ea17188065bab4ff8aecc0149daec4b34d69e84e82058dba709540
MD5 94c9817ff81f851bf11d8ba04da61322
BLAKE2b-256 5d5548d37fb26ef2616aabb000b6fe7b992301e99ca3443d437b421738d1329d

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pygixml-0.8.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8b928e1181269577640ac58ecf8a8d83627773dd2b145ff14ec389bb5b810378
MD5 2c78100958ff37e13aad5399e823eca6
BLAKE2b-256 c790aaedfd073324270ab13cb46e00ba4263ec5e730e27fa2ccc43a0bb99b606

See more details on using hashes here.

File details

Details for the file pygixml-0.8.0-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pygixml-0.8.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a93821798d1846e3adec50ab4c2a51b49de893fc3e3d089d0d7ab01c4a74b2a9
MD5 955eceaa3ec87b582cd06fbb0c811cfa
BLAKE2b-256 f96d052d794bf2917e47e30f204f3f3ea656eb7052433856eba11d5321273885

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