Skip to main content

Python bindings for the deterministic spoor document engine

Project description

pyspoor

Typed Python adapter for spoor-core.

from spoor import parse_path

result = parse_path("report.pdf")
print(result.content.value.markdown)
for warning in result.warnings:
    print(warning["code"], warning.get("location"))

Agents must inspect result.warnings; a successful parse can still report a missing PDF text layer, suspicious text, merged-table degradation, or omitted visuals.

Tables: narrowing and pagination

For CSV/XLSX, parse_bytes / parse_path accept the same narrowing options as the CLI, so callers can page through full tables instead of the default 100-row preview:

from spoor import parse_bytes

# A slice by inclusive 1-based row range (mutually exclusive with limit/offset)
parse_bytes(data, source_name="data.xlsx", sheet="Sheet1", rows=(5, 104))

# Or paginate by limit/offset and keep only some columns
parse_bytes(data, source_name="data.xlsx", columns=["分类", "金额"], limit=100, offset=200)

PDFs: page ranges

For page-oriented PDFs, pass pages (inclusive 1-based) to parse only a slice and avoid reading a large document end to end:

parse_path("report.pdf", pages=(1, 3))  # only pages 1–3

Extracting embedded media

Resolve a safe media URI emitted in the output (DOCX images, extractable PDF images) to raw bytes for handing to an external vision model:

from spoor import extract_media

image = extract_media(data, "spoor://docx/part/word/media/image1.png", source_name="report.docx")

Build locally with maturin develop.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pyspoor-0.8.15-cp39-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.9+Windows x86-64

pyspoor-0.8.15-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

pyspoor-0.8.15-cp39-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

pyspoor-0.8.15-cp39-abi3-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file pyspoor-0.8.15-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: pyspoor-0.8.15-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyspoor-0.8.15-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c9c42586e98fa37339203b3b4c3d75868999a94d4883f80a880e9fed92172785
MD5 e4cb798252b01d9d701b108318a7812a
BLAKE2b-256 3a51d2682814ed47e5ccfda37a309e6689db5ffa5c7d891efb1492c9e0d2eead

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyspoor-0.8.15-cp39-abi3-win_amd64.whl:

Publisher: release-bindings.yml on harrisonwang/spoor

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

File details

Details for the file pyspoor-0.8.15-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyspoor-0.8.15-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8879bcf721fd66a7a53c1dbf1d61bfe9ed9b6cea7b7a733190ac354b3057d51
MD5 f08b8df34f44b25d7d5ded107480581a
BLAKE2b-256 6e1e8baa9b52ca94d49fa5d1a269cc9ab7dfb106a76b9305b667ae3e2306ff7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyspoor-0.8.15-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-bindings.yml on harrisonwang/spoor

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

File details

Details for the file pyspoor-0.8.15-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyspoor-0.8.15-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab17a8cf24a3097aef29757e31e0f0c3f6c7767aa2794c595674101f5c9fd5cb
MD5 70e32cbc83bf4405928866885d43af67
BLAKE2b-256 0876402373902a10307b6555fe9e9ebb4fb16133165ce34f0a0016c7a2acaf99

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyspoor-0.8.15-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: release-bindings.yml on harrisonwang/spoor

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

File details

Details for the file pyspoor-0.8.15-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyspoor-0.8.15-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ac669341eae39251ab00c7cd731fa56e3be42c14226d84bcdf6c8f7e935ff6b9
MD5 ccc8d15d868d647ead8471b2cd27ea18
BLAKE2b-256 b53e1ab93c6ba62a0ebeb72c5a0f3e60b3682c33feedbcb0383f36a0ca666954

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyspoor-0.8.15-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: release-bindings.yml on harrisonwang/spoor

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