diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 1964474b5..c0667013b 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -125,6 +125,7 @@ def compress(data): class FlateDecode(object): + @staticmethod def decode(data, decodeParms): data = decompress(data) predictor = 1 @@ -182,14 +183,14 @@ def decode(data, decodeParms): # unsupported predictor raise PdfReadError("Unsupported flatedecode predictor %r" % predictor) return data - decode = staticmethod(decode) # type: ignore + @staticmethod def encode(data): return compress(data) - encode = staticmethod(encode) # type: ignore class ASCIIHexDecode(object): + @staticmethod def decode(data, decodeParms=None): retval = "" char = "" @@ -208,7 +209,6 @@ def decode(data, decodeParms=None): x += 1 assert char == "" return retval - decode = staticmethod(decode) # type: ignore class LZWDecode(object): @@ -291,6 +291,7 @@ def decode(data, decodeParms=None): class ASCII85Decode(object): + @staticmethod def decode(data, decodeParms=None): if version_info < ( 3, 0 ): retval = "" @@ -364,19 +365,19 @@ def decode(data, decodeParms=None): out += struct.pack(b'>L',b)[:n-1] break return bytes(out) - decode = staticmethod(decode) # type: ignore class DCTDecode(object): + @staticmethod def decode(data, decodeParms=None): return data - decode = staticmethod(decode) # type: ignore class JPXDecode(object): + @staticmethod def decode(data, decodeParms=None): return data - decode = staticmethod(decode) # type: ignore class CCITTFaxDecode(object): + @staticmethod def decode(data, decodeParms=None, height=0): k = 1 width = 0 @@ -416,7 +417,6 @@ def decode(data, decodeParms=None, height=0): return tiffHeader + data - decode = staticmethod(decode) # type: ignore def decodeStreamData(stream): from .generic import NameObject diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index f80ef8b13..5f0b80ac9 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -119,12 +119,12 @@ class NullObject(PdfObject): def writeToStream(self, stream, encryption_key): stream.write(b_("null")) + @staticmethod def readFromStream(stream): nulltxt = stream.read(4) if nulltxt != b_("null"): raise PdfReadError("Could not read Null object") return NullObject() - readFromStream = staticmethod(readFromStream) # type: ignore class BooleanObject(PdfObject): @@ -137,6 +137,7 @@ def writeToStream(self, stream, encryption_key): else: stream.write(b_("false")) + @staticmethod def readFromStream(stream): word = stream.read(4) if word == b_("true"): @@ -146,7 +147,6 @@ def readFromStream(stream): return BooleanObject(False) else: raise PdfReadError('Could not read Boolean object') - readFromStream = staticmethod(readFromStream) # type: ignore class ArrayObject(list, PdfObject): @@ -157,6 +157,7 @@ def writeToStream(self, stream, encryption_key): data.writeToStream(stream, encryption_key) stream.write(b_(" ]")) + @staticmethod def readFromStream(stream, pdf): arr = ArrayObject() tmp = stream.read(1) @@ -176,8 +177,6 @@ def readFromStream(stream, pdf): # read and append obj arr.append(readObject(stream, pdf)) return arr - readFromStream = staticmethod(readFromStream) # type: ignore - class IndirectObject(PdfObject): def __init__(self, idnum, generation, pdf): @@ -206,6 +205,7 @@ def __ne__(self, other): def writeToStream(self, stream, encryption_key): stream.write(b_("%s %s R" % (self.idnum, self.generation))) + @staticmethod def readFromStream(stream, pdf): idnum = b_("") while True: @@ -229,7 +229,6 @@ def readFromStream(stream, pdf): if r != b_("R"): raise PdfReadError("Error reading indirect object reference at byte %s" % utils.hexStr(stream.tell())) return IndirectObject(int(idnum), int(generation), pdf) - readFromStream = staticmethod(readFromStream) # type: ignore class FloatObject(decimal.Decimal, PdfObject): @@ -274,13 +273,13 @@ def as_numeric(self): def writeToStream(self, stream, encryption_key): stream.write(b_(repr(self))) + @staticmethod def readFromStream(stream): num = utils.readUntilRegex(stream, NumberObject.NumberPattern) if num.find(NumberObject.ByteDot) != -1: return FloatObject(num) else: return NumberObject(num) - readFromStream = staticmethod(readFromStream) # type: ignore def createStringObject(string): @@ -483,6 +482,7 @@ class NameObject(str, PdfObject): def writeToStream(self, stream, encryption_key): stream.write(b_(self)) + @staticmethod def readFromStream(stream, pdf): debug = False if debug: print((stream.tell())) @@ -507,8 +507,6 @@ def readFromStream(stream, pdf): else: raise PdfReadError("Illegal character in Name Object") - readFromStream = staticmethod(readFromStream) # type: ignore - class DictionaryObject(dict, PdfObject): def raw_get(self, key): @@ -566,6 +564,7 @@ def writeToStream(self, stream, encryption_key): stream.write(b_("\n")) stream.write(b_(">>")) + @staticmethod def readFromStream(stream, pdf): debug = False tmp = stream.read(2) @@ -652,7 +651,6 @@ def readFromStream(stream, pdf): retval = DictionaryObject() retval.update(data) return retval - readFromStream = staticmethod(readFromStream) # type: ignore class TreeObject(DictionaryObject): @@ -802,6 +800,7 @@ def writeToStream(self, stream, encryption_key): stream.write(data) stream.write(b_("\nendstream")) + @staticmethod def initializeFromDictionary(data): if SA.FILTER in data: retval = EncodedStreamObject() @@ -812,7 +811,6 @@ def initializeFromDictionary(data): del data[SA.LENGTH] retval.update(data) return retval - initializeFromDictionary = staticmethod(initializeFromDictionary) # type: ignore def flateEncode(self): if SA.FILTER in self: diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index d10418606..63e7287e4 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -1694,7 +1694,7 @@ def _getObjectFromStream(self, indirectReference): streamData.seek(pos, 0) try: obj = readObject(streamData, self) - except utils.PdfStreamError as e: + except PdfStreamError as e: # Stream object cannot be read. Normally, a critical error, but # Adobe Reader doesn't complain, so continue (in strict mode?) e = sys.exc_info()[1] @@ -2273,6 +2273,7 @@ def __init__(self, pdf=None, indirectRef=None): self.pdf = pdf self.indirectRef = indirectRef + @staticmethod def createBlankPage(pdf=None, width=None, height=None): """ Returns a new blank page. @@ -2306,7 +2307,6 @@ def createBlankPage(pdf=None, width=None, height=None): RectangleObject([0, 0, width, height])) return page - createBlankPage = staticmethod(createBlankPage) # type: ignore def rotateClockwise(self, angle): """ @@ -2337,6 +2337,7 @@ def _rotate(self, angle): currentAngle = rotateObj if isinstance(rotateObj, int) else rotateObj.getObject() self[NameObject("/Rotate")] = NumberObject(currentAngle + angle) + @staticmethod def _mergeResources(res1, res2, resource): newRes = DictionaryObject() newRes.update(res1.get(resource, DictionaryObject()).getObject()) @@ -2350,8 +2351,8 @@ def _mergeResources(res1, res2, resource): elif key not in newRes: newRes[key] = page2Res.raw_get(key) return newRes, renameRes - _mergeResources = staticmethod(_mergeResources) # type: ignore + @staticmethod def _contentStreamRename(stream, rename, pdf): if not rename: return stream @@ -2370,8 +2371,8 @@ def _contentStreamRename(stream, rename, pdf): else: raise KeyError ("type of operands is %s" % type (operands)) return stream - _contentStreamRename = staticmethod(_contentStreamRename) # type: ignore + @staticmethod def _pushPopGS(contents, pdf): # adds a graphics state "push" and "pop" to the beginning and end # of a content stream. This isolates it from changes such as @@ -2380,8 +2381,8 @@ def _pushPopGS(contents, pdf): stream.operations.insert(0, [[], "q"]) stream.operations.append([[], "Q"]) return stream - _pushPopGS = staticmethod(_pushPopGS) # type: ignore + @staticmethod def _addTransformationMatrix(contents, pdf, ctm): # adds transformation matrix at the beginning of the given # contents stream. @@ -2391,7 +2392,6 @@ def _addTransformationMatrix(contents, pdf, ctm): FloatObject(c), FloatObject(d), FloatObject(e), FloatObject(f)], " cm"]) return contents - _addTransformationMatrix = staticmethod(_addTransformationMatrix) # type: ignore def getContents(self): """ diff --git a/PyPDF2/xmp.py b/PyPDF2/xmp.py index 206317f35..85406d732 100644 --- a/PyPDF2/xmp.py +++ b/PyPDF2/xmp.py @@ -96,6 +96,7 @@ def _getText(self, element): def _converter_string(value): return value + @staticmethod def _converter_date(value): m = iso8601.match(value) year = int(m.group("year")) @@ -115,7 +116,6 @@ def _converter_date(value): tzd_minutes *= -1 dt = dt + datetime.timedelta(hours=tzd_hours, minutes=tzd_minutes) return dt - _test_converter_date = staticmethod(_converter_date) def _getter_bag(namespace, name, converter): def get(self):