Recent Releases of handprint

handprint - Release 1.6.0

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.

- Python
Published by mhucka almost 4 years ago

handprint - Release 1.5.6

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.

- Python
Published by mhucka about 4 years ago

handprint - Release 1.5.5

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.

- Python
Published by mhucka over 4 years ago

handprint - Release 1.5.4

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.

- Python
Published by mhucka almost 5 years ago

handprint - Release 1.5.3

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.

- Python
Published by mhucka almost 5 years ago

handprint - Release 1.5.1

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.

- Python
Published by mhucka almost 5 years ago

handprint - Release 1.5.0

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.

- Python
Published by mhucka almost 5 years ago

handprint - Release 1.4.0

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.

- Python
Published by mhucka over 5 years ago

handprint - Release 1.3.0

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.

- Python
Published by mhucka over 5 years ago

handprint - Release 1.2.2 – minor bug fix

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.

- Python
Published by mhucka over 6 years ago

handprint -

- Python
Published by mhucka over 6 years ago

handprint - Release 1.2.0 – bug fixes and PDF support

  • Two bugs related to running with multiple threads (the default) are hopefully fixed in this version:
    • Sometimes the annotated image generated from a given service would have the results from another service also written over it. This was inconsistent and intermittent, and the exact cause is still unclear, but this version of Handprint implements a workaround that hopefully stops this from happening.
    • The Amazon service interface would sometimes fail with an error related to endpoint_resolver. This was due to the previous code not following recommendations about using a different connection session object in each separate thread. This is now fixed.
  • This version changes the way output files are named. The new scheme always includes the string handprint in the file name for easier recognition and to help reduce the chances of file name collisions. The scheme uses the naming pattern somefile.handprint.png for the rescaled input image, somefile.handprint-service.ext for the various service output results, and somefile.handprint-all.png for the summary grid image. (Issue #10.)
  • PDF files are now accepted as input. (Issue #11.) Note, however, that Handprint will only extract the first image in the PDF file.
  • The order in which resizing and rescaling is done has been swapped: if a file is too large, Handprint will first rescale it, and then if it is still too big (in byte size), it will resize the file. This appears to result in images that have higher resolution than the previous approach, which did the steps in the opposite order.
  • The URLs in the file of example URLs, tests/urls/caltech-archives-urls.txt, have become invalid. They have been replaced with other URLs that are valid (as of right now, anyway).
  • A few more bugs have been fixed.

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

- Python
Published by mhucka over 6 years ago

handprint - Release 1.1.0 – Support for comparing results to ground truth

This release adds support for comparing extracted text to expected (ground truth) text. To use it, users need to provide text files that contain the expected text for each input image; Handprint then produces tab-separated files listing the errors (compared to ground truth) in the results received from HTR services. Please see the relevant section in the top-level README file or the application help (via -h) for more details.

Other changes:

  • The debug option -@ now accepts an argument for where to send the debug output trace; the behavior change of -@ is not backward compatible.
  • The installation instructions are (hopefully) improved and simplified.
  • There are internal architectural and organizational changes.
  • There are some bug fixes.
  • Most test images have been moved to a separate repository on GitHub.

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

- Python
Published by mhucka over 6 years ago

handprint - Release 1.0.3 – Bugfix release

This version fixes an internal bug involving the credentials file used for Amazon services.

- Python
Published by mhucka over 6 years ago

handprint - Release 1.0.2 – Bugfix release

This release fixes issue #9, a problem that credentials files were not being saved in the expected locations.

- Python
Published by mhucka over 6 years ago

handprint - Release 1.0.1 – minor bugfix & addition of info

This version fixes a bug writing files downloaded from URLs and adds instructions for installing from PyPI.

General information: Handprint is a Python program to apply different handwritten text recognition services to images of handwritten text pages, and produce an annotated image (and optionally more) showing the text recognized. More information can be found at the project home page. The file CHANGES contains a more complete change log that includes information about previous releases.

- Python
Published by mhucka almost 7 years ago

handprint - Release 1.0.0

This is the first sufficiently complete and robust version of Handprint that can finally be called a version 1.0. There are very many changes compared to version 0.10.0, including a new way to provide credential files, new default output (in which results from different services are placed side-by-side in a single large image), new command-line arguments, parallel execution, and more.

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

- Python
Published by mhucka almost 7 years ago

handprint - Version 0.10.0 – Support Amazon Rekognition and Textract

This release primarily adds support for Amazon's Rekognition and Textract services. It also updates some internal code and fixes some small bugs, and adds a code of conduct and contributor guidelines to the repository.

- Python
Published by mhucka almost 7 years ago

handprint - Version 0.8.1 – bug fixes

Detect and handle when the Google API returns a badly-formed bounding box. Also skip files previously generated by the annotation feature of Handprint.

- Python
Published by mhucka over 7 years ago

handprint - Version 0.8.0 – Generate annotated images

The latest version of Handprint will create copies of the images in files named with the method extension (e.g., document-1.microsoft.jpg) and write overlays of the text and bounding boxes extracted by the methods. This makes it possible to see the text extracted directly over the source image. Generating these annotated images takes a little bit of time and if they are not necessary for your purposes, you can turn off annotation with the -A option (/A on Windows).

- Python
Published by mhucka over 7 years ago

handprint - Version 0.7.5: Azure output formatting change

The user-visible change in this release is that chunks of text in the Microsoft Azure output (i.e., what is written to the .microsoft.txt files), are now separated using newlines, rather than spaces, to make the results more comparable to what Google produces.

- Python
Published by mhucka over 7 years ago

handprint - Version 0.7.3

This version improves efficiency by iterating over files/URLs first and then over methods, so that files do not get repeatedly downloaded each time a different method is used. It also works around some network compatibility problems on differnet environments, and finally, adds a number of small fixes to messages printed. Previous recent versions improved the handling of rate limits by cloud services, and catched more error conditions gracefully.

- Python
Published by mhucka over 7 years ago