Skip to main content

Acquire and normalize online software manuals into clean, convertible source files — the acquisition front-end to pagespeak.

Project description

pagespring

Acquire and normalize online software manuals into clean, convertible source files — the acquisition front-end to pagespeak.

Point it at a manual's URL. A pattern recognizes the source type, acquires the raw pages (stdlib urllib), and normalizes them into ONE clean HTML/markdown file with absolute asset URLs under incoming/<slug>/. That clean file is the deliverable; converting it into the finished RAG corpus is a separate step (pagespeak) that consumes incoming/ on its own — pagespring never runs it.

Lean by design: pf-core[cli] + beautifulsoup4, stdlib fetch, no ML stack.

Intended use

pagespring is for publicly available documentation — vendor manuals, help centers, open textbooks, API specs. It fetches only what the source serves to any reader: there is no login/session handling, no paywall traversal, and no bot-detection evasion. It is a polite client: it identifies itself with a pagespring/<version> User-Agent (see .env.example to override), honors 429 Retry-After, backs off on server errors, paces crawl requests, and caps crawl sizes.

It is a user-invoked, one-manual-at-a-time archiver — closer to "Save Page As" than to an autonomous crawler — so it does not consult robots.txt (which governs bots that discover URLs on their own; you supply the URL). Before mirroring a site, check its terms of use. What you may do with the acquired copy (personal RAG corpus, internal search, redistribution) is governed by the source's license — the deliverable under incoming/ stays on your machine, and nothing is re-published by this tool.

Install

pip install pagespring

Quick start

pagespring ingest https://docs.tableplus.com   # acquire + normalize → incoming/tableplus/
pagespring localize <slug>                      # pull a deliverable's images later (resumable; --all)
pagespring patterns                             # list the source patterns
pagespring classify <url>                       # which pattern handles a URL (no fetch)
pagespring status                               # what's been acquired

Deliverables land in ./incoming/<slug>/ under the directory you run from.

Dev

bin/setup   # clone → venv + editable install with dev extras
bin/test    # pytest
bin/lint    # ruff check + ruff format --check + mypy (strict)

See docs/usage.md for the full command set and docs/architecture.md for the acquire → normalize flow and how to add a new source pattern.

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

pagespring-0.1.0.tar.gz (68.7 kB view details)

Uploaded Source

Built Distribution

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

pagespring-0.1.0-py3-none-any.whl (58.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pagespring-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8f3d35a269dce42ef98bdc3ba8e48471ce6fd1f4c1dd4494c0456dc13a833a7b
MD5 0451ae06147e9e796d702062afaef546
BLAKE2b-256 5116f443c62a530af1052ba5b237b85b265ff56de169a58c689526e461ee4db9

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on phierceweb/pagespring

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

File details

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

File metadata

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

File hashes

Hashes for pagespring-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 baa1200f90d8e1d1c8c10433c1a60c12ca36d65144090d9e5e1c9e5492bef300
MD5 ce54e2de303e3c24ff4dfdcc608fa600
BLAKE2b-256 24c2ca4aa7dedc33ae78e390ac5f2b0a6408c041c91cc80322ee2545c8a3d47d

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on phierceweb/pagespring

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