Deprecate encode/decode_pdf_date and remap to pikepdf version

This commit is contained in:
James R. Barlow
2018-12-12 22:01:21 -08:00
parent 076fc717df
commit 414407fbd6
4 changed files with 39 additions and 5 deletions
+3 -1
View File
@@ -29,9 +29,11 @@ import pikepdf
from PIL import Image
from ruffus import formatter, regex, Pipeline, suffix
from pikepdf.models.metadata import encode_pdf_date
from .hocrtransform import HocrTransform
from .pdfinfo import PdfInfo, Colorspace
from .pdfa import generate_pdfa_ps, encode_pdf_date
from .pdfa import generate_pdfa_ps
from .helpers import re_symlink, is_iterable_notstr, page_number, flatten_groups
from .exec import ghostscript, tesseract
from .exceptions import UnsupportedImageFormatError, \
+14 -1
View File
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with OCRmyPDF. If not, see <http://www.gnu.org/licenses/>.
from functools import partial
from functools import partial, wraps
from collections.abc import Iterable
from contextlib import suppress
from pathlib import Path
@@ -168,3 +168,16 @@ def flatten_groups(groups):
yield from obj
else:
yield obj
def deprecated(func):
"""Warn that function is deprecated"""
@wraps(func)
def new_func(*args, **kwargs):
warnings.simplefilter('always', DeprecationWarning) # turn off filter
warnings.warn("Call to deprecated function {}.".format(func.__name__),
category=DeprecationWarning,
stacklevel=2)
warnings.simplefilter('default', DeprecationWarning) # reset filter
return func(*args, **kwargs)
return new_func
+17 -2
View File
@@ -42,7 +42,12 @@ from libxmp.utils import file_to_dict
from libxmp import consts
import pikepdf
from pikepdf.models.metadata import encode_pdf_date, decode_pdf_date
from pikepdf.models.metadata import (
encode_pdf_date as _encode_date,
decode_pdf_date as _decode_date
)
from .helpers import deprecated
ICC_PROFILE_RELPATH = 'data/sRGB.icc'
@@ -137,6 +142,16 @@ def _encode_ascii(s: str) -> str:
return s.translate(trans).encode('ascii', errors='replace').decode()
@deprecated
def encode_pdf_date(*args, **kwargs):
return _encode_date(*args, **kwargs)
@deprecated
def decode_pdf_date(*args, **kwargs):
return _decode_date(*args, **kwargs)
def _get_pdfmark_dates(pdfmark):
"""
Encode dates in the expected format for pdfmark Postscript
@@ -160,7 +175,7 @@ def _get_pdfmark_dates(pdfmark):
try:
yield ' {} (D:{})'.format(
key,
encode_pdf_date(decode_pdf_date(date_str)))
_encode_date(_decode_date(date_str)))
except ValueError:
yield ' {} null'.format(key)
+5 -1
View File
@@ -25,11 +25,13 @@ from unittest.mock import patch
import datetime
import pikepdf
from pikepdf.models.metadata import encode_pdf_date, decode_pdf_date
from ocrmypdf.exceptions import ExitCode
from ocrmypdf.helpers import fspath
from ocrmypdf.pdfa import (
file_claims_pdfa, encode_pdf_date, decode_pdf_date, generate_pdfa_ps,
file_claims_pdfa,
generate_pdfa_ps,
SRGB_ICC_PROFILE
)
from ocrmypdf.exec import ghostscript
@@ -43,6 +45,8 @@ except ImportError:
# pylint: disable=no-member
# pylint: disable=w0612
pytestmark = pytest.mark.filterwarnings('ignore:.*XMLParser.*:DeprecationWarning')
check_ocrmypdf = pytest.helpers.check_ocrmypdf
run_ocrmypdf = pytest.helpers.run_ocrmypdf
spoof = pytest.helpers.spoof