Skip to content

Commit

Permalink
DEP: Class, variable, and module names
Browse files Browse the repository at this point in the history
Core classes:

* PdfFileReader➔ PdfReader
* PdfFileWriter➔ PdfWriter
* PdfFileMerger➔ PdfMerger
  • Loading branch information
MartinThoma committed May 8, 2022
1 parent f3cb316 commit a53967f
Show file tree
Hide file tree
Showing 42 changed files with 263 additions and 227 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Explain briefly what you want to achive.
How would your feature be used? (Remove this if it is not applicable.)

```python
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2 import PdfReader, PdfWriter

... # your new feature in action!
```
12 changes: 6 additions & 6 deletions PyPDF2/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from PyPDF2 import pdf
from PyPDF2._reader import PdfFileReader
from PyPDF2._reader import PdfReader
from PyPDF2._version import __version__
from PyPDF2._writer import PdfFileWriter
from PyPDF2.merger import PdfFileMerger
from PyPDF2._writer import PdfWriter
from PyPDF2.merger import PdfMerger
from PyPDF2.pagerange import PageRange, parse_filename_page_ranges
from PyPDF2.papersizes import PaperSize

Expand All @@ -12,7 +12,7 @@
"PaperSize",
"parse_filename_page_ranges",
"pdf",
"PdfFileMerger",
"PdfFileReader",
"PdfFileWriter",
"PdfMerger",
"PdfReader",
"PdfWriter",
]
4 changes: 2 additions & 2 deletions PyPDF2/_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ class PageObject(DictionaryObject):
PageObject represents a single page within a PDF file.
Typically this object will be created by accessing the
:meth:`getPage()<PyPDF2.PdfFileReader.getPage>` method of the
:class:`PdfFileReader<PyPDF2.PdfFileReader>` class, but it is
:meth:`getPage()<PyPDF2.PdfReader.getPage>` method of the
:class:`PdfReader<PyPDF2.PdfReader>` class, but it is
also possible to create an empty page with the
:meth:`createBlankPage()<PageObject.createBlankPage>` static method.
Expand Down
42 changes: 27 additions & 15 deletions PyPDF2/_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,9 @@ def producer_raw(self):
return self.get(DI.PRODUCER)


