Metadata-Version: 2.4
Name: compile-pdf-separations
Version: 0.1.1
Summary: CompilePDF separations producer — read-only named-ink (separation) enumeration for PDFs.
Project-URL: Homepage, https://compilepdf.com
Project-URL: Repository, https://github.com/printwithsynergy/compile-pdf-separations
Project-URL: Issues, https://github.com/printwithsynergy/compile-pdf-separations/issues
Author-email: Print With Synergy <iam@quincy.codes>
License: AGPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.12
Requires-Dist: fastapi>=0.110
Requires-Dist: pikepdf>=8.13
Requires-Dist: pydantic>=2.6
Requires-Dist: structlog>=24.1
Provides-Extra: dev
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: mypy>=1.9; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=4.1; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Description-Content-Type: text/markdown

# compile-pdf-separations

CompilePDF **separations** producer — read-only enumeration of the named inks
(separations) declared in a PDF's colour-space resources.

It walks an input PDF's `/Resources/ColorSpace` entries and returns every named
`/Separation` found, aggregated by ink across pages. It carries no producer-side
state, writes no PDF, and computes no cache key — so, like `spots`, its router
mounts always-on in the central [compile-pdf](https://github.com/printwithsynergy/compile-pdf)
app (independent of `COMPILE_PRODUCER`).

Part of the CompilePDF producer family; each producer lives in its own repo and
PyPI package. See [compile-pdf](https://github.com/printwithsynergy/compile-pdf)
for the orchestrator that mounts them.

## Install

```bash
uv pip install compile-pdf-separations
```

## HTTP surface

Mounted under `/v1/separations` by the host app:

- `POST /v1/separations/list` — `{ input_pdf_b64 }` → the named separations
  found, sorted by name (deterministic).

## License

AGPL-3.0-or-later. Copyright © 2024–2026 Print with Synergy.
