Fitz PDF Parser for Swarmauri.
Project description
Swarmauri Parser Fitz PDF
PDF-to-text parser for Swarmauri built on PyMuPDF (pymupdf). Extracts text from every page of a PDF and returns a Document object with the aggregated content and source metadata.
Features
- Opens PDFs via PyMuPDF and collects text per page.
- Emits a single
Documentwithcontentcontaining the combined text andmetadata['source']holding the file path. - Raises a clear error if the input is not a file path string; returns an empty list if PyMuPDF encounters parsing failures.
Prerequisites
- Python 3.10 or newer.
- PyMuPDF (
pymupdf) along with system dependencies (X11 libraries on Linux, poppler on some distros). Install OS packages listed in PyMuPDF docs before pip installing if needed. - Read access to the PDF files you plan to parse.
Installation
# pip
pip install swarmauri_parser_fitzpdf
# poetry
poetry add swarmauri_parser_fitzpdf
# uv (pyproject-based projects)
uv add swarmauri_parser_fitzpdf
Quickstart
from swarmauri_parser_fitzpdf import FitzPdfParser
parser = FitzPdfParser()
documents = parser.parse("reports/quarterly.pdf")
for doc in documents:
print(doc.metadata["source"])
print(doc.content[:500])
Handling Errors
from swarmauri_parser_fitzpdf import FitzPdfParser
parser = FitzPdfParser()
try:
docs = parser.parse("missing.pdf")
if not docs:
print("Parsing failed or returned no content.")
except ValueError as exc:
print(f"Bad input: {exc}")
Tips
- Pre-process PDFs (deskew, OCR) before parsing if they contain scanned pages without embedded text; PyMuPDF only extracts existing text objects.
- For multi-document pipelines, pair this parser with Swarmauri token-count measurements or summarizers to chunk large PDFs.
- Cache parsed output if the same PDF is accessed frequently—parsing large documents repeatedly is expensive.
Want to help?
If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarmauri_parser_fitzpdf-0.8.3.dev20.tar.gz.
File metadata
- Download URL: swarmauri_parser_fitzpdf-0.8.3.dev20.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23087607f768f40fa7af029b428936e2e5ad69540db4dd9972c463c5708584fb
|
|
| MD5 |
9714c6d76d092de63c2c70db647e1ce8
|
|
| BLAKE2b-256 |
fdad7e1eecc44c5735ff024af7ba1666040389c7379f150930e3c06316a25366
|
File details
Details for the file swarmauri_parser_fitzpdf-0.8.3.dev20-py3-none-any.whl.
File metadata
- Download URL: swarmauri_parser_fitzpdf-0.8.3.dev20-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf851545d2f1f37c2efdde5ac3bda2b5436e0b09edd42c35dc0527e6a7e882eb
|
|
| MD5 |
e32671f72c72a766051cc72fc7dfe242
|
|
| BLAKE2b-256 |
a31dfb94918fb0bcb3aad46c7a09cbbf4cedef1375bfee2a74049c27f0ea7dad
|