Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b18dbecf5 | ||
|
|
9f82c0eb6e | ||
|
|
68bac1b177 | ||
|
|
1495b78330 | ||
|
|
6f777d2848 | ||
|
|
5650eba848 |
+1
-1
@@ -51,7 +51,7 @@ RUN . /appenv/bin/activate; \
|
|||||||
# Do this now to make the best use of Docker cache.
|
# Do this now to make the best use of Docker cache.
|
||||||
COPY . /application
|
COPY . /application
|
||||||
RUN . /appenv/bin/activate; \
|
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
|
# Remove the junk, including the source version of application since it was
|
||||||
# already installed
|
# already installed
|
||||||
|
|||||||
+2
-2
@@ -91,9 +91,9 @@ before_install: |
|
|||||||
install:
|
install:
|
||||||
- export PATH=$PWD/bin:$PATH
|
- export PATH=$PWD/bin:$PATH
|
||||||
- pip3 install pycparser # py3.7 workaround for https://github.com/eliben/pycparser/issues/251
|
- 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 --no-deps .
|
||||||
- pip3 install -r test_requirements.txt
|
- pip3 install -r requirements/test.txt
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- tesseract --version
|
- tesseract --version
|
||||||
|
|||||||
+5
-11
@@ -1,7 +1,5 @@
|
|||||||
# requirements
|
# requirements
|
||||||
include requirements.txt
|
recursive-include requirements *
|
||||||
include test_requirements.txt
|
|
||||||
include dev_requirements.txt
|
|
||||||
|
|
||||||
# git
|
# git
|
||||||
include .git_archival.txt
|
include .git_archival.txt
|
||||||
@@ -12,15 +10,14 @@ recursive-include .docker *
|
|||||||
|
|
||||||
# tests
|
# tests
|
||||||
include .coveragerc
|
include .coveragerc
|
||||||
|
recursive-include tests *.bin
|
||||||
recursive-include tests *.jpg
|
recursive-include tests *.jpg
|
||||||
|
recursive-include tests *.jsonl
|
||||||
recursive-include tests *.png
|
recursive-include tests *.png
|
||||||
recursive-include tests *.pdf
|
recursive-include tests *.pdf
|
||||||
recursive-include tests *.py
|
recursive-include tests *.py
|
||||||
recursive-include tests *.rst
|
recursive-include tests *.rst
|
||||||
recursive-include tests *.txt
|
recursive-include tests *.txt
|
||||||
recursive-include tests/cache *
|
|
||||||
recursive-exclude tests/output *
|
|
||||||
recursive-exclude tests/output_pageinfo *
|
|
||||||
recursive-exclude tests/resources/private *
|
recursive-exclude tests/resources/private *
|
||||||
|
|
||||||
# documentation
|
# documentation
|
||||||
@@ -42,8 +39,5 @@ exclude .travis*
|
|||||||
|
|
||||||
|
|
||||||
# code
|
# code
|
||||||
recursive-include src/ocrmypdf *.py
|
exclude src/ocrmypdf/lib/_leptonica.py
|
||||||
exclude ocrmypdf/lib/_leptonica.py
|
exclude scratch.py
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Vendored
+1488
File diff suppressed because it is too large
Load Diff
@@ -536,6 +536,6 @@ To install all of the development and test requirements:
|
|||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
cd OCRmyPDF
|
cd OCRmyPDF
|
||||||
pip install -e .
|
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`.
|
To add JBIG2 encoding, see :ref:`jbig2`.
|
||||||
|
|||||||
@@ -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>`_
|
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
|
v7.2.0
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|||||||
@@ -201,11 +201,11 @@ if 'upload' in sys.argv[1:]:
|
|||||||
print('Use twine to upload the package - setup.py upload is insecure')
|
print('Use twine to upload the package - setup.py upload is insecure')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
tests_require = open('test_requirements.txt').read().splitlines()
|
tests_require = open('requirements/test.txt', encoding='utf-8').read().splitlines()
|
||||||
|
|
||||||
|
|
||||||
def readme():
|
def readme():
|
||||||
with open('README.md') as f:
|
with open('README.md', encoding='utf-8') as f:
|
||||||
return f.read()
|
return f.read()
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
|
|||||||
@@ -830,7 +830,13 @@ def metadata_fixup(
|
|||||||
pdfmark = get_pdfmark(metadata, options)
|
pdfmark = get_pdfmark(metadata, options)
|
||||||
pdf = pikepdf.open(layers_file)
|
pdf = pikepdf.open(layers_file)
|
||||||
pdf.metadata = pdf.make_indirect(pikepdf.Dictionary(pdfmark))
|
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(
|
def optimize_pdf(
|
||||||
|
|||||||
@@ -464,30 +464,14 @@ class Pix:
|
|||||||
# implementation of pixCorrelationBinary that overflows on larger
|
# implementation of pixCorrelationBinary that overflows on larger
|
||||||
# images. Ubuntu 14.04/trusty has 1.70. Ubuntu PPA
|
# images. Ubuntu 14.04/trusty has 1.70. Ubuntu PPA
|
||||||
# ppa:alex-p/tesseract-ocr has leptonlib 1.75.
|
# ppa:alex-p/tesseract-ocr has leptonlib 1.75.
|
||||||
pix1_count = ffi.new('l_int32 *')
|
raise LeptonicaError("Leptonica version is too old")
|
||||||
pix2_count = ffi.new('l_int32 *')
|
|
||||||
pixn_count = ffi.new('l_int32 *')
|
|
||||||
tab8 = Pix.make_pixel_sum_tab8()
|
|
||||||
|
|
||||||
lept.pixCountPixels(pix1._pix, pix1_count, tab8)
|
correlation = ffi.new('float *', 0.0)
|
||||||
lept.pixCountPixels(pix2._pix, pix2_count, tab8)
|
result = lept.pixCorrelationBinary(pix1._pix, pix2._pix,
|
||||||
pixn = Pix(lept.pixAnd(ffi.NULL, pix1._pix, pix2._pix))
|
correlation)
|
||||||
lept.pixCountPixels(pixn._pix, pixn_count, tab8)
|
if result != 0:
|
||||||
|
raise LeptonicaError("Correlation failed")
|
||||||
# Python converts these int32s to larger units as needed
|
return correlation[0]
|
||||||
# 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]
|
|
||||||
|
|
||||||
def generate_pdf_ci_data(self, type_, quality):
|
def generate_pdf_ci_data(self, type_, quality):
|
||||||
"Convert to PDF data, with transcoding"
|
"Convert to PDF data, with transcoding"
|
||||||
|
|||||||
@@ -33,6 +33,11 @@ from ocrmypdf.helpers import fspath
|
|||||||
# pylint: disable=no-member
|
# pylint: disable=no-member
|
||||||
# pylint: disable=w0612
|
# 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
|
check_ocrmypdf = pytest.helpers.check_ocrmypdf
|
||||||
run_ocrmypdf = pytest.helpers.run_ocrmypdf
|
run_ocrmypdf = pytest.helpers.run_ocrmypdf
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user