Skip to main content

Python bindings for oxidize-pdf — generate, parse, split, merge, and manipulate PDF files

Project description

oxidize-pdf

PyPI version CI License: MIT Python Typed

Python bindings for oxidize-pdf, a pure Rust PDF generation and manipulation library. Includes a built-in MCP server for AI-powered PDF workflows.

Generate, parse, split, merge, and manipulate PDF files from Python with native performance — no C dependencies, no Java, no subprocess calls.

Why oxidize-pdf?

Most Python PDF libraries are written in pure Python or wrap C/Java backends. oxidize-pdf is different: the core engine is written in Rust and compiled to a native Python extension via PyO3. This means:

  • Native performance — The core is compiled Rust, not interpreted Python
  • Zero external dependencies — No Poppler, no Java, no Ghostscript, no subprocess calls
  • Memory safe — Rust's ownership model prevents crashes and memory leaks
  • Fully typed — Ships with type stubs, works with mypy/pyright out of the box
  • Cross-platform wheels — Pre-built for Linux, macOS, and Windows (x86_64 + ARM)
  • MCP server included — Expose PDF tools to AI agents via the Model Context Protocol

Installation

pip install oxidize-pdf

Supported platforms: Linux (x86_64, aarch64), macOS (x86_64, Apple Silicon), Windows (x86_64) Requires: Python 3.10+

Quick start

Create a PDF

from oxidize_pdf import Document, Page, Font, Color

doc = Document()
doc.set_title("My Document")
doc.set_author("Jane Doe")

page = Page.a4()
page.set_font(Font.HELVETICA, 24.0)
page.set_text_color(Color.black())
page.text_at(72.0, 750.0, "Hello from oxidize-pdf!")

page.set_font(Font.TIMES_ROMAN, 12.0)
page.text_at(72.0, 700.0, "Generated with Python + Rust.")

doc.add_page(page)
doc.save("output.pdf")

Parse an existing PDF

from oxidize_pdf import PdfReader

reader = PdfReader.open("document.pdf")
print(f"Pages: {reader.page_count}, Version: {reader.version}")

# Extract text from all pages
for i, text in enumerate(reader.extract_text()):
    print(f"--- Page {i + 1} ---")
    print(text)

# Inspect page dimensions
page = reader.get_page(0)
print(f"Size: {page.width} x {page.height} points")

Operations

Split a PDF into individual pages

from oxidize_pdf import split_pdf

files = split_pdf("input.pdf", "output_dir/")
# Returns: ["output_dir/page_1.pdf", "output_dir/page_2.pdf", ...]

Merge multiple PDFs

from oxidize_pdf import merge_pdfs

merge_pdfs(["part1.pdf", "part2.pdf", "part3.pdf"], "merged.pdf")

Rotate all pages

from oxidize_pdf import rotate_pdf

rotate_pdf("input.pdf", "rotated.pdf", 90)  # 0, 90, 180, or 270 degrees

Extract specific pages

from oxidize_pdf import extract_pages

extract_pages("input.pdf", "subset.pdf", [0, 2, 4])  # 0-based indices

Graphics

from oxidize_pdf import Document, Page, Color

doc = Document()
page = Page.a4()

# Draw a filled rectangle
page.set_fill_color(Color.hex("#3498db"))
page.draw_rect(72.0, 700.0, 200.0, 100.0)
page.fill()

# Draw a circle with stroke
page.set_stroke_color(Color.red())
page.set_line_width(2.0)
page.draw_circle(300.0, 500.0, 50.0)
page.stroke()

# Draw a custom path
page.set_fill_color(Color.rgb(0.2, 0.8, 0.2))
page.move_to(100.0, 400.0)
page.line_to(200.0, 400.0)
page.line_to(150.0, 450.0)
page.close_path()
page.fill_and_stroke()

doc.add_page(page)
doc.save("graphics.pdf")

Types

Color

from oxidize_pdf import Color

color = Color.rgb(1.0, 0.0, 0.0)       # Red (values 0.0–1.0)
color = Color.gray(0.5)                  # 50% gray
color = Color.cmyk(0.0, 1.0, 1.0, 0.0)  # CMYK red
color = Color.hex("#ff6600")             # From hex string
color = Color.black()                    # Convenience presets

Point, Rectangle, Margins

from oxidize_pdf import Point, Rectangle, Margins

point = Point(72.0, 720.0)
origin = Point.origin()

rect = Rectangle(Point(0.0, 0.0), Point(612.0, 792.0))
rect = Rectangle.from_xywh(72.0, 72.0, 468.0, 648.0)
print(f"{rect.width} x {rect.height}, center: {rect.center}")

