diff options
Diffstat (limited to 'pdfrw/objects/pdfarray.py')
-rw-r--r-- | pdfrw/objects/pdfarray.py | 28 |
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) |