class PdfFileReader(object):
class PdfReader(object):
"""
Initialize a PdfFileReader object.
Initialize a PdfReader object.
This operation can take some time, as the PDF stream's cross-reference
tables are read into memory.
Expand Down Expand Up @@ -229,7 +229,7 @@ def _showwarning(
self._pageId2Num = None # map page IndirectRef number to Page Number
if hasattr(stream, "mode") and "b" not in stream.mode:
warnings.warn(
"PdfFileReader stream/file object is not in binary mode. "
"PdfReader stream/file object is not in binary mode. "
"It may not be read correctly.",
PdfReadWarning,
)
Expand Down Expand Up @@ -263,7 +263,7 @@ def getDocumentInfo(self):
def documentInfo(self):
"""
Read-only property that accesses the
:meth:`getDocumentInfo()<PdfFileReader.getDocumentInfo>` function.
:meth:`getDocumentInfo()<PdfReader.getDocumentInfo>` function.
"""
return self.getDocumentInfo()

Expand All @@ -287,7 +287,7 @@ def getXmpMetadata(self):
def xmpMetadata(self):
"""
Read-only property that accesses the
:meth:`getXmpMetadata()<PdfFileReader.getXmpMetadata>` function.
:meth:`getXmpMetadata()<PdfReader.getXmpMetadata>` function.
"""
return self.getXmpMetadata()

Expand Down Expand Up @@ -322,7 +322,7 @@ def getNumPages(self):
def numPages(self):
"""
Read-only property that accesses the
:meth:`getNumPages()<PdfFileReader.getNumPages>` function.
:meth:`getNumPages()<PdfReader.getNumPages>` function.
"""
return self.getNumPages()

Expand All @@ -345,7 +345,7 @@ def getPage(self, pageNumber):
def namedDestinations(self):
"""
Read-only property that accesses the
:meth:`getNamedDestinations()<PdfFileReader.getNamedDestinations>` function.
:meth:`getNamedDestinations()<PdfReader.getNamedDestinations>` function.
"""
return self.getNamedDestinations()

Expand Down Expand Up @@ -506,7 +506,7 @@ def getNamedDestinations(self, tree=None, retval=None):
def outlines(self):
"""
Read-only property that accesses the
:meth:`getOutlines()<PdfFileReader.getOutlines>` function.
:meth:`getOutlines()<PdfReader.getOutlines>` function.
"""
return self.getOutlines()

Expand Down Expand Up @@ -645,16 +645,16 @@ def _buildOutline(self, node):
def pages(self):
"""
Read-only property that emulates a list based upon the
:meth:`getNumPages()<PdfFileReader.getNumPages>` and
:meth:`getPage()<PdfFileReader.getPage>` methods.
:meth:`getNumPages()<PdfReader.getNumPages>` and
:meth:`getPage()<PdfReader.getPage>` methods.
"""
return ConvertFunctionsToVirtualList(self.getNumPages, self.getPage)

def getPageLayout(self):
"""
Get the page layout.
See :meth:`setPageLayout()<PdfFileWriter.setPageLayout>`
See :meth:`setPageLayout()<PdfWriter.setPageLayout>`
for a description of valid layouts.
:return: Page layout currently being used.
Expand All @@ -668,13 +668,13 @@ def getPageLayout(self):
@property
def pageLayout(self):
"""Read-only property accessing the
:meth:`getPageLayout()<PdfFileReader.getPageLayout>` method."""
:meth:`getPageLayout()<PdfReader.getPageLayout>` method."""
return self.getPageLayout()

def getPageMode(self):
"""
Get the page mode.
See :meth:`setPageMode()<PdfFileWriter.setPageMode>`
See :meth:`setPageMode()<PdfWriter.setPageMode>`
for a description of valid modes.
:return: Page mode currently being used.
Expand All @@ -688,7 +688,7 @@ def getPageMode(self):
@property
def pageMode(self):
"""Read-only property accessing the
:meth:`getPageMode()<PdfFileReader.getPageMode>` method."""
:meth:`getPageMode()<PdfReader.getPageMode>` method."""
return self.getPageMode()

def _flatten(self, pages=None, inherit=None, indirectRef=None):
Expand Down Expand Up @@ -1412,6 +1412,18 @@ def isEncrypted(self):
"""
Read-only boolean property showing whether this PDF file is encrypted.
Note that this property, if true, will remain true even after the
:meth:`decrypt()<PdfFileReader.decrypt>` method is called.
:meth:`decrypt()<PdfReader.decrypt>` method is called.
"""
return self.getIsEncrypted()


class PdfFileReader(PdfReader):
def __init__(self, *args, **kwargs):
import warnings

warnings.warn(
"PdfFileReader was renamed to PdfReader. PdfFileReader will be deprecated",
DeprecationWarning,
stacklevel=2,
)
super().__init__(*args, **kwargs)
36 changes: 24 additions & 12 deletions PyPDF2/_writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@
logger = logging.getLogger(__name__)


class PdfFileWriter(object):
class PdfWriter(object):
"""
This class supports writing PDF files out, given pages produced by another
class (typically :class:`PdfFileReader<PdfFileReader>`).
class (typically :class:`PdfReader<PdfReader>`).
"""

def __init__(self):
Expand Down Expand Up @@ -154,7 +154,7 @@ def set_need_appearances_writer(self):
def addPage(self, page):
"""
Add a page to this PDF file. The page is usually acquired from a
:class:`PdfFileReader<PdfFileReader>` instance.
:class:`PdfReader<PdfReader>` instance.
:param PageObject page: The page to add to the document. Should be
an instance of :class:`PageObject<PyPDF2.pdf.PageObject>`
Expand All @@ -164,7 +164,7 @@ def addPage(self, page):
def insertPage(self, page, index=0):
"""
Insert a page in this PDF file. The page is usually acquired from a
:class:`PdfFileReader<PdfFileReader>` instance.
:class:`PdfReader<PdfReader>` instance.
:param PageObject page: The page to add to the document. This
argument should be an instance of :class:`PageObject<pdf.PageObject>`.
Expand Down Expand Up @@ -361,7 +361,7 @@ def appendPagesFromReader(self, reader, after_page_append=None):
Copy pages from reader to writer. Includes an optional callback parameter
which is invoked after pages are appended to the writer.
:param reader: a PdfFileReader object from which to copy page
:param reader: a PdfReader object from which to copy page
annotations to this writer object. The writer's annots
will then be updated
:callback after_page_append (function): Callback function that is invoked after
Expand Down Expand Up @@ -419,7 +419,7 @@ def cloneReaderDocumentRoot(self, reader):
"""
Copy the reader document root to the writer.
:param reader: PdfFileReader from the document root should be copied.
:param reader: PdfReader from the document root should be copied.
:callback after_page_append:
"""
self._root_object = reader.trailer[TK.ROOT]
Expand Down Expand Up @@ -1155,7 +1155,7 @@ def getPageLayout(self):
"""
Get the page layout.
See :meth:`setPageLayout()<PdfFileWriter.setPageLayout>` for a description of valid layouts.
See :meth:`setPageLayout()<PdfWriter.setPageLayout>` for a description of valid layouts.
:return: Page layout currently being used.
:rtype: str, None if not specified
Expand Down Expand Up @@ -1198,8 +1198,8 @@ def setPageLayout(self, layout):
self._root_object.update({NameObject("/PageLayout"): layout})

