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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

pyspoor-0.8.17-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.17-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: pyspoor-0.8.17-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.17-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a9af608feb2acecee501d3eb72de6403babf37c9b0400dda6048f6c563076879
MD5 c979ec9b26cba8fc42ed3202cfc9ade4
BLAKE2b-256 88fe4efccec3f378fe5d50c6dcd97c3d6fce8ba1d90c8292e01be532895475a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyspoor-0.8.17-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ae9ef9aea33ae7733e044cf0db54d37d22bc2f3ff17eabb29d3c229a4f22303
MD5 d79513966732d584c8fd5bdbdeec8aef
BLAKE2b-256 ea2c50eacd92860196bc1a1b963366566ba204abcd8432a08c9846ba90b33233

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyspoor-0.8.17-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8cbd27d970e8878b94a36ce1d0c819f8049a4daa17f03f0073222a289ae191b
MD5 71234ff82fee472f14aa106a881bc4d5
BLAKE2b-256 e61f7f2b27f48c928efdad1e31605f8723f69ce10060159e1b162332b5c5ad2f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyspoor-0.8.17-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b65f7594fbfc4c161136bc8969d349220c7caee0e4d6c8f19568a0d9c4eb942c
MD5 0d206e5c1481680f6dd2fda7cf18d951
BLAKE2b-256 5939b0c5e93c3841942655ce6dcede92651a8dba9624d4cca88c98001ac0a694

See more details on using hashes here.

Provenance

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