Some PDFs omit the traditional q/Q wrapper and alter ctm with a stack
depth of zero, so make our test for stack depth specifically test for
the case where the PDF calls for rendering to an uninitialized ctm.
Probably related to #97.
This helper script is still in development and needs to be changed each
release, which breaks the release.
It shouldn't be in MANIFEST.in at all because it's not part of a
distribution.
More thorough testing showed that Acrobat do not presume that images
fill the page if the CTM is unspecified, as tests/resources/masks.pdf
seems to want. Instead they treat it literally and draw the image
as 1x1 PDF units or 1/72" square in the bottom left corner of the page.
Seems like the best thing to do is ignore any such images for the purpose
of DPI calculation. masks.pdf still works out okay because it has
other images.
For more robustness we could consider invalidating any DPI above some
limit, or warning the user about these microdot thumbnails.
Executing a package with python -m packagename will check for
__main__.py inside the package. In other words main.py should have
always been named __main__.py.
In the unlikely event that someone depends on "import ocrmypdf.main"
being meaningful, main.py continues to exist and replicates the
behavior of __main__. (It's unlikely because import ocrmypdf.main does
unpythonic ruffus-related things at things import time, essentially
configuring itself to work with sys.argv. To fix another day.)
This should solve the problem of Debian needing to run test suites
before installation and afterwards for continuous integration without
having to patch either file, as python -m ocrmypdf will follow import
order. That is, if the current directory contains "ocrmypdf/" (e.g.
staging a new version) then that will be tested, else sys.path will
be checked.