Skip to content

Commit

Permalink
Add deprecation warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
MartinThoma committed May 8, 2022
1 parent 840a753 commit 6354c18
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 12 deletions.
6 changes: 3 additions & 3 deletions PyPDF2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
"PaperSize",
"parse_filename_page_ranges",
"pdf",
"PdfFileMerger", # will be deprecated soon; use PdfMerger instead
"PdfFileReader", # will be deprecated soon; use PdfReader instead
"PdfFileWriter", # will be deprecated soon; use PdfWriter instead
"PdfFileMerger", # will be removed soon; use PdfMerger instead
"PdfFileReader", # will be removed soon; use PdfReader instead
"PdfFileWriter", # will be removed soon; use PdfWriter instead
"PdfMerger",
"PdfReader",
"PdfWriter",
Expand Down
18 changes: 15 additions & 3 deletions PyPDF2/_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,8 +201,20 @@ class PdfReader(object):
``True``).
"""

def __init__(self, stream, strict=True, warndest=None, overwriteWarnings=True):
def __init__(
self, stream, strict=True, warndest=None, overwriteWarnings="deprecated"
):
if warndest is not None:
warnings.warn(
"The `warndest` argument to PdfReader will be removed with PyPDF2 2.0.0.",
PendingDeprecationWarning,
)
if overwriteWarnings:
if overwriteWarnings != "deprecated":
warnings.warn(
"The `overwriteWarnings` argument to PdfReader will be removed with PyPDF2 2.0.0.",
PendingDeprecationWarning,
)
# Have to dynamically override the default showwarning since there
# are no public methods that specify the 'file' parameter
def _showwarning(
Expand Down Expand Up @@ -1422,8 +1434,8 @@ def __init__(self, *args, **kwargs):
import warnings

warnings.warn(
"PdfFileReader was renamed to PdfReader. PdfFileReader will be deprecated",
DeprecationWarning,
"PdfFileReader was renamed to PdfReader. PdfFileReader will be removed",
PendingDeprecationWarning,
stacklevel=2,
)
super().__init__(*args, **kwargs)
4 changes: 2 additions & 2 deletions PyPDF2/_writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1264,8 +1264,8 @@ def __init__(self, *args, **kwargs):
import warnings

warnings.warn(
"PdfFileWriter was renamed to PdfWriter. PdfFileWriter will be deprecated",
DeprecationWarning,
"PdfFileWriter was renamed to PdfWriter. PdfFileWriter will be removed",
PendingDeprecationWarning,
stacklevel=2,
)
super().__init__(*args, **kwargs)
8 changes: 8 additions & 0 deletions PyPDF2/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,10 @@ def children(self):
if sys.version_info >= (3, 5): # PEP 479
return
else:
warnings.warn(
"Python 3.5 and older support will be dropped with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
raise StopIteration

child = self["/First"]
Expand All @@ -713,6 +717,10 @@ def children(self):
if sys.version_info >= (3, 5): # PEP 479
return
else:
warnings.warn(
"Python 3.5 and older support will be dropped with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
raise StopIteration
child = child["/Next"]

Expand Down
15 changes: 12 additions & 3 deletions PyPDF2/merger.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,12 @@ class PdfMerger(object):
``True``).
"""

def __init__(self, strict=True, overwriteWarnings=True):
def __init__(self, strict=True, overwriteWarnings="deprecated"):
if overwriteWarnings != "deprecated":
warnings.warn(
"The `overwriteWarnings` argument to PdfReader will be removed with PyPDF2 2.0.0.",
PendingDeprecationWarning,
)
self.inputs = []
self.pages = []
self.output = PdfWriter()
Expand Down Expand Up @@ -617,6 +622,10 @@ def addNamedDestination(self, title, pagenum):

class OutlinesObject(list):
def __init__(self, pdf, tree, parent=None):
warnings.warn(
"The OutlinesObject class will be removed with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
list.__init__(self)
self.tree = tree
self.pdf = pdf
Expand Down Expand Up @@ -663,8 +672,8 @@ def __init__(self, *args, **kwargs):
import warnings

warnings.warn(
"PdfFileMerger was renamed to PdfMerger. PdfFileMerger will be deprecated",
DeprecationWarning,
"PdfFileMerger was renamed to PdfMerger. PdfFileMerger will be removed",
PendingDeprecationWarning,
stacklevel=2,
)
super().__init__(*args, **kwargs)
30 changes: 29 additions & 1 deletion PyPDF2/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@


import sys
import warnings

# See https://github.com/py-pdf/PyPDF2/issues/779
from PyPDF2.errors import ( # noqa
Expand Down Expand Up @@ -74,7 +75,10 @@ def isBytes(b):
"""Test if arg is a bytes instance. Compatible with Python 2 and 3."""
import warnings

warnings.warn("PyPDF2.utils.isBytes will be deprecated", DeprecationWarning)
warnings.warn(
"PyPDF2.utils.isBytes will be removed with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
return isinstance(b, bytes_type)


Expand Down Expand Up @@ -216,6 +220,10 @@ def markLocation(stream):


if sys.version_info[0] < 3:
warnings.warn(
"Python 3.5 and older support will be dropped with PyPDF2 2.0.0",
PendingDeprecationWarning,
)

def b_(s):
return s
Expand Down Expand Up @@ -244,13 +252,21 @@ def b_(s):

def u_(s):
if sys.version_info[0] < 3:
warnings.warn(
"Python 3.5 and older support will be dropped with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
return unicode(s, "unicode_escape") # noqa
else:
return s


def str_(b):
if sys.version_info[0] < 3:
warnings.warn(
"Python 3.5 and older support will be dropped with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
return b
else:
if type(b) == bytes:
Expand All @@ -268,20 +284,32 @@ def ord_(b):

def chr_(c):
if sys.version_info[0] < 3:
warnings.warn(
"Python 3.5 and older support will be dropped with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
return c
else:
return chr(c)


def barray(b):
if sys.version_info[0] < 3:
warnings.warn(
"Python 3.5 and older support will be dropped with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
return b
else:
return bytearray(b)


def hexencode(b):
if sys.version_info[0] < 3:
warnings.warn(
"Python 3.5 and older support will be dropped with PyPDF2 2.0.0",
PendingDeprecationWarning,
)
return b.encode("hex")
else:
import codecs
Expand Down

0 comments on commit 6354c18

Please sign in to comment.