Changeset 786

Show
Ignore:
Timestamp:
01/03/07 19:55:23 (2 years ago)
Author:
mfenniak
Message:

add PdfReadError? exception to fix some assertions that were improper, and failed while running optimized non-debug python code

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pypdf/trunk/pyPdf/generic.py

    r779 r786  
    3838from utils import readNonWhitespace, RC4_encrypt 
    3939import filters 
     40import utils 
    4041 
    4142def readObject(stream, pdf): 
     
    9596 
    9697    def readFromStream(stream): 
    97         assert stream.read(4) == "null" 
     98        nulltxt = stream.read(4) 
     99        if nulltxt != "null": 
     100            raise utils.PdfReadError, "error reading null object" 
    98101        return NullObject() 
    99102    readFromStream = staticmethod(readFromStream) 
     
    131134    def readFromStream(stream, pdf): 
    132135        arr = ArrayObject() 
    133         assert stream.read(1) == "[" 
     136        tmp = stream.read(1) 
     137        if tmp != "[": 
     138            raise utils.PdfReadError, "error reading array" 
    134139        while True: 
    135140            # skip leading whitespace 
     
    307312    def readFromStream(stream): 
    308313        name = stream.read(1) 
    309         assert name == "/" 
     314        if name != "/": 
     315            raise utils.PdfReadError, "name read error" 
    310316        while True: 
    311317            tok = stream.read(1) 
     
    332338 
    333339    def readFromStream(stream, pdf): 
    334         assert stream.read(2) == "<<" 
     340        tmp = stream.read(2) 
     341        if tmp != "<<": 
     342            raise utils.PdfReadError, "dictionary read error" 
    335343        data = {} 
    336344        while True: 
     
    346354            if data.has_key(key): 
    347355                # multiple definitions of key not permitted 
    348                 assert False 
     356                raise utils.PdfReadError, "multiple definitions in dictionary" 
    349357            data[key] = value 
    350358        pos = stream.tell() 
  • pypdf/trunk/pyPdf/pdf.py

    r784 r786  
    457457        while not line: 
    458458            line = self.readNextEndLine(stream) 
    459         assert line[:5] == "%%EOF" 
     459        if line[:5] != "%%EOF": 
     460            raise utils.PdfReadError, "EOF marker not found" 
    460461 
    461462        # find startxref entry - the location of the xref table 
     
    463464        startxref = int(line) 
    464465        line = self.readNextEndLine(stream) 
    465         assert line[:9] == "startxref" 
     466        if line[:9] != "startxref": 
     467            raise utils.PdfReadError, "startxref not found" 
    466468 
    467469        # read all cross reference tables and their trailers 
     
    476478                # standard cross-reference table 
    477479                ref = stream.read(4) 
    478                 assert ref[:3] == "ref" 
     480                if ref[:3] != "ref": 
     481                    raise utils.PdfReadError, "xref table read error" 
    479482                readNonWhitespace(stream) 
    480483                stream.seek(-1, 1) 
  • pypdf/trunk/pyPdf/utils.py

    r766 r786  
    8787    return retval 
    8888 
     89class PdfReadError(Exception): 
     90    pass 
     91 
    8992if __name__ == "__main__": 
    9093    # test RC4