Handprint Versions Save

Apply different text recognition services to images of handwritten documents.

v1.6.0

2 years ago

Changes in this release:

  • Beginning with this release, the license for Handprint is now an unmodified BSD 3-clause, instead of the previous Caltech-specific modified version of the license.
  • Some versions of dependencies in requirements.txt have been updated.

v1.5.6

2 years ago

Changes in this release:

  • The internal network module is gone; instead, this uses the equivalent functions from CommonPy's network_utils module.
  • Makefile has a fix for updating CITATION.cff.
  • Some dependency versions have been updated in requirements.txt.
  • There is a new requirements-dev.txt file for installing dependencies needed to run test cases using pytest.
  • There are new test cases.

Self-contained binary distributions

This release includes standalone, runnable binaries for macOS and Linux. The experimental binaries are built using shiv. They only need a copy of Python 3.8, 3.9 or 3.10 on your system to run – they don't require installation of additional Python packages using (e.g.) pip. To use them:

  1. Download the Handprint zip file corresponding to the version of Python you have installed on your computer

  2. Unzip the resulting file (if your web browser did not automatically unzip it)

  3. Move the file handprint to a location where your terminal shell looks for programs. A popular location is /usr/local/bin.

Thereafter, you should be able to type handprint in your shell and it should run. (If it does not, please report the problem using the issue tracker.) Note that the first time you run it, Handprint will take longer than usual to start because it does a one-time configuration step, but on subsequent runs, startup times should be shorter.

v1.5.5

2 years ago

Changes in this release:

  • Update dependency versions specified by requirements.txt and Pipfile, to address a security issue in Pillow, update to CommonPy, and some other version updates.
  • Fix to a bug in the image resizing code involving calls to debug log functions.
  • Updates to copyright years in files.
  • Addition of a CITATION.cff file to the repository on GitHub

Self-contained binary distributions

This release includes standalone, runnable binaries for macOS and Linux. The experimental binaries are built using shiv. They only need a copy of Python 3.8 or 3.9 on your system to run – they don't require installation of additional Python packages using (e.g.) pip. To use them:

  1. Download the zip file for either the Python 3.8 or the 3.9 version, depending on the version of Python you have installed on your computer

  2. Unzip the resulting file (if your web browser did not automatically unzip it)

  3. Move the file handprint to a location where your terminal shell looks for programs. A popular location is /usr/local/bin.

Thereafter, you should be able to type handprint in your shell and it should run. (If it does not, please report the problem using the issue tracker.) Note that the first time you run it, Handprint will take longer than usual to start because it does a one-time configuration step, but on subsequent runs, startup times should be shorter.

v1.5.4

2 years ago

All changes in this release

This release fixes a crash (issue #30) that occurs when someone tries to install credentials files.

Self-contained binary distributions

This release includes standalone, runnable binaries for macOS and Linux. The experimental binaries are built using shiv. They only need a copy of Python 3.8 or 3.9 on your system to run – they don't require installation of additional Python packages using (e.g.) pip. To use them:

  1. Download the zip file for either the Python 3.8 or the 3.9 version, depending on the version of Python you have installed on your computer

  2. Unzip the resulting file (if your web browser did not automatically unzip it)

  3. Move the file handprint to a location where your terminal shell looks for programs. A popular location is /usr/local/bin.

Thereafter, you should be able to type handprint in your shell and it should run. (If it does not, please report the problem using the issue tracker.) Note that the first time you run it, Handprint will take longer than usual to start because it does a one-time configuration step, but on subsequent runs, startup times should be shorter.

v1.5.3

2 years ago

There are no functional changes in this release; the changes all concern code dependencies and installation instructions.

All changes in this release

  • The requirements in requirements.txt now pin the versions of Python packages needed.
  • Pipfile and Pipefile.lock files are now provided for use with pipenv.
  • Imports of sidetrack now refer to the latest API.
  • The installation instructions in the README file now include information about using pipx.

Self-contained binary distributions

This release includes standalone, runnable binaries for macOS and Linux. The experimental binaries are built using shiv. They only need a copy of Python 3.8 or 3.9 on your system to run – they don't require installation of additional Python packages using (e.g.) pip. To use them:

  1. Download the zip file for either the Python 3.8 or the 3.9 version, depending on the version of Python you have installed on your computer

  2. Unzip the resulting file (if your web browser did not automatically unzip it)

  3. Move the file handprint to a location where your terminal shell looks for programs. A popular location is /usr/local/bin.

Thereafter, you should be able to type handprint in your shell and it should run. (If it does not, please report the problem using the issue tracker.) Note that the first time you run it, Handprint will take longer than usual to start because it does a one-time configuration step, but on subsequent runs, startup times should be shorter.

v1.5.1

3 years ago

There are no functional changes in this release compared to version 1.5.0; all of the code changes are internal, to speed up Handprint startup times and further clean up some code dependencies. Separately, new experimental, self-contained binary versions of Handprint are available for macOS.

All changes in this release

  • To speed up initial application startup time, import statements have been moved from (usually) the tops of files, to where the packages are actually used in the code. Profiling using the Python -X importtime option helped identify expensive packages to make this efficiency gain possible.
  • The user interface code in ui.py has been replaced with importing Bun.
  • The version of commonpy needed is now 1.3.9.
  • The dependency on dateparser has been removed because Handprint doesn't depend on that package. (It's a transitive dependency coming from something else, but by itself, it doesn't belong in Handprint's requirements.)

