pdftract/crates/pdftract-py/pyproject.toml
jedarden 0dbbbf967f
Some checks are pending
Schema Generation Validation / Validate JSON Schema (push) Waiting to run
Schema Generation Validation / Validate JSON Syntax (push) Waiting to run
feat(pdftract-30ahi): configure maturin for 5-target wheel builds
Configure maturin to build Python wheels for 5 target triples using
cross-compilation from a single Linux runner. Enable ABI3 for forward
compatibility across Python 3.10+.

Changes:
- pyproject.toml: Set requires-python = ">=3.10" (down from 3.11)
- pyproject.toml: Add Python 3.10 classifier
- pyproject.toml: Update comment to reflect 3.10+ compatibility
- Cargo.toml: Add pyo3 abi3-py310 feature
- docs/operations/build-wheels.md: Document cross-compilation setup

Target triples:
- x86_64-unknown-linux-gnu (manylinux_2_28_x86_64)
- aarch64-unknown-linux-gnu (manylinux_2_28_aarch64)
- x86_64-apple-darwin (macosx_11_0_x86_64)
- aarch64-apple-darwin (macosx_11_0_arm64)
- x86_64-pc-windows-gnu (win_amd64)

All wheels will be ABI3 (cp310-abi3) compatible, producing a single
wheel per platform instead of N versions × 5 platforms.

Refs: pdftract-30ahi, Phase 6.3.4
2026-05-28 08:04:32 -04:00

43 lines
1.5 KiB
TOML

[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"
[project]
name = "pdftract"
dynamic = ["version"]
description = "PDF text extraction library with robust encoding detection"
readme = "README.md"
requires-python = ">=3.10"
license = {text = "MIT OR Apache-2.0"}
keywords = ["pdf", "text-extraction", "encoding-detection"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Rust",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Text Processing :: Linguistic",
]
[project.urls]
Homepage = "https://github.com/jedarden/pdftract"
Documentation = "https://github.com/jedarden/pdftract"
Repository = "https://github.com/jedarden/pdftract"
Issues = "https://github.com/jedarden/pdftract/issues"
[tool.maturin]
features = ["pyo3/extension-module"]
# Strip symbols from the final wheel for smaller size
strip = true
# Use abi3 for forward compatibility across Python 3.10+
python-source = "python"
# Include license files in the wheel
license-files = ["../../LICENSE-MIT", "../../LICENSE-APACHE"]
# Dynamic version from Cargo.toml
version-provider = "cargo"