Coverage for pdfrw/pdfrw/objects/pdfarray.py: 68%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# A part of pdfrw (https://github.com/pmaupin/pdfrw)
2# Copyright (C) 2006-2015 Patrick Maupin, Austin, Texas
3# MIT license -- See LICENSE.txt for details
5from .pdfindirect import PdfIndirect
6from .pdfobject import PdfObject
9def _resolved():
10 pass
13class PdfArray(list):
14 ''' A PdfArray maps the PDF file array object into a Python list.
15 It has an indirect attribute which defaults to False.
16 '''
17 indirect = False
19 def __init__(self, source=[]):
20 self._resolve = self._resolver
21 self.extend(source)
23 def _resolver(self, isinstance=isinstance, enumerate=enumerate,
24 listiter=list.__iter__, PdfIndirect=PdfIndirect,
25 resolved=_resolved, PdfNull=PdfObject('null')):
26 for index, value in enumerate(list.__iter__(self)):
27 if isinstance(value, PdfIndirect):
28 value = value.real_value()
29 if value is None:
30 value = PdfNull
31 self[index] = value
32 self._resolve = resolved
34 def __getitem__(self, index, listget=list.__getitem__):
35 self._resolve()
36 return listget(self, index)
38 try:
39 def __getslice__(self, i, j, listget=list.__getslice__):
40 self._resolve()
41 return listget(self, i, j)
42 except AttributeError:
43 pass
45 def __iter__(self, listiter=list.__iter__):
46 self._resolve()
47 return listiter(self)
49 def count(self, item):
50 self._resolve()
51 return list.count(self, item)
53 def index(self, item):
54 self._resolve()
55 return list.index(self, item)
57 def remove(self, item):
58 self._resolve()
59 return list.remove(self, item)
61 def sort(self, *args, **kw):
62 self._resolve()
63 return list.sort(self, *args, **kw)
65 def pop(self, *args):
66 self._resolve()
67 return list.pop(self, *args)
69 def __reversed__(self):
70 self._resolve()
71 return list.__reversed__(self)