pageLayout = property(getPageLayout, setPageLayout)
"""Read and write property accessing the :meth:`getPageLayout()<PdfFileWriter.getPageLayout>`
and :meth:`setPageLayout()<PdfFileWriter.setPageLayout>` methods."""
"""Read and write property accessing the :meth:`getPageLayout()<PdfWriter.getPageLayout>`
and :meth:`setPageLayout()<PdfWriter.setPageLayout>` methods."""

_valid_modes = [
"/UseNone",
Expand All @@ -1213,7 +1213,7 @@ def setPageLayout(self, layout):
def getPageMode(self):
"""
Get the page mode.
See :meth:`setPageMode()<PdfFileWriter.setPageMode>` for a description
See :meth:`setPageMode()<PdfWriter.setPageMode>` for a description
of valid modes.
:return: Page mode currently being used.
Expand Down Expand Up @@ -1255,5 +1255,17 @@ def setPageMode(self, mode):
self._root_object.update({NameObject("/PageMode"): mode})

pageMode = property(getPageMode, setPageMode)
"""Read and write property accessing the :meth:`getPageMode()<PdfFileWriter.getPageMode>`
and :meth:`setPageMode()<PdfFileWriter.setPageMode>` methods."""
"""Read and write property accessing the :meth:`getPageMode()<PdfWriter.getPageMode>`
and :meth:`setPageMode()<PdfWriter.setPageMode>` methods."""


class PdfFileWriter(PdfWriter):
def __init__(self, *args, **kwargs):
import warnings

warnings.warn(
"PdfFileWriter was renamed to PdfWriter. PdfFileWriter will be deprecated",
DeprecationWarning,
stacklevel=2,
)
super().__init__(*args, **kwargs)
4 changes: 2 additions & 2 deletions PyPDF2/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -1141,7 +1141,7 @@ def getHeight(self):
class Field(TreeObject):
"""
A class representing a field dictionary. This class is accessed through
:meth:`getFields()<PyPDF2.PdfFileReader.getFields>`
:meth:`getFields()<PyPDF2.PdfReader.getFields>`
"""

def __init__(self, data):
Expand Down Expand Up @@ -1194,7 +1194,7 @@ def mappingName(self):
"""
Read-only property accessing the mapping name of this field. This
name is used by PyPDF2 as a key in the dictionary returned by
:meth:`getFields()<PyPDF2.PdfFileReader.getFields>`
:meth:`getFields()<PyPDF2.PdfReader.getFields>`
"""
return self.get("/TM")

Expand Down
36 changes: 24 additions & 12 deletions PyPDF2/merger.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@

from sys import version_info

from PyPDF2._reader import PdfFileReader
from PyPDF2._writer import PdfFileWriter
from PyPDF2._reader import PdfReader
from PyPDF2._writer import PdfWriter
from PyPDF2.constants import PagesAttributes as PA
from PyPDF2.generic import *
from PyPDF2.pagerange import PageRange
Expand All @@ -47,7 +47,7 @@

class _MergedPage(object):
"""
_MergedPage is used internally by PdfFileMerger to collect necessary
_MergedPage is used internally by PdfMerger to collect necessary
information on each page that is being merged.
"""

Expand All @@ -58,9 +58,9 @@ def __init__(self, pagedata, src, id):
self.id = id


class PdfFileMerger(object):
class PdfMerger(object):
"""
Initializes a ``PdfFileMerger`` object. ``PdfFileMerger`` merges multiple
Initializes a ``PdfMerger`` object. ``PdfMerger`` merges multiple
PDFs into a single PDF. It can concatenate, slice, insert, or any
combination of the above.
Expand All @@ -78,7 +78,7 @@ class PdfFileMerger(object):
def __init__(self, strict=True, overwriteWarnings=True):
self.inputs = []
self.pages = []
self.output = PdfFileWriter()
self.output = PdfWriter()
self.bookmarks = []
self.named_dests = []
self.id_count = 0
Expand Down Expand Up @@ -119,7 +119,7 @@ def merge(
# If the fileobj parameter is a string, assume it is a path
# and create a file object at that location. If it is a file,
# copy the file's contents into a BytesIO (or StreamIO) stream object; if
# it is a PdfFileReader, copy that reader's stream into a
# it is a PdfReader, copy that reader's stream into a
# BytesIO (or StreamIO) stream.
# If fileobj is none of the above types, it is not modified
decryption_key = None
Expand All @@ -131,7 +131,7 @@ def merge(
filecontent = fileobj.read()
fileobj = StreamIO(filecontent)
my_file = True
elif isinstance(fileobj, PdfFileReader):
elif isinstance(fileobj, PdfReader):
if hasattr(fileobj, "_decryption_key"):
decryption_key = fileobj._decryption_key
orig_tell = fileobj.stream.tell()
Expand All @@ -144,9 +144,9 @@ def merge(
fileobj = filecontent
my_file = True

# Create a new PdfFileReader instance using the stream
# Create a new PdfReader instance using the stream
# (either file or BytesIO or StringIO) created above
pdfr = PdfFileReader(
pdfr = PdfReader(
fileobj, strict=self.strict, overwriteWarnings=self.overwriteWarnings
)
if decryption_key is not None:
Expand Down Expand Up @@ -238,9 +238,9 @@ def write(self, fileobj):
fileobj = file(fileobj, "wb")
my_file = True

# Add pages to the PdfFileWriter
# Add pages to the PdfWriter
# The commented out line below was replaced with the two lines below it
# to allow PdfFileMerger to work with PyPdf 1.13
# to allow PdfMerger to work with PyPdf 1.13
for page in self.pages:
self.output.addPage(page.pagedata)
page.out_pagedata = self.output.getReference(
Expand Down Expand Up @@ -656,3 +656,15 @@ def removeAll(self):
for child in self.tree.children():
self.tree.removeChild(child)
self.pop()


class PdfFileMerger(PdfMerger):
def __init__(self, *args, **kwargs):
import warnings

warnings.warn(
"PdfFileMerger was renamed to PdfMerger. PdfFileMerger will be deprecated",
DeprecationWarning,
stacklevel=2,
)
super().__init__(*args, **kwargs)
2 changes: 1 addition & 1 deletion PyPDF2/xmp.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
class XmpInformation(PdfObject):
"""
An object that represents Adobe XMP metadata.
Usually accessed by :meth:`getXmpMetadata()<PyPDF2.PdfFileReader.getXmpMetadata>`
Usually accessed by :meth:`getXmpMetadata()<PyPDF2.PdfReader.getXmpMetadata>`
"""

def __init__(self, stream):
Expand Down
Loading

0 comments on commit a53967f

Please sign in to comment.