Self-contained binary distributions

This release includes standalone, runnable binaries for macOS. The experimental binaries are built using shiv. They only need a copy of Python 3.8 or 3.9 on your system to run – they don't require installation of additional Python packages using (e.g.) pip. They should work on macOS 10.13–11.1. To use them:

  1. Download the zip file for either the Python 3.8 or the 3.9 version, depending on the version of Python you have installed on your computer

  2. Unzip the resulting file (if your web browser did not automatically unzip it)

  3. Move the file handprint to a location where your terminal shell looks for programs. A popular location is /usr/local/bin.

Thereafter, you should be able to type handprint in your shell and it should run. (If it does not, please report the problem using the issue tracker.) Note that the first time you run it, Handprint will take longer than usual to start because it does a one-time configuration step, but on subsequent runs, startup times should be shorter.

v1.5.0

3 years ago

This version contains many additions and some important bugs in the extended output (i.e., using the -e flag) for Google and Amazon. If you use Handprint, you should definitely update to this version.

All changes in this release:

  • The default branch on GitHub has been changed from master to main. If you have clones or forks of this repo, please see GitHub's instructions for updating a local clone after a branch name change.
  • The styling of text annotations has changed: the text boxes overlaid on images no longer have borders, so that they are easier to read, especially when bounding boxes are displayed using the -d option (see below).
  • A new command-line option, -d (short for --display), lets users choose to display the bounding boxes of text, lines, and paragraphs (if the service supports these), in addition to or instead of the recognized text.
  • A new command-line option, -n (short for --confidence), allows users to apply a threshold to the confidence values returned for individual results, such that only results having confidence scores above a given value are shown in the output.
  • A new command-line option, -j, (short for --reuse-json) tells Handprint to look for the extended results produced by a previous run using -e, and use that instead of contacting a service again.
  • A new command-line option, -m, (short for --text-move) lets users adjust the position of the text annotations overlaid on input images. This takes two numbers separated by a comma in the form x,y. Positive numbers move the text rightward and upward compared to the default position.
  • A new command-line option, -x, (short for --text-color) allows users to change the color of the text annotations overlaid on input images.
  • A new command-line option, -z, (short for --text-size) lets users change the font size of the text annotations overlaid on input images.
  • The extended data (via option -e) from Google now includes the confidence scores enabled using the option enable_text_detection_confidence_score in the Google Vision API.
  • Handprint no longer leaves resized versions of input images when the -e option is being used. Previously, images of the form somefile.handprint.png were left around for somefile.png so that subsequent runs were saved the time of resizing the image (if resizing was needed). However, this meant that subsequent runs would reuse the image even if the chosen destination services were different than in the run that produced the resized image, which meant that the subsequent runs might be using an unnecessarily small version of the image. To eliminate this risk, Handprint now deletes the resized image, even though this means repeated runs on the same image may require repeated resizing operations.
  • Fixed issue #27: the Google JSON output was not proper JSON.
  • Fixed issue #26: the extended output for Amazon services was one long line instead of being split into lines as is done for the other services. This now works.
  • Fixed issue #25: the extended output for Google in Handprint version 1.4.0 produced an empty text file. It now produces text.
  • Fixed issue #24: use CommonPy functions instead of keeping separate versions of the same functions. Internally, a number of common utility functions originally written in part for Handprint have been moved to a separate new Python package, Commonpy, and the Handprint code has been refactored to use the package instead of its own copies of the functions.
  • Fixed issue #23: updated service adapters to use the latest API versions of the services (specifically for the Microsoft API).
  • Fixed issue #21: fixed Dependabot security warning for the urllib3 package.
  • Fixed issue #3: Microsoft API sometimes returned HTTP code 400; I rewrote the Handprint adapter code to handle errors more carefully and bubble up any unhandled errors so that users can see what they are.
  • Fixed problems in the implementation of the base class for handwritten recognition services.
  • Most dependencies in requirements.txt have been updated to the latest versions, and some new dependencies have been added.
  • Various minor internal code cleanups have been made.
  • The copyright year has been updated.

v1.4.0

3 years ago

This release does not change the user interface or functionality, but this is more than a patch release because it changes the minimum required versions of many Python packages and uses newer Google API libraries.

  • Fixed compatibility between Handprint and more recent versions of the Google API libraries. The previous versions of the Google API are no longer supported by Handprint.
  • Fixed a bug in the main routine causing an error when trying to print exceptions.
  • Fixed a bug in catching errors in the Microsoft interface.
  • Update requirements.txt to remove no-longer used packages and update minimum version numbers.
  • Update README.md to acknowledge the Python dependencies actually being used now.

The file CHANGES contains a more complete change log, and includes information about previous releases.

v1.3.0

3 years ago

This release brings a number of changes:

  • It now requires Python version 3.6 at minimum
  • The Microsoft service interface now uses Azure API v3.0
  • The Microsoft credentials scheme now allows you to change the endpoint URI
  • The Google service interface now only gets the document text results instead of all possible results
  • The possible program exit codes have changed slightly, and
  • Interruption via ^C should work better now.

Some bugs have been fixed and internals have been (hopefully) improved.

The file CHANGES contains a more complete change log, and includes information about previous releases.

v1.2.2

4 years ago

This release fixes the Microsoft output in annotated images to be word-based, rather than line-based, to make it the same as for the other services. The copyright year in source files has also been updated.

The file CHANGES contains a more complete change log that includes information about previous releases.