Skip to main content

A python project to turn scanned forms into a list of key-value pairs.

Project description

ExtractForms

extractforms is a Python package and CLI to extract key/value fields from PDF forms.

Quickstart

uv sync --group dev
uv run pre-commit install
uv run ruff format .
uv run ruff check .
uv run ty check src tests
uv run pytest
uv run pre-commit run --all-files

CLI

extractforms extract --input form.pdf --output results/result.json --passes 2

Supported options include:

  • --no-cache
  • --dpi, --image-format, --page-start, --page-end, --max-pages
  • --chunk-pages
  • --extra-instructions
  • --schema-id, --schema-path, --match-schema

Environment

Copy .env.template to .env and configure:

  • logging (LOG_LEVEL, LOG_JSON, LOG_FILE)
  • enterprise network/TLS (HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, NO_PROXY, CERT_PATH)
  • model endpoint (OPENAI_BASE_URL, OPENAI_API_KEY, OPENAI_MODEL)

Project Layout

  • src/extractforms: package code
  • tests/unit: fast default tests
  • tests/integration: component-level tests
  • tests/end2end: user-facing behavior tests
  • skills: AI helper skills for coding workflows

Release

  1. Bump version in pyproject.toml.
  2. Create and push a git tag: vX.Y.Z.
  3. GitHub Action publishes to PyPI.

For manual validation, use workflow dispatch with publish_target=testpypi.

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

extractforms-0.1.0.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

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

extractforms-0.1.0-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file extractforms-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for extractforms-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1268ea7798c76ddb65c8065ea9ede0870481df701888ca736b598d09f1a2303b
MD5 2fcf81e01137c222dc333874be658d48
BLAKE2b-256 5c21a971d493e8c1f5e4e32dad4807b5a60d838417552a862cb0e0c26e63c25e

See more details on using hashes here.

Provenance

The following attestation bundles were made for extractforms-0.1.0.tar.gz:

Publisher: release.yml on Guillaume-Lombardo/extractforms

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

File details

Details for the file extractforms-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: extractforms-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for extractforms-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 caf3bd319606c54650c3333a7ad4f027aa8da45913330e921a82264d0a531c64
MD5 091c0027ea6f3c198d1bfaa41a4e0e31
BLAKE2b-256 db52efa190f4c2d218b0f4bd651e8aa08b6e50d4ace9f2453127319514ec0a55

See more details on using hashes here.

Provenance

The following attestation bundles were made for extractforms-0.1.0-py3-none-any.whl:

Publisher: release.yml on Guillaume-Lombardo/extractforms

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