summaryrefslogtreecommitdiff
path: root/pdfrw/objects/pdfarray.py
diff options
context:
space:
mode:
Diffstat (limited to 'pdfrw/objects/pdfarray.py')
-rw-r--r--pdfrw/objects/pdfarray.py28
1 files changed, 18 insertions, 10 deletions
diff --git a/pdfrw/objects/pdfarray.py b/pdfrw/objects/pdfarray.py
index 8cf6bbb..b662755 100644
--- a/pdfrw/objects/pdfarray.py
+++ b/pdfrw/objects/pdfarray.py
@@ -1,13 +1,15 @@
-# A part of pdfrw (pdfrw.googlecode.com)
-# Copyright (C) 2006-2012 Patrick Maupin, Austin, Texas
+# A part of pdfrw (https://github.com/pmaupin/pdfrw)
+# Copyright (C) 2006-2015 Patrick Maupin, Austin, Texas
# MIT license -- See LICENSE.txt for details
-from pdfrw.objects.pdfindirect import PdfIndirect
-from pdfrw.objects.pdfobject import PdfObject
+from .pdfindirect import PdfIndirect
+from .pdfobject import PdfObject
+
def _resolved():
pass
+
class PdfArray(list):
''' A PdfArray maps the PDF file array object into a Python list.
It has an indirect attribute which defaults to False.
@@ -19,9 +21,8 @@ class PdfArray(list):
self.extend(source)
def _resolver(self, isinstance=isinstance, enumerate=enumerate,
- listiter=list.__iter__,
- PdfIndirect=PdfIndirect, resolved=_resolved,
- PdfNull=PdfObject('null')):
+ listiter=list.__iter__, PdfIndirect=PdfIndirect,
+ resolved=_resolved, PdfNull=PdfObject('null')):
for index, value in enumerate(list.__iter__(self)):
if isinstance(value, PdfIndirect):
value = value.real_value()
@@ -34,9 +35,12 @@ class PdfArray(list):
self._resolve()
return listget(self, index)
- def __getslice__(self, index, listget=list.__getslice__):
- self._resolve()
- return listget(self, index)
+ try:
+ def __getslice__(self, i, j, listget=list.__getslice__):
+ self._resolve()
+ return listget(self, i, j)
+ except AttributeError:
+ pass
def __iter__(self, listiter=list.__iter__):
self._resolve()
@@ -45,15 +49,19 @@ class PdfArray(list):
def count(self, item):
self._resolve()
return list.count(self, item)
+
def index(self, item):
self._resolve()
return list.index(self, item)
+
def remove(self, item):
self._resolve()
return list.remove(self, item)
+
def sort(self, *args, **kw):
self._resolve()
return list.sort(self, *args, **kw)
+
def pop(self, *args):
self._resolve()
return list.pop(self, *args)