Skip to main content

grantscan

Which of our papers acknowledged this grant?

Research groups have to answer that question repeatedly: for a funder's final report, for a renewal, for an institutional review. The answer is buried in the acknowledgment paragraph of every paper the group has published, and the codes themselves are unmemorable strings like RTG 4200/1 or 900123456.

Answering it by hand means opening papers one at a time and reading the small print at the end of each. Answering it with a normal search is worse than it sounds, because a code that reads cleanly on the page rarely survives being extracted from a PDF: it breaks across a line, loses its spaces, or fuses to the word beside it. Searching for what you can see gets you a fraction of what is there.

grantscan reads a folder of papers once and then answers that question in milliseconds, for one code or for a whole reporting portfolio, showing you the sentence each answer rests on so you can judge it rather than trust it.

grantscan

It also answers the question a spreadsheet cannot: which of the codes you asked about appear in no paper at all. For a report you have to sign, that is usually the line that matters.

Getting it

Download grantscan.exe from the latest release and double-click it. It needs no installation, no Python, and no network.

Or, with Python 3.12 or newer:

pip install grantscan
grantscan

Using it

The user guide is written for the people who will use this rather than work on it. In short: add your folders, list the codes you care about, press Search.

Papers are read on your computer. Nothing is sent anywhere.

Working on it

DESIGN.md explains how it is put together and why, including what was measured to decide it.

uv sync
uv run pytest
uv run ruff check .
uv run ruff format .
uv run mypy
uv run grantscan

Dependencies are managed with uv add, never by editing pyproject.toml.

package what it does
core/ normalising, parsing a code, locating sections, matching. Pure functions.
model/ the corpus, its text store, and the only module importing a PDF library
presenter/ thread pool, search generations, exact-then-fuzzy staging
export/ writing a run to a workbook
view/ PySide6. The only package importing Qt.

Licence

MIT. It reads PDFs with pypdfium2 over Google's PDFium, which is BSD-3-Clause, and draws its interface with Qt through PySide6, which is LGPL-3.0.

Download files

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

Source Distribution

grantscan-0.1.0.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

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

grantscan-0.1.0-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: grantscan-0.1.0.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for grantscan-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ba49982087ed72c182524d377ae96b91a2702fe0f064ce985042e6e6a38b0e0c
MD5 3d5e0b761ee9d84d710ed017723aeeba
BLAKE2b-256 ed2ef9e671aec091aae3c6994f1634c5a6acb25a118cca219b2a333cae14cba9

See more details on using hashes here.

Provenance

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

Publisher: ci.yaml on jacopoabramo/grantscan

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

File details

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

File metadata

  • Download URL: grantscan-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for grantscan-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 70cfe6db8c979cdccfeefc0db5d75a0999f635a5e15f7092efd125f90c79663a
MD5 8934fdeadfb6d91e1ec382bef6ba3f58
BLAKE2b-256 ad5c5d2029a3845f47133d3e788c69b3b4ba51fe3e1dde992ef3b30c230dec3a

See more details on using hashes here.

Provenance

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

Publisher: ci.yaml on jacopoabramo/grantscan

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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page