margins = Margins(top=72.0, right=72.0, bottom=72.0, left=72.0)
margins = Margins.uniform(72.0)  # Same value for all sides

Fonts

All 14 standard PDF fonts are available:

from oxidize_pdf import Font

Font.HELVETICA             # Font.HELVETICA_BOLD
Font.TIMES_ROMAN           # Font.TIMES_BOLD
Font.COURIER               # Font.COURIER_BOLD
Font.SYMBOL                # Font.ZAPF_DINGBATS
# ... and italic/oblique variants

Error handling

All exceptions inherit from PdfError:

from oxidize_pdf import PdfReader, PdfError, PdfIoError, PdfParseError

try:
    reader = PdfReader.open("missing.pdf")
except PdfIoError as e:
    print(f"I/O error: {e}")
except PdfParseError as e:
    print(f"Parse error: {e}")
except PdfError as e:
    print(f"PDF error: {e}")

Exception hierarchy:

  • PdfError — base class
    • PdfIoError — file I/O errors
    • PdfParseError — malformed PDF structure
    • PdfEncryptionError — encryption/decryption failures
    • PdfPermissionError — operation denied by document permissions

Type checking

oxidize-pdf ships with type stubs and a py.typed marker. Full autocomplete and type checking work out of the box with mypy, pyright, and IDEs.

MCP Server

oxidize-pdf includes a built-in Model Context Protocol server that exposes PDF operations as tools for AI agents like Claude, GPT, and other MCP-compatible clients.

Installation

pip install "oxidize-pdf[mcp]"

Running the server

oxidize-mcp

Or programmatically:

from oxidize_pdf.mcp.server import run
run()

Configuration

Set the workspace directory via environment variable:

OXIDIZE_WORKSPACE=/path/to/pdfs oxidize-mcp

Available tools

Tool Description
read_pdf Read PDF metadata — page count, version, encryption status, title, author
extract_text Extract text from all pages or a specific page
convert_pdf Convert PDF to markdown, chunks, or RAG-optimized format
create_pdf Create a new PDF document with optional metadata
save_pdf Save a PDF session to disk, with optional encryption
add_content Add pages, text, and graphics to a PDF session
annotate_pdf Add text annotations and highlights to a PDF
manipulate_pdf Split, merge, rotate, extract pages, reverse, or overlay PDFs
manage_forms Create, fill, read, and validate PDF form fields
secure_pdf Encrypt PDFs, check permissions, verify signatures
extract_entities Extract structured entities (text, metadata) from PDF pages
analyze_pdf Validate PDF structure, detect corruption, check PDF/A compliance

Resources and prompts

The server also exposes 6 resources (session data, capabilities, version info) and 5 prompts (guided workflows for common tasks like summarization, data extraction, and form filling).

Integration with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "oxidize-pdf": {
      "command": "oxidize-mcp",
      "env": {
        "OXIDIZE_WORKSPACE": "/path/to/your/pdfs"
      }
    }
  }
}

Known limitations

  • Encryption write support: Document.encrypt() configures encryption parameters but the underlying Rust library does not yet serialize the encryption dictionary to the PDF output. The PdfReader.is_encrypted / unlock() API for reading encrypted PDFs works correctly.
  • CPython only: PyPy and GraalPy are not supported.

License

MIT — see LICENSE for details.

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

oxidize_pdf-0.3.0.tar.gz (261.4 kB view details)

Uploaded Source

Built Distributions

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

oxidize_pdf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

oxidize_pdf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

oxidize_pdf-0.3.0-cp314-cp314t-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

oxidize_pdf-0.3.0-cp314-cp314-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.14Windows x86-64

oxidize_pdf-0.3.0-cp314-cp314-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

oxidize_pdf-0.3.0-cp314-cp314-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

oxidize_pdf-0.3.0-cp314-cp314-macosx_11_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

oxidize_pdf-0.3.0-cp314-cp314-macosx_10_12_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

oxidize_pdf-0.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

oxidize_pdf-0.3.0-cp313-cp313-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.13Windows x86-64

oxidize_pdf-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

oxidize_pdf-0.3.0-cp313-cp313-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

oxidize_pdf-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

oxidize_pdf-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

oxidize_pdf-0.3.0-cp312-cp312-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.12Windows x86-64

oxidize_pdf-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

oxidize_pdf-0.3.0-cp312-cp312-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

oxidize_pdf-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

oxidize_pdf-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

oxidize_pdf-0.3.0-cp311-cp311-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.11Windows x86-64

oxidize_pdf-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

oxidize_pdf-0.3.0-cp311-cp311-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

oxidize_pdf-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

oxidize_pdf-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

oxidize_pdf-0.3.0-cp310-cp310-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.10Windows x86-64

