Cleanup: isinstance

pull/1/head
Yusuke Shinyama 2014-03-28 17:50:59 +09:00
parent 7849c8724a
commit 340387bfc6
7 changed files with 18 additions and 19 deletions

View File

@ -622,10 +622,8 @@ class LTLayoutContainer(LTContainer):
if c == 0 and isany(obj1, obj2):
dists.append((1, d, obj1, obj2))
continue
if (isinstance(obj1, LTTextBoxVertical) or
isinstance(obj1, LTTextGroupTBRL) or
isinstance(obj2, LTTextBoxVertical) or
isinstance(obj2, LTTextGroupTBRL)):
if (isinstance(obj1, (LTTextBoxVertical, LTTextGroupTBRL)) or
isinstance(obj2, (LTTextBoxVertical, LTTextGroupTBRL))):
group = LTTextGroupTBRL([obj1, obj2])
else:
group = LTTextGroupLRTB([obj1, obj2])

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
from utils import mult_matrix, translate_matrix
from utils import enc, bbox2str
from utils import enc, bbox2str, isnumber
from pdffont import PDFUnicodeNotDefined
@ -85,7 +85,7 @@ class PDFTextDevice(PDFDevice):
font, fontsize, scaling, charspace, wordspace, rise, dxscale):
needcharspace = False
for obj in seq:
if isinstance(obj, int) or isinstance(obj, float):
if isnumber(obj):
x -= obj*dxscale
needcharspace = True
else:
@ -103,7 +103,7 @@ class PDFTextDevice(PDFDevice):
font, fontsize, scaling, charspace, wordspace, rise, dxscale):
needcharspace = False
for obj in seq:
if isinstance(obj, int) or isinstance(obj, float):
if isnumber(obj):
y -= obj*dxscale
needcharspace = True
else:

View File

@ -15,7 +15,7 @@ from pdftypes import PDFException, resolve1
from pdftypes import int_value, num_value
from pdftypes import list_value, dict_value, stream_value
from fontmetrics import FONT_METRICS
from utils import apply_matrix_norm, nunpack, choplist
from utils import apply_matrix_norm, nunpack, choplist, isnumber
def get_widths(seq):
@ -28,7 +28,7 @@ def get_widths(seq):
for (i, w) in enumerate(v):
widths[char1+i] = w
r = []
elif isinstance(v, int):
elif isnumber(v):
r.append(v)
if len(r) == 3:
(char1, char2, w) = r
@ -51,7 +51,7 @@ def get_widths2(seq):
for (i, (w, vx, vy)) in enumerate(choplist(3, v)):
widths[char1+i] = (w, (vx, vy))
r = []
elif isinstance(v, int):
elif isnumber(v):
r.append(v)
if len(r) == 5:
(char1, char2, w, vx, vy) = r

View File

@ -6,7 +6,7 @@ from runlength import rldecode
from ccitt import ccittfaxdecode
from psparser import PSException, PSObject
from psparser import LIT, STRICT
from utils import apply_png_predictor
from utils import apply_png_predictor, isnumber
LITERAL_CRYPT = LIT('Crypt')
@ -126,7 +126,7 @@ def float_value(x):
def num_value(x):
x = resolve1(x)
if not (isinstance(x, int) or isinstance(x, float)):
if not isnumber(x):
if STRICT:
raise PDFTypeError('Int or Float required: %r' % x)
return 0
@ -144,7 +144,7 @@ def str_value(x):
def list_value(x):
x = resolve1(x)
if not (isinstance(x, list) or isinstance(x, tuple)):
if not isinstance(x, (list, tuple)):
if STRICT:
raise PDFTypeError('List required: %r' % x)
return []

View File

@ -556,11 +556,7 @@ class PSStackParser(PSBaseParser):
while not self.results:
(pos, token) = self.nexttoken()
#print (pos,token), (self.curtype, self.curstack)
if (isinstance(token, int) or
isinstance(token, float) or
isinstance(token, bool) or
isinstance(token, str) or
isinstance(token, PSLiteral)):
if isinstance(token, (int, long, float, bool, str, PSLiteral)):
# normal token
self.push((pos, token))
elif token == KEYWORD_ARRAY_BEGIN:

View File

@ -79,6 +79,10 @@ def apply_matrix_norm((a, b, c, d, e, f), (p, q)):
## Utility functions
##
# isnumber
def isnumber(x):
return isinstance(x, (int, long, float))
# uniq
def uniq(objs):
"""Eliminates duplicated elements."""

View File

@ -13,6 +13,7 @@ from pdfminer.pdfdocument import PDFDocument, PDFNoOutlines
from pdfminer.pdftypes import PDFObjectNotFound, PDFValueError
from pdfminer.pdftypes import PDFStream, PDFObjRef, resolve1, stream_value
from pdfminer.pdfpage import PDFPage
from pdfminer.utils import isnumber
ESC_PAT = re.compile(r'[\000-\037&<>()"\042\047\134\177-\377]')
@ -75,7 +76,7 @@ def dumpxml(out, obj, codec=None):
out.write('<literal>%s</literal>' % obj.name)
return
if isinstance(obj, int) or isinstance(obj, float):
if isnumber(obj):
out.write('<number>%s</number>' % obj)
return