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.12-cp39-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.9+Windows x86-64

pyspoor-0.8.12-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.12-cp39-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

pyspoor-0.8.12-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.12-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: pyspoor-0.8.12-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.12-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bd5d18546fb48945c1897cfaa236596585dcd1ebcd196338fda027d85df9dce9
MD5 126f602d6fb7fee402c3fad775304cb8
BLAKE2b-256 d04d044e8e2b0484248de604df4c57cb9f782908ba738e4e1b4bc3599752c016

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyspoor-0.8.12-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.12-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyspoor-0.8.12-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e27f4ba7649f362ee92daf1f73a09192001048845e4c5a49dad069e8ca78bbdb
MD5 9e3eae19b1dd491e16a2aeb3c2f4f47c
BLAKE2b-256 96a4f6d6bed4bceccef62ec04779efcaff3177b47c9fc2e2cf459b7d2597e02f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyspoor-0.8.12-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.12-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyspoor-0.8.12-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9506e759eced9758cdd24d1699efa05a8cf72c4c087d4386fc385853ad39264
MD5 781c9ee34cc1f4a37831747d986325ce
BLAKE2b-256 9d9c7bc471de209edb6e023de7c4d97a6d432856f3936030ccc0ee96e3f993dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyspoor-0.8.12-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.12-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyspoor-0.8.12-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2c05a8454841733e0b3e4f371241218888a935249e22ec95a2c5d56799156c52
MD5 0cd1981d0cc5dae82dd8f2e864fd91b9
BLAKE2b-256 09e3ab0213ebbdfd5426b66d8bfb7c6b114ea3d69395e20a32308e7442a1b853

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyspoor-0.8.12-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