Changeset 745
- Timestamp:
- 06/07/06 23:17:26 (2 years ago)
- Files:
-
- pypdf/trunk/pyPdf/pdf.py (modified) (4 diffs)
- pypdf/trunk/pyPdf/utils.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
pypdf/trunk/pyPdf/pdf.py
r744 r745 45 45 import filters 46 46 from generic import * 47 from utils import readNonWhitespace, readUntilWhitespace 47 from utils import readNonWhitespace, readUntilWhitespace, ConvertFunctionsToVirtualList 48 48 from sets import ImmutableSet 49 49 … … 227 227 return retval 228 228 229 documentInfo = property(lambda self: self.getDocumentInfo(), None, None, 230 """See PdfFileReader.getDocumentInfo(). This property was added 231 in pyPdf v1.7, and will exist for all future v1.x releases.""") 232 229 233 def getNumPages(self): 230 234 """ … … 236 240 self._flatten() 237 241 return len(self.flattenedPages) 242 243 numPages = property(lambda self: self.getNumPages(), None, None, 244 """See PdfFileReader.getNamePages(). This property was added in 245 v1.7, and will exist for all future v1.x releases.""") 238 246 239 247 def getPage(self, pageNumber): … … 249 257 self._flatten() 250 258 return self.flattenedPages[pageNumber] 259 260 pages = property(lambda self: ConvertFunctionsToVirtualList(self.getNumPages, self.getPage), 261 None, None, """Returns a sequence of pages. This property was 262 added in v1.7 and will exist for all future v1.x releases.""") 251 263 252 264 def _flatten(self, pages = None, inherit = None): pypdf/trunk/pyPdf/utils.py
r731 r745 51 51 tok = stream.read(1) 52 52 return tok 53 54 class ConvertFunctionsToVirtualList(object): 55 def __init__(self, lengthFunction, getFunction): 56 self.lengthFunction = lengthFunction 57 self.getFunction = getFunction 58 59 def __len__(self): 60 return self.lengthFunction() 61 62 def __getitem__(self, index): 63 if not isinstance(index, int): 64 raise TypeError, "sequence indices must be integers" 65 len_self = len(self) 66 if index < 0: 67 # support negative indexes 68 index = len_self + index 69 if index < 0 or index >= len_self: 70 raise IndexError, "sequence index out of range" 71 return self.getFunction(index) 72 73
