docstring fix

pull/1/head
Yusuke Shinyama 2011-02-27 13:09:12 +09:00
parent cabaa10e4f
commit a8bf9b159e
5 changed files with 41 additions and 44 deletions

View File

@ -2,7 +2,6 @@
import sys
from utils import apply_matrix_pt, get_bound, INF
from utils import bbox2str, matrix2str, uniq, csort, Plane
from pdffont import PDFUnicodeNotDefined
## LAParams

View File

@ -124,11 +124,12 @@ class PDFGraphicState(object):
##
class PDFResourceManager(object):
'''
"""Repository of shared resources.
ResourceManager facilitates reuse of shared resources
such as fonts and images so that large objects are not
allocated multiple times.
'''
"""
debug = 0
def __init__(self):

View File

@ -51,20 +51,21 @@ class PDFObjRef(PDFObject):
# resolve
def resolve1(x):
'''
Resolve an object. If this is an array or dictionary,
it may still contains some indirect objects inside.
'''
"""Resolves an object.
If this is an array or dictionary, it may still contains
some indirect objects inside.
"""
while isinstance(x, PDFObjRef):
x = x.resolve()
return x
def resolve_all(x):
'''
Recursively resolve X and all the internals.
"""Recursively resolves the given object and all the internals.
Make sure there is no indirect reference within the nested object.
This procedure might be slow.
'''
"""
while isinstance(x, PDFObjRef):
x = x.resolve()
if isinstance(x, list):
@ -75,9 +76,8 @@ def resolve_all(x):
return x
def decipher_all(decipher, objid, genno, x):
'''
Recursively decipher X.
'''
"""Recursively deciphers the given object.
"""
if isinstance(x, str):
return decipher(objid, genno, x)
if isinstance(x, list):

View File

@ -140,9 +140,8 @@ OCT_STRING = re.compile(r'[0-7]')
ESC_STRING = { 'b':8, 't':9, 'n':10, 'f':12, 'r':13, '(':40, ')':41, '\\':92 }
class PSBaseParser(object):
'''
Most basic PostScript parser that performs only tokenization.
'''
"""Most basic PostScript parser that performs only tokenization.
"""
BUFSIZ = 4096
debug = 0
@ -175,9 +174,8 @@ class PSBaseParser(object):
return
def seek(self, pos):
'''
Seeks the parser to the given position.
'''
"""Seeks the parser to the given position.
"""
if 2 <= self.debug:
print >>stderr, 'seek: %r' % pos
self.fp.seek(pos)
@ -203,9 +201,8 @@ class PSBaseParser(object):
return
def nextline(self):
'''
Fetches a next line that ends either with \\r or \\n.
'''
"""Fetches a next line that ends either with \\r or \\n.
"""
linebuf = ''
linepos = self.bufpos + self.charpos
eol = False
@ -234,10 +231,10 @@ class PSBaseParser(object):
return (linepos, linebuf)
def revreadlines(self):
'''
Fetches a next line backword. This is used to locate
the trailers at the end of a file.
'''
"""Fetches a next line backword.
This is used to locate the trailers at the end of a file.
"""
self.fp.seek(0, 2)
pos = self.fp.tell()
buf = ''
@ -534,11 +531,11 @@ class PSStackParser(PSBaseParser):
return
def nextobject(self):
'''
Yields a list of objects: keywords, literals, strings,
numbers, arrays and dictionaries. Arrays and dictionaries
are represented as Python sequence and dictionaries.
'''
"""Yields a list of objects.
Returns keywords, literals, strings, numbers, arrays and dictionaries.
Arrays and dictionaries are represented as Python lists and dictionaries.
"""
while not self.results:
(pos, token) = self.nexttoken()
#print (pos,token), (self.curtype, self.curstack)

View File

@ -11,21 +11,21 @@ from struct import pack, unpack
MATRIX_IDENTITY = (1, 0, 0, 1, 0, 0)
def mult_matrix((a1,b1,c1,d1,e1,f1), (a0,b0,c0,d0,e0,f0)):
'''Returns the multiplication of two matrices.'''
"""Returns the multiplication of two matrices."""
return (a0*a1+c0*b1, b0*a1+d0*b1,
a0*c1+c0*d1, b0*c1+d0*d1,
a0*e1+c0*f1+e0, b0*e1+d0*f1+f0)
def translate_matrix((a,b,c,d,e,f), (x,y)):
'''Translates a matrix by (x,y).'''
"""Translates a matrix by (x,y)."""
return (a,b,c,d,x*a+y*c+e,x*b+y*d+f)
def apply_matrix_pt((a,b,c,d,e,f), (x,y)):
'''Applies a matrix to a point.'''
"""Applies a matrix to a point."""
return (a*x+c*y+e, b*x+d*y+f)
def apply_matrix_norm((a,b,c,d,e,f), (p,q)):
'''Equivalent to apply_matrix_pt(M, (p,q)) - apply_matrix_pt(M, (0,0))'''
"""Equivalent to apply_matrix_pt(M, (p,q)) - apply_matrix_pt(M, (0,0))"""
return (a*p+c*q, b*p+d*q)
@ -34,7 +34,7 @@ def apply_matrix_norm((a,b,c,d,e,f), (p,q)):
# uniq
def uniq(objs):
'''Eliminates duplicated elements.'''
"""Eliminates duplicated elements."""
done = set()
for obj in objs:
if obj in done: continue
@ -44,19 +44,19 @@ def uniq(objs):
# csort
def csort(objs, key):
'''Order-preserving sorting function.'''
"""Order-preserving sorting function."""
idxs = dict( (obj,i) for (i,obj) in enumerate(objs) )
return sorted(objs, key=lambda obj:(key(obj), idxs[obj]))
# drange
def drange(v0, v1, d):
'''Returns a discrete range.'''
"""Returns a discrete range."""
assert v0 < v1
return xrange(int(v0)/d, int(v1+d-1)/d)
# get_bound
def get_bound(pts):
'''Compute a minimal rectangle that covers all the points.'''
"""Compute a minimal rectangle that covers all the points."""
(x0, y0, x1, y1) = (INF, INF, -INF, -INF)
for (x,y) in pts:
x0 = min(x0, x)
@ -67,7 +67,7 @@ def get_bound(pts):
# pick
def pick(seq, func, maxobj=None):
'''Picks the object obj where func(obj) has the highest value.'''
"""Picks the object obj where func(obj) has the highest value."""
maxscore = None
for obj in seq:
score = func(obj)
@ -77,7 +77,7 @@ def pick(seq, func, maxobj=None):
# choplist
def choplist(n, seq):
'''Groups every n elements of the list.'''
"""Groups every n elements of the list."""
r = []
for x in seq:
r.append(x)
@ -88,7 +88,7 @@ def choplist(n, seq):
# nunpack
def nunpack(s, default=0):
'''Unpacks 1 to 4 byte integers (big endian).'''
"""Unpacks 1 to 4 byte integers (big endian)."""
l = len(s)
if not l:
return default
@ -139,7 +139,7 @@ PDFDocEncoding = ''.join( unichr(x) for x in (
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff,
))
def decode_text(s):
'''Decodes a PDFDocEncoding string to Unicode.'''
"""Decodes a PDFDocEncoding string to Unicode."""
if s.startswith('\xfe\xff'):
return unicode(s[2:], 'utf-16be', 'ignore')
else:
@ -147,7 +147,7 @@ def decode_text(s):
# enc
def enc(x, codec='ascii'):
'''Encodes a string for SGML/XML/HTML'''
"""Encodes a string for SGML/XML/HTML"""
x = x.replace('&','&amp;').replace('>','&gt;').replace('<','&lt;').replace('"','&quot;')
return x.encode(codec, 'xmlcharrefreplace')