swarmauri_xmp_pdf 0.1.1.dev32__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ This project is licensed under the Apache License 2.0.
2
+ See the root LICENSE file of the swarmauri-sdk repository.
@@ -0,0 +1,87 @@
1
+ Metadata-Version: 2.4
2
+ Name: swarmauri_xmp_pdf
3
+ Version: 0.1.1.dev32
4
+ Summary: PDF handler scaffold for embedding and extracting XMP packets in Swarmauri runtimes.
5
+ License-Expression: Apache-2.0
6
+ License-File: LICENSE
7
+ Keywords: swarmauri,sdk,standards,xmp,pdf
8
+ Author: Jacob Stewart
9
+ Author-email: jacob@swarmauri.com
10
+ Requires-Python: >=3.10,<3.13
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Natural Language :: English
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Development Status :: 2 - Pre-Alpha
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Requires-Dist: swarmauri_base
22
+ Requires-Dist: swarmauri_core
23
+ Project-URL: Homepage, https://github.com/swarmauri/swarmauri-sdk
24
+ Description-Content-Type: text/markdown
25
+
26
+ ![Swarmauri Logo](https://github.com/swarmauri/swarmauri-sdk/blob/3d4d1cfa949399d7019ae9d8f296afba773dfb7f/assets/swarmauri.brand.theme.svg)
27
+
28
+
29
+ <p align="center">
30
+ <a href="https://pypi.org/project/swarmauri_xmp_pdf/">
31
+ <img src="https://img.shields.io/pypi/dm/swarmauri_xmp_pdf" alt="PyPI - Downloads"/></a>
32
+ <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/standards/swarmauri_xmp_pdf/">
33
+ <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/standards/swarmauri_xmp_pdf.svg"/></a>
34
+ <a href="https://pypi.org/project/swarmauri_xmp_pdf/">
35
+ <img src="https://img.shields.io/pypi/pyversions/swarmauri_xmp_pdf" alt="PyPI - Python Version"/></a>
36
+ <a href="https://pypi.org/project/swarmauri_xmp_pdf/">
37
+ <img src="https://img.shields.io/pypi/l/swarmauri_xmp_pdf" alt="PyPI - License"/></a>
38
+ <a href="https://pypi.org/project/swarmauri_xmp_pdf/">
39
+ <img src="https://img.shields.io/pypi/v/swarmauri_xmp_pdf?label=swarmauri_xmp_pdf&color=green" alt="PyPI - swarmauri_xmp_pdf"/></a>
40
+ </p>
41
+
42
+ ---
43
+
44
+ # swarmauri_xmp_pdf
45
+
46
+ `swarmauri_xmp_pdf` defines the `PDFXMP` scaffold so PDF metadata streams can adopt Swarmauri's XMP lifecycle once implemented.
47
+
48
+ ## Features
49
+
50
+ - **Future-proof** – defines the API surface for PDF metadata before implementation begins.
51
+ - **Registry-integrated** – extends `EmbedXmpBase`, so discovery happens automatically once functionality ships.
52
+ - **Clear guidance** – explicit errors communicate the current development status to downstream users.
53
+
54
+ ## Installation
55
+
56
+ ```bash
57
+ # pip
58
+ pip install swarmauri_xmp_pdf
59
+
60
+ # uv
61
+ uv add swarmauri_xmp_pdf
62
+ ```
63
+
64
+ ## Usage
65
+
66
+ ```python
67
+ from swarmauri_xmp_pdf import PDFXMP
68
+
69
+ handler = PDFXMP()
70
+
71
+ try:
72
+ handler.remove_xmp(b"%PDF-1.7...")
73
+ except NotImplementedError:
74
+ print("PDF XMP support will arrive in a future release.")
75
+ ```
76
+
77
+ ### Why it works
78
+
79
+ - **Future-proof** – defines the API surface for PDF metadata before implementation begins.
80
+ - **Registry-integrated** – extends `EmbedXmpBase`, so discovery happens automatically once functionality ships.
81
+ - **Clear guidance** – explicit errors communicate the current development status to downstream users.
82
+
83
+ ## Project Resources
84
+
85
+ - Source: <https://github.com/swarmauri/swarmauri-sdk>
86
+ - License: Apache 2.0
87
+
@@ -0,0 +1,61 @@
1
+ ![Swarmauri Logo](https://github.com/swarmauri/swarmauri-sdk/blob/3d4d1cfa949399d7019ae9d8f296afba773dfb7f/assets/swarmauri.brand.theme.svg)
2
+
3
+
4
+ <p align="center">
5
+ <a href="https://pypi.org/project/swarmauri_xmp_pdf/">
6
+ <img src="https://img.shields.io/pypi/dm/swarmauri_xmp_pdf" alt="PyPI - Downloads"/></a>
7
+ <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/standards/swarmauri_xmp_pdf/">
8
+ <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/standards/swarmauri_xmp_pdf.svg"/></a>
9
+ <a href="https://pypi.org/project/swarmauri_xmp_pdf/">
10
+ <img src="https://img.shields.io/pypi/pyversions/swarmauri_xmp_pdf" alt="PyPI - Python Version"/></a>
11
+ <a href="https://pypi.org/project/swarmauri_xmp_pdf/">
12
+ <img src="https://img.shields.io/pypi/l/swarmauri_xmp_pdf" alt="PyPI - License"/></a>
13
+ <a href="https://pypi.org/project/swarmauri_xmp_pdf/">
14
+ <img src="https://img.shields.io/pypi/v/swarmauri_xmp_pdf?label=swarmauri_xmp_pdf&color=green" alt="PyPI - swarmauri_xmp_pdf"/></a>
15
+ </p>
16
+
17
+ ---
18
+
19
+ # swarmauri_xmp_pdf
20
+
21
+ `swarmauri_xmp_pdf` defines the `PDFXMP` scaffold so PDF metadata streams can adopt Swarmauri's XMP lifecycle once implemented.
22
+
23
+ ## Features
24
+
25
+ - **Future-proof** – defines the API surface for PDF metadata before implementation begins.
26
+ - **Registry-integrated** – extends `EmbedXmpBase`, so discovery happens automatically once functionality ships.
27
+ - **Clear guidance** – explicit errors communicate the current development status to downstream users.
28
+
29
+ ## Installation
30
+
31
+ ```bash
32
+ # pip
33
+ pip install swarmauri_xmp_pdf
34
+
35
+ # uv
36
+ uv add swarmauri_xmp_pdf
37
+ ```
38
+
39
+ ## Usage
40
+
41
+ ```python
42
+ from swarmauri_xmp_pdf import PDFXMP
43
+
44
+ handler = PDFXMP()
45
+
46
+ try:
47
+ handler.remove_xmp(b"%PDF-1.7...")
48
+ except NotImplementedError:
49
+ print("PDF XMP support will arrive in a future release.")
50
+ ```
51
+
52
+ ### Why it works
53
+
54
+ - **Future-proof** – defines the API surface for PDF metadata before implementation begins.
55
+ - **Registry-integrated** – extends `EmbedXmpBase`, so discovery happens automatically once functionality ships.
56
+ - **Clear guidance** – explicit errors communicate the current development status to downstream users.
57
+
58
+ ## Project Resources
59
+
60
+ - Source: <https://github.com/swarmauri/swarmauri-sdk>
61
+ - License: Apache 2.0
@@ -0,0 +1,51 @@
1
+ [project]
2
+ name = "swarmauri_xmp_pdf"
3
+ version = "0.1.1.dev32"
4
+ description = "PDF handler scaffold for embedding and extracting XMP packets in Swarmauri runtimes."
5
+ license = "Apache-2.0"
6
+ readme = "README.md"
7
+ requires-python = ">=3.10,<3.13"
8
+ classifiers = [
9
+ "License :: OSI Approved :: Apache Software License",
10
+ "Natural Language :: English",
11
+ "Programming Language :: Python :: 3.10",
12
+ "Programming Language :: Python :: 3.11",
13
+ "Programming Language :: Python :: 3.12",
14
+ "Programming Language :: Python :: 3.13",
15
+ "Development Status :: 2 - Pre-Alpha",
16
+ "Programming Language :: Python",
17
+ "Programming Language :: Python :: 3",
18
+ "Programming Language :: Python :: 3 :: Only",
19
+ ]
20
+ authors = [{ name = "Jacob Stewart", email = "jacob@swarmauri.com" }]
21
+ dependencies = [
22
+ "swarmauri_core",
23
+ "swarmauri_base",
24
+ ]
25
+ keywords = [
26
+ 'swarmauri',
27
+ 'sdk',
28
+ 'standards',
29
+ 'xmp',
30
+ 'pdf',
31
+ ]
32
+
33
+ [project.urls]
34
+ Homepage = "https://github.com/swarmauri/swarmauri-sdk"
35
+
36
+ [project.entry-points.'swarmauri.xmp_handlers']
37
+ PDFXMP = "swarmauri_xmp_pdf:PDFXMP"
38
+
39
+ [tool.uv.sources]
40
+ swarmauri_core = { workspace = true }
41
+ swarmauri_base = { workspace = true }
42
+
43
+ [build-system]
44
+ requires = ["poetry-core>=1.0.0"]
45
+ build-backend = "poetry.core.masonry.api"
46
+
47
+ [dependency-groups]
48
+ dev = [
49
+ "pytest>=8.0",
50
+ "ruff>=0.9",
51
+ ]
@@ -0,0 +1,26 @@
1
+ """PDF XMP handler scaffold."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from swarmauri_base import register_type
6
+ from swarmauri_base.xmp import EmbedXmpBase
7
+
8
+
9
+ @register_type(resource_type=EmbedXmpBase)
10
+ class PDFXMP(EmbedXmpBase):
11
+ """Placeholder handler for PDF metadata streams."""
12
+
13
+ def supports(self, header: bytes, path: str) -> bool:
14
+ return path.lower().endswith(".pdf") or header.startswith(b"%PDF-")
15
+
16
+ def read_xmp(self, data: bytes) -> str | None:
17
+ raise NotImplementedError("PDF XMP read not implemented yet")
18
+
19
+ def write_xmp(self, data: bytes, xmp_xml: str) -> bytes:
20
+ raise NotImplementedError("PDF XMP write not implemented yet")
21
+
22
+ def remove_xmp(self, data: bytes) -> bytes:
23
+ raise NotImplementedError("PDF XMP remove not implemented yet")
24
+
25
+
26
+ __all__ = ["PDFXMP"]