Skip to main content

PNG handler for embedding and extracting XMP packets in Swarmauri runtimes.

Project description

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

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

swarmauri_xmp_png-0.1.2.dev3.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

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

swarmauri_xmp_png-0.1.2.dev3-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file swarmauri_xmp_png-0.1.2.dev3.tar.gz.

File metadata

  • Download URL: swarmauri_xmp_png-0.1.2.dev3.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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}

File hashes

Hashes for swarmauri_xmp_png-0.1.2.dev3.tar.gz
Algorithm Hash digest
SHA256 6aa3a4da6ab6baa6d5fd987b437929f2b19aba417b3f3f55cc7bc4331d29d600
MD5 2c153276eaa680d71fbdf8dea8d73e65
BLAKE2b-256 dc8a9258a11050e31833d7619420c2eccc49db7b77fc4deae163e45d03a4e343

See more details on using hashes here.

File details

Details for the file swarmauri_xmp_png-0.1.2.dev3-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_xmp_png-0.1.2.dev3-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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}

File hashes

Hashes for swarmauri_xmp_png-0.1.2.dev3-py3-none-any.whl
Algorithm Hash digest
SHA256 079e0b2d64e3e1eeb9c36811ed60a987cec43fbe666b59d428875fc6f72ffa8f
MD5 9ab81a79bcf32e5bb8b220a52da9398a
BLAKE2b-256 614779d58336a7fb27c1b61ff2de10aae621129e8781a41d1d3ab90d1cb02c15

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