Skip to main content

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_xmp_png


swarmauri_xmp_png

swarmauri_xmp_png packages the production-grade PNGXMP handler. It reads, writes, and removes XMP packets stored in uncompressed iTXt chunks that follow Adobe's keyword guidance, making it immediately compatible with downstream asset pipelines.

Features

  • Registry-ready – inherits from EmbedXmpBase so Swarmauri's dynamic registry can auto-discover the handler.
  • Spec compliant – emits iTXt chunks with the XML:com.adobe.xmp keyword and UTF-8 payloads.
  • Safety guards – _ensure_xml performs a minimal RDF/XML check before embedding metadata.

Installation

Choose the tool that matches your workflow:

# pip
pip install swarmauri_xmp_png

# uv
uv add swarmauri_xmp_png

Usage

from pathlib import Path

from swarmauri_xmp_png import PNGXMP

handler = PNGXMP()
image_path = Path("example.png")
xmp_packet = """<x:xmpmeta xmlns:x='adobe:ns:meta/'><rdf:RDF>...</rdf:RDF></x:xmpmeta>"""

# Embed an XMP packet
updated_bytes = handler.write_xmp(image_path.read_bytes(), xmp_packet)
image_path.write_bytes(updated_bytes)

# Verify the packet can be recovered
restored_xml = handler.read_xmp(updated_bytes)
print(restored_xml)

# Remove XMP if necessary
clean_bytes = handler.remove_xmp(updated_bytes)

Why it works

  • Dynamic discovery – the handler is automatically registered with DynamicBase consumers via inheritance.
  • Standards alignment – PNG metadata lives in an iTXt chunk per ISO 16684 guidance.
  • Predictable behavior – read/write/remove flows mirror each other so pipelines remain idempotent.

Project Resources

Metadata

Release files for swarmauri_xmp_png 0.1.1

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

Source distribution (sdist)

Source distribution for swarmauri_xmp_png 0.1.1
File Size Uploaded
swarmauri_xmp_png-0.1.1.tar.gz 3.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for swarmauri_xmp_png 0.1.1
File Interpreter ABI Platform
swarmauri_xmp_png-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 7.6 kB

Release files / swarmauri_xmp_png-0.1.1.tar.gz

Download URL swarmauri_xmp_png-0.1.1.tar.gz
Size 3.4 kB
Tags Source
SHA-256 checksum
How to use checksums
37c011db5445efce8929bf62f8f40363aa5184a4b0021d8013f231d06b95ca9b
BLAKE2b-256 checksum
How to use checksums
075a60d8b0618a51114389655600c52fa227c277d494c792e32a7960415eeb75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / swarmauri_xmp_png-0.1.1-py3-none-any.whl

Download URL swarmauri_xmp_png-0.1.1-py3-none-any.whl
Size 4.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8bc33bec8e074f4869476dbf19f33263b587a0d72e7886ffe1903a1c32f2a159
BLAKE2b-256 checksum
How to use checksums
169bdb4df1bcfd40b471684022a060280077abfd13e5855e359453812568fdb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page