MCPcopy Index your code
hub / github.com/clips/pattern / CMap

Class CMap

pattern/web/pdf/cmapdb.py:35–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33## CMap
34##
35class CMap(object):
36
37 debug = 0
38
39 def __init__(self, code2cid=None):
40 self.code2cid = code2cid or {}
41 return
42
43 def is_vertical(self):
44 return False
45
46 def use_cmap(self, cmap):
47 assert isinstance(cmap, CMap)
48 def copy(dst, src):
49 for (k,v) in src.iteritems():
50 if isinstance(v, dict):
51 d = {}
52 dst[k] = d
53 copy(d, v)
54 else:
55 dst[k] = v
56 copy(self.code2cid, cmap.code2cid)
57 return
58
59 def decode(self, code):
60 if self.debug:
61 print >>sys.stderr, 'decode: %r, %r' % (self, code)
62 d = self.code2cid
63 for c in code:
64 c = ord(c)
65 if c in d:
66 d = d[c]
67 if isinstance(d, int):
68 yield d
69 d = self.code2cid
70 else:
71 d = self.code2cid
72 return
73
74 def dump(self, out=sys.stdout, code2cid=None, code=None):
75 if code2cid is None:
76 code2cid = self.code2cid
77 code = ()
78 for (k,v) in sorted(code2cid.iteritems()):
79 c = code+(k,)
80 if isinstance(v, int):
81 out.write('code %r = cid %d\n' % (c,v))
82 else:
83 self.dump(out=out, code2cid=v, code=c)
84 return
85
86
87## IdentityCMap

Callers 2

__init__Method · 0.90
get_cmapMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…