Compare commits

..
6 Commits
13 changed files with 1527 additions and 42 deletions
+1 -1
View File
@@ -51,7 +51,7 @@ RUN . /appenv/bin/activate; \
# Do this now to make the best use of Docker cache.
COPY . /application
RUN . /appenv/bin/activate; \
pip install -r /application/test_requirements.txt
pip install -r /application/requirements/test.txt
# Remove the junk, including the source version of application since it was
# already installed
+2 -2
View File
@@ -91,9 +91,9 @@ before_install: |
install:
- export PATH=$PWD/bin:$PATH
- pip3 install pycparser # py3.7 workaround for https://github.com/eliben/pycparser/issues/251
- pip3 install -r requirements.txt
- pip3 install -r requirements/main.txt
- pip3 install --no-deps .
- pip3 install -r test_requirements.txt
- pip3 install -r requirements/test.txt
script:
- tesseract --version
+6 -12
View File
@@ -1,7 +1,5 @@
# requirements
include requirements.txt
include test_requirements.txt
include dev_requirements.txt
recursive-include requirements *
# git
include .git_archival.txt
@@ -12,21 +10,20 @@ recursive-include .docker *
# tests
include .coveragerc
recursive-include tests *.bin
recursive-include tests *.jpg
recursive-include tests *.jsonl
recursive-include tests *.png
recursive-include tests *.pdf
recursive-include tests *.py
recursive-include tests *.rst
recursive-include tests *.txt
recursive-include tests/cache *
recursive-exclude tests/output *
recursive-exclude tests/output_pageinfo *
recursive-exclude tests/resources/private *
# documentation
include LICENSE
include *.rst
recursive-exclude .github *
recursive-exclude .github *
recursive-include docs *.py
recursive-include docs *.rst
recursive-include docs *.svg
@@ -42,8 +39,5 @@ exclude .travis*
# code
recursive-include src/ocrmypdf *.py
exclude ocrmypdf/lib/_leptonica.py
exclude src/ocrmypdf/lib/_leptonica.py
exclude scratch.py
+1488
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -536,6 +536,6 @@ To install all of the development and test requirements:
source venv/bin/activate
cd OCRmyPDF
pip install -e .
pip install -r dev_requirements.txt -r test_requirements.txt
pip install -r requirements/dev.txt -r requirements/test.txt
To add JBIG2 encoding, see :ref:`jbig2`.
+8
View File
@@ -14,6 +14,14 @@ Note that it is licensed under GPLv3, so scripts that ``import ocrmypdf`` and ar
replace: `#$1 <https://github.com/jbarlow83/OCRmyPDF/issues/$1>`_
v7.2.1
------
- Fix compatibility with an API change in pikepdf 0.3.5.
- A kludge to support Leptonica versions older than 1.72 in the test suite was dropped. Older versions of Leptonica are likely still compatible. The only impact is that a portion of the test suite will be skipped.
v7.2.0
------
+2 -2
View File
@@ -201,11 +201,11 @@ if 'upload' in sys.argv[1:]:
print('Use twine to upload the package - setup.py upload is insecure')
sys.exit(1)
tests_require = open('test_requirements.txt').read().splitlines()
tests_require = open('requirements/test.txt', encoding='utf-8').read().splitlines()
def readme():
with open('README.md') as f:
with open('README.md', encoding='utf-8') as f:
return f.read()
setup(
+7 -1
View File
@@ -830,7 +830,13 @@ def metadata_fixup(
pdfmark = get_pdfmark(metadata, options)
pdf = pikepdf.open(layers_file)
pdf.metadata = pdf.make_indirect(pikepdf.Dictionary(pdfmark))
pdf.save(output_file, stream_data_mode=pikepdf.StreamDataMode.compress)
try:
pdf.save(output_file, compress_streams=True,
object_stream_mode=pikepdf.ObjectStreamMode.generate)
except AttributeError:
# pikepdf <= 0.3.4
pdf.save(output_file,
stream_data_mode=pikepdf.StreamDataMode.compress)
def optimize_pdf(
+7 -23
View File
@@ -464,30 +464,14 @@ class Pix:
# implementation of pixCorrelationBinary that overflows on larger
# images. Ubuntu 14.04/trusty has 1.70. Ubuntu PPA
# ppa:alex-p/tesseract-ocr has leptonlib 1.75.
pix1_count = ffi.new('l_int32 *')
pix2_count = ffi.new('l_int32 *')
pixn_count = ffi.new('l_int32 *')
tab8 = Pix.make_pixel_sum_tab8()
raise LeptonicaError("Leptonica version is too old")
lept.pixCountPixels(pix1._pix, pix1_count, tab8)
lept.pixCountPixels(pix2._pix, pix2_count, tab8)
pixn = Pix(lept.pixAnd(ffi.NULL, pix1._pix, pix2._pix))
lept.pixCountPixels(pixn._pix, pixn_count, tab8)
# Python converts these int32s to larger units as needed
# to avoid overflow. Overflow happens easily here.
correlation = (
(pixn_count[0] * pixn_count[0]) /
(pix1_count[0] * pix2_count[0])
)
return correlation
else:
correlation = ffi.new('float *', 0.0)
result = lept.pixCorrelationBinary(pix1._pix, pix2._pix,
correlation)
if result != 0:
raise LeptonicaError("Correlation failed")
return correlation[0]
correlation = ffi.new('float *', 0.0)
result = lept.pixCorrelationBinary(pix1._pix, pix2._pix,
correlation)
if result != 0:
raise LeptonicaError("Correlation failed")
return correlation[0]
def generate_pdf_ci_data(self, type_, quality):
"Convert to PDF data, with transcoding"
+5
View File
@@ -33,6 +33,11 @@ from ocrmypdf.helpers import fspath
# pylint: disable=no-member
# pylint: disable=w0612
pytestmark = pytest.mark.skipif(
leptonica.get_leptonica_version() < 'leptonica-1.72',
reason="Leptonica is too old, correlation doesn't work"
)
check_ocrmypdf = pytest.helpers.check_ocrmypdf
run_ocrmypdf = pytest.helpers.run_ocrmypdf