oxidize_pdf-0.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

oxidize_pdf-0.3.0-cp310-cp310-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

File details

Details for the file oxidize_pdf-0.3.0.tar.gz.

File metadata

  • Download URL: oxidize_pdf-0.3.0.tar.gz
  • Upload date:
  • Size: 261.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for oxidize_pdf-0.3.0.tar.gz
Algorithm Hash digest
SHA256 642384d8c7c6af37407290bdfd60a41ddf21bc9ae564626a9e8dc94d4fc6c31f
MD5 0b1f0c10d81ba9192c6ffb91602b1a4c
BLAKE2b-256 3f4ca126be241cca8a37dbb58274d64afb4c871e5ff0feb71c51b35a972f2467

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0.tar.gz:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ba233d68adb5618a9011ab14e26e693d5a31e009faf87bbe2da8ad4d315729cf
MD5 1b45e98042379ad24d148026ebcaaedc
BLAKE2b-256 d9196d74038350f28969052acd1edaa28b21058abe49d16e09f83736d0e84d98

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ba44edecc9857265c8c1b0c395461c609109ccba253470988024f2c14a61324f
MD5 bc2814a7f467136eb5b3b89d98d26d4a
BLAKE2b-256 14962f817f5705689d218e3c189f57082bd2556759c33452da62b7c519ff0897

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f365999abf563ed82abaad4b8fb3ea4da18029c97ac2361f13c58c2b3f335323
MD5 ad331f7018c7eee82fb5e4f0611bde3f
BLAKE2b-256 c5f115c8ff0b96b0e90f161960efcf37ec5b214b3ada3f71546a8194dfcf8701

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp314-cp314t-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0cdd5b5d9195117a986497f2c2e72a276bcd15df225d8fd8df7d1e4805653e8d
MD5 2cebdcbe627f07bed4edad06b783e079
BLAKE2b-256 3a2dd9693966220c49b4fbbfa89e59375bdd463c1a97158dcd25f6e5891bc298

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7f45f9e2f56a3d6fd1ecaca87eb027cd73ecc8b840ebeda9bb7a3a2cddb5b1d
MD5 7379452299080018ff3328846fc059ac
BLAKE2b-256 bae88f33c822e2a6c7b4361a419c67eb4e1eb56961a8f64e28eeeb3451fe4fdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 14023341964b48ca0e72cc0972d899805259ac460526a55f7b5d8f58493858d2
MD5 4ed4e88334aa45b24874aeac4761d99d
BLAKE2b-256 36fe81df5dd4a4292bf5b29504ba7412d2cdd7cb85d8c672d3f7544e95212e16

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp314-cp314-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d0fd010aa754ab7ce6f3a9ebc38a8b4e73773282f1dd0f60ec12986daae54ac
MD5 22cb912cf4886dd54fac3670c8480fac
BLAKE2b-256 6976148638bb40cef2177b88ccee5ed7e67d568847ca6b177d4d1ec5a5782903

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b64546f1aae6b1cefd9bf10d09e1053fb946bc6502a3d0a101b687ced2067ef3
MD5 f59c95cb36cb31845ec63a099a949d5d
BLAKE2b-256 9114b0c15254e62a6b3e32d9ce135cc0f78d0fbf47aeb01ff1003012e02ec794

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8490258d23d95c005c6b00f6e7b7d61cf8fb6550b87964656dea5a1a3573a619
MD5 e82e9fb12a8fa1deb6c44bfdf3c9c2f2
BLAKE2b-256 7a273176e7abef3fe24689e7e93e11bdebfd7352500ec2729cbb3147ec622dcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f0ce13eab79339a34c6f9b0dfdbe2f0338d907b9111acba0c179442f0d3bfcf1
MD5 6960b66723ee23c7c27bf7c257d613cd
BLAKE2b-256 603560bd40804dce6d6e798af3bccf92faff5540831114b276a92800f4bfbea1

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9abada042e48332a29fa104667055707fb1c62fe7b0e067db17f33a970ac8522
MD5 4e00bb00f33c73a297a61f28def865c8
BLAKE2b-256 8b30b94b35674b389ac31a1097bcf926872650490a25c5b6681b8e68e8757bf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 82a8bfe67b8539cc23b09fe2322b793dd267d89d7368ae40e0e288aa62632a5d
MD5 49a67e66c1d12f86a4517c78ec4b1f39
BLAKE2b-256 6b17a3bd85ef73a372da06aa8898f671ba449b8f6ef75932ec63f7cafef16444

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f0533fa4f0387fc879c8594be67d8c33c8b24172ba7d8d6abfac0ed0feb4006
MD5 e60c7478bb28ba9bfd36077a57df30d6
BLAKE2b-256 2a9c5db73a777d3d8b15e766e5f2ba1b6a1ab7d3e3ddb846a5adb076cb3f19bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4f918f1758b2bd4e9b431cdaadb64a0546f2bc5ee31540fae69561221ca59887
MD5 aede2fc17b2a8513d20e359fbd8cf03d
BLAKE2b-256 1acf30ef9125ce9e5adfc077169513245083cd0a65fadcd36b48190231b66190

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bd862373ad9210cbc3958cd197d8e87f17c7ab7726b06df5c1dfee7035762084
MD5 1da775a61e4cc0d9a613ee8b8bf7a2d5
BLAKE2b-256 c6a777d02b71f43aa4dc28c9f331aeb4ed60244462b36695ae7c754f9e81aed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5e39859a755e64be1aaca8766a770e3a5f685a01a51cb8cc406c6862cdc1e225
MD5 295baaf4da00552200e96f3e567f0ab2
BLAKE2b-256 e1f1091fdef3bbea4a966919f49f858c5d50a5a50db42dfe1d70e28302156d6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ca282c0dcb90ed0c8ac0c91e4cdc740d6066372a34382c8d2482e38406298ef3
MD5 a3cd23dc30a456ce623b155ba3018e80
BLAKE2b-256 7a639e8b2720f4ee00bf13dbe84fd9c4d061d358b9b0c720dcab64a839b00bfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3109869b7631cbb1185347d4ab5a67571b319eb24d040dd9d80027c397c89a6f
MD5 d43a805e8e83d6942c78031e57ae1a9d
BLAKE2b-256 3e1904725d43dbd3552fca75bb98c1b391d91e0dbe3083fbd86ef7530105c992

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4de2dbd2e71ec357a243303c536d6c8e8f2686d2163d2fabeee2226b557166a7
MD5 1dfcf25b98a86bf785271a70a3e2eec7
BLAKE2b-256 36365ceaddc6dfc7252342a91a9235fb4288517c0398ea8ac0072eff9fc716bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bc0c338144ea8a4ec5c121528b9d3fe173aa3ac3ddc96857e4735b80addb28a8
MD5 8e82f64f2af74f53952d533dd889edc7
BLAKE2b-256 ed7ea7a2fd885ca5c665d7c809c7d4c9160a7961087a15901ff059c6eedcb5ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 351a47c1d27c20087faf175fb77062c793f5c9ea55ec2ad532146041d1d8801e
MD5 7d46fb02b19703a4ec650024a5ee8b20
BLAKE2b-256 da8c4bc98f21efcd16ce4bbab6adafe091f2b7fa7102490142a9ce465a0d5758

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4235011cf84812d08ee51c81eaa6b14108be03f1d5c945b243b5cf83f688b917
MD5 564c678be6f835e02029425ebe6adbf2
BLAKE2b-256 1a33dd76012758b9de1a9ef66b239b71bda0f542da82e30132231c7c3b083136

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46787debbc6932b739693e28330e476c104e2534b27333e94b1088e377edacc1
MD5 f084053b4e9723335dfff34dba321d70
BLAKE2b-256 b9a94ed8fa87f50663741b637a4ec46e546aee04bc8b1508bc126da800fd916c

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 be9f362450f7e2419bc9f42b6b3aada4418d24f892654c9ef390d7d26c288b55
MD5 35c0a2ce1acd7c8b9382423c38ae1d11
BLAKE2b-256 5ffc8a3d00118e45e07fbf15ea83302f7d7743717e38a9d4b965c8048f277b84

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 aa7ce68c65bfdb0edfe6188d12c32862a0c7b110140e772249689625ccb16616
MD5 400c5cd963ce8d9e5324adda550055f2
BLAKE2b-256 db8e3b5d975957b475343f549a29f980e0c7bffa5ea8af8eca3ecc660e9ecdbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 18e7d72a65385167c8268de3a29d8fc30c6281cceb63f7385a182ad79739b5c5
MD5 c7e10bb8c89380edf84b34bb1fec3b4d
BLAKE2b-256 e2da13672db973adc347cb458477d9a766736d3c0bfc928d7e8400cac6ab7e9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxidize_pdf-0.3.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for oxidize_pdf-0.3.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d2687dff2a7170993a08c35d69eabb8fc5fd2143326d0827f0c2a490a4a9f06b
MD5 a499002f2653f00f2ffb530faa332d4b
BLAKE2b-256 a38a2e7898e1a8a07e01b5a5913efe896a4d2bbe7b0c4d7f04de8e1059e50846

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxidize_pdf-0.3.0-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bzsanti/oxidize-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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