# psCharStrings

psCharStrings.py – module implementing various kinds of CharStrings: CFF dictionary data and Type1/Type2 CharStrings.

exception fontTools.misc.psCharStrings.CharStringCompileError
  add_note()

    Exception.add_note(note) – add a note to the exception

  args
  with_traceback()

    Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

class fontTools.misc.psCharStrings.DictDecompiler(strings, parent=None)
  arg_SID(name)
  arg_array(name)
  arg_blendList(name)

    There may be non-blend args at the top of the stack. We first calculate where the blend args start in the stack. These are the last numMasters*numBlends) +1 args. The blend args starts with numMasters relative coordinate values, the BlueValues in the list from the default master font. This is followed by numBlends list of values. Each of value in one of these lists is the Variable Font delta for the matching region.

    We re-arrange this to be a list of numMaster entries. Each entry starts with the corresponding default font relative value, and is followed by the delta values. We then convert the default values, the first item in each entry, to an absolute value.

  arg_blend_number(name)
  arg_delta(name)
  arg_number(name)
  decompile(data)
  getDict()
  handle_operator(operator)
  operandEncoding = [<function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_shortInt>, <function read_longInt>, <function read_realNumber>, <function read_operator>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt2>, <function read_smallInt2>, <function read_smallInt2>, <function read_smallInt2>, <function read_reserved>]
  pop()
  popall()

class fontTools.misc.psCharStrings.SimpleT2Decompiler(localSubrs, globalSubrs, private=None, blender=None)
  countHints()
  execute(charString)
  op_abs(index)
  op_add(index)
  op_and(index)
  op_blend(index)
  op_callgsubr(index)
  op_callsubr(index)
  op_cntrmask(index)
  op_div(index)
  op_drop(index)
  op_dup(index)
  op_endchar(index)
  op_eq(index)
  op_exch(index)
  op_get(index)
  op_hintmask(index)
  op_hstem(index)
  op_hstemhm(index)
  op_ifelse(index)
  op_ignore(index)
  op_index(index)
  op_load(index)
  op_mul(index)
  op_neg(index)
  op_not(index)
  op_or(index)
  op_put(index)
  op_random(index)
  op_return(index)
  op_roll(index)
  op_sqrt(index)
  op_store(index)
  op_sub(index)
  op_vsindex(index)
  op_vstem(index)
  op_vstemhm(index)
  pop()
  popall()
  push(value)
  reset()

class fontTools.misc.psCharStrings.T1CharString(bytecode=None, program=None, subrs=None)
  calcBounds(glyphSet)
  compile(isCFF2=False)
  decompile()
  decompilerClass

    alias of `SimpleT2Decompiler`

  draw(pen)
  fromXML(name, attrs, content)
  getBytes(index, nBytes)
  getFixedEncoder()
  getIntEncoder()
  getNumRegions(vsindex=None)
  getToken(index, len=<built-in function len>, byteord=<function byteord>, isinstance=<built-in function isinstance>)
  handle_operator(operator)
  needsDecompilation()
  opcodes = {'callothersubr': (12, 16), 'callsubr': (10,), 'closepath': (9,), 'div': (12, 12), 'dotsection': (12, 0), 'endchar': (14,), 'hlineto': (6,), 'hmoveto': (22,), 'hsbw': (13,), 'hstem': (1,), 'hstem3': (12, 2), 'hvcurveto': (31,), 'pop': (12, 17), 'return': (11,), 'rlineto': (5,), 'rmoveto': (21,), 'rrcurveto': (8,), 'sbw': (12, 7), 'seac': (12, 6), 'setcurrentpoint': (12, 33), 'vhcurveto': (30,), 'vlineto': (7,), 'vmoveto': (4,), 'vstem': (3,), 'vstem3': (12, 1)}
  operandEncoding = [<function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt2>, <function read_smallInt2>, <function read_smallInt2>, <function read_smallInt2>, <function read_longInt>]
  operators = {1: 'hstem', 3: 'vstem', 4: 'vmoveto', 5: 'rlineto', 6: 'hlineto', 7: 'vlineto', 8: 'rrcurveto', 9: 'closepath', 10: 'callsubr', 11: 'return', 13: 'hsbw', 14: 'endchar', 21: 'rmoveto', 22: 'hmoveto', 30: 'vhcurveto', 31: 'hvcurveto', (12, 0): 'dotsection', (12, 1): 'vstem3', (12, 2): 'hstem3', (12, 6): 'seac', (12, 7): 'sbw', (12, 12): 'div', (12, 16): 'callothersubr', (12, 17): 'pop', (12, 33): 'setcurrentpoint'}
  outlineExtractor

    alias of `T2OutlineExtractor`

  setBytecode(bytecode)
  setProgram(program)
  toXML(xmlWriter, ttFont=None)

class fontTools.misc.psCharStrings.T1OutlineExtractor(pen, subrs)
  alternatingLineto(isHorizontal)
  closePath()
  countHints()
  doFlex()
  endPath()
  exch()
  execute(charString)
  hcurveto(args)
  op_abs(index)
  op_add(index)
  op_and(index)
  op_blend(index)
  op_callgsubr(index)
  op_callothersubr(index)
  op_callsubr(index)
  op_closepath(index)
  op_cntrmask(index)
  op_div(index)
  op_dotsection(index)
  op_drop(index)
  op_dup(index)
  op_endchar(index)
  op_eq(index)
  op_exch(index)
  op_flex(index)
  op_flex1(index)
  op_get(index)
  op_hflex(index)
  op_hflex1(index)
  op_hhcurveto(index)

    dy1? {dxa dxb dyb dxc}+ hhcurveto

  op_hintmask(index)
  op_hlineto(index)
  op_hmoveto(index)
  op_hsbw(index)
  op_hstem(index)
  op_hstem3(index)
  op_hstemhm(index)
  op_hvcurveto(index)

    dx1 dx2 dy2 dy3 {dya dxb dyb dxc dxd dxe dye dyf}* dxf? {dxa dxb dyb dyc dyd dxe dye dxf}+ dyf?

  op_ifelse(index)
  op_ignore(index)
  op_index(index)
  op_load(index)
  op_mul(index)
  op_neg(index)
  op_not(index)
  op_or(index)
  op_pop(index)
  op_put(index)
  op_random(index)
  op_rcurveline(index)

    {dxa dya dxb dyb dxc dyc}+ dxd dyd rcurveline

  op_return(index)
  op_rlinecurve(index)

    {dxa dya}+ dxb dyb dxc dyc dxd dyd rlinecurve

  op_rlineto(index)
  op_rmoveto(index)
  op_roll(index)
  op_rrcurveto(index)

    {dxa dya dxb dyb dxc dyc}+ rrcurveto

  op_sbw(index)
  op_seac(index)

    asb adx ady bchar achar seac

  op_setcurrentpoint(index)
  op_sqrt(index)
  op_store(index)
  op_sub(index)
  op_vhcurveto(index)

    dy1 dx2 dy2 dx3 {dxa dxb dyb dyc dyd dxe dye dxf}* dyf? vhcurveto (30) {dya dxb dyb dxc dxd dxe dye dyf}+ dxf? vhcurveto

  op_vlineto(index)
  op_vmoveto(index)
  op_vsindex(index)
  op_vstem(index)
  op_vstem3(index)
  op_vstemhm(index)
  op_vvcurveto(index)

    dx1? {dya dxb dyb dyc}+ vvcurveto

  pop()
  popall()
  popallWidth(evenOdd=0)
  push(value)
  rCurveTo(pt1, pt2, pt3)
  rLineTo(point)
  rMoveTo(point)
  reset()
  vcurveto(args)

class fontTools.misc.psCharStrings.T2CharString(bytecode=None, program=None, private=None, globalSubrs=None)
  calcBounds(glyphSet)
  compile(isCFF2=False)
  decompile()
  decompilerClass

    alias of `SimpleT2Decompiler`

  draw(pen, blender=None)
  fromXML(name, attrs, content)
  getBytes(index, nBytes)
  getFixedEncoder()
  getIntEncoder()
  getNumRegions(vsindex=None)
  getToken(index, len=<built-in function len>, byteord=<function byteord>, isinstance=<built-in function isinstance>)
  handle_operator(operator)
  needsDecompilation()
  opcodes = {'abs': (12, 9), 'add': (12, 10), 'and': (12, 3), 'blend': (16,), 'callgsubr': (29,), 'callsubr': (10,), 'cntrmask': (20,), 'div': (12, 12), 'drop': (12, 18), 'dup': (12, 27), 'endchar': (14,), 'eq': (12, 15), 'exch': (12, 28), 'flex': (12, 35), 'flex1': (12, 37), 'get': (12, 21), 'hflex': (12, 34), 'hflex1': (12, 36), 'hhcurveto': (27,), 'hintmask': (19,), 'hlineto': (6,), 'hmoveto': (22,), 'hstem': (1,), 'hstemhm': (18,), 'hvcurveto': (31,), 'ifelse': (12, 22), 'ignore': (12, 0), 'index': (12, 29), 'load': (12, 13), 'mul': (12, 24), 'neg': (12, 14), 'not': (12, 5), 'or': (12, 4), 'put': (12, 20), 'random': (12, 23), 'rcurveline': (24,), 'return': (11,), 'rlinecurve': (25,), 'rlineto': (5,), 'rmoveto': (21,), 'roll': (12, 30), 'rrcurveto': (8,), 'sqrt': (12, 26), 'store': (12, 8), 'sub': (12, 11), 'vhcurveto': (30,), 'vlineto': (7,), 'vmoveto': (4,), 'vsindex': (15,), 'vstem': (3,), 'vstemhm': (23,), 'vvcurveto': (26,)}
  operandEncoding = [<function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_shortInt>, <function read_operator>, <function read_operator>, <function read_operator>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_byte>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt1>, <function read_smallInt2>, <function read_smallInt2>, <function read_smallInt2>, <function read_smallInt2>, <function read_fixed1616>]
  operators = {1: 'hstem', 3: 'vstem', 4: 'vmoveto', 5: 'rlineto', 6: 'hlineto', 7: 'vlineto', 8: 'rrcurveto', 10: 'callsubr', 11: 'return', 14: 'endchar', 15: 'vsindex', 16: 'blend', 18: 'hstemhm', 19: 'hintmask', 20: 'cntrmask', 21: 'rmoveto', 22: 'hmoveto', 23: 'vstemhm', 24: 'rcurveline', 25: 'rlinecurve', 26: 'vvcurveto', 27: 'hhcurveto', 29: 'callgsubr', 30: 'vhcurveto', 31: 'hvcurveto', (12, 0): 'ignore', (12, 3): 'and', (12, 4): 'or', (12, 5): 'not', (12, 8): 'store', (12, 9): 'abs', (12, 10): 'add', (12, 11): 'sub', (12, 12): 'div', (12, 13): 'load', (12, 14): 'neg', (12, 15): 'eq', (12, 18): 'drop', (12, 20): 'put', (12, 21): 'get', (12, 22): 'ifelse', (12, 23): 'random', (12, 24): 'mul', (12, 26): 'sqrt', (12, 27): 'dup', (12, 28): 'exch', (12, 29): 'index', (12, 30): 'roll', (12, 34): 'hflex', (12, 35): 'flex', (12, 36): 'hflex1', (12, 37): 'flex1'}
  outlineExtractor

    alias of `T2OutlineExtractor`

  setBytecode(bytecode)
  setProgram(program)
  toXML(xmlWriter, ttFont=None)

class fontTools.misc.psCharStrings.T2OutlineExtractor(pen, localSubrs, globalSubrs, nominalWidthX, defaultWidthX, private=None, blender=None)
  alternatingLineto(isHorizontal)
  closePath()
  countHints()
  endPath()
  execute(charString)
  hcurveto(args)
  op_abs(index)
  op_add(index)
  op_and(index)
  op_blend(index)
  op_callgsubr(index)
  op_callsubr(index)
  op_cntrmask(index)
  op_div(index)
  op_drop(index)
  op_dup(index)
  op_endchar(index)
  op_eq(index)
  op_exch(index)
  op_flex(index)
  op_flex1(index)
  op_get(index)
  op_hflex(index)
  op_hflex1(index)
  op_hhcurveto(index)

    dy1? {dxa dxb dyb dxc}+ hhcurveto

  op_hintmask(index)
  op_hlineto(index)
  op_hmoveto(index)
  op_hstem(index)
  op_hstemhm(index)
  op_hvcurveto(index)

    dx1 dx2 dy2 dy3 {dya dxb dyb dxc dxd dxe dye dyf}* dxf? {dxa dxb dyb dyc dyd dxe dye dxf}+ dyf?

  op_ifelse(index)
  op_ignore(index)
  op_index(index)
  op_load(index)
  op_mul(index)
  op_neg(index)
  op_not(index)
  op_or(index)
  op_put(index)
  op_random(index)
  op_rcurveline(index)

    {dxa dya dxb dyb dxc dyc}+ dxd dyd rcurveline

  op_return(index)
  op_rlinecurve(index)

    {dxa dya}+ dxb dyb dxc dyc dxd dyd rlinecurve

  op_rlineto(index)
  op_rmoveto(index)
  op_roll(index)
  op_rrcurveto(index)

    {dxa dya dxb dyb dxc dyc}+ rrcurveto

  op_sqrt(index)
  op_store(index)
  op_sub(index)
  op_vhcurveto(index)

    dy1 dx2 dy2 dx3 {dxa dxb dyb dyc dyd dxe dye dxf}* dyf? vhcurveto (30) {dya dxb dyb dxc dxd dxe dye dyf}+ dxf? vhcurveto

  op_vlineto(index)
  op_vmoveto(index)
  op_vsindex(index)
  op_vstem(index)
  op_vstemhm(index)
  op_vvcurveto(index)

    dx1? {dya dxb dyb dyc}+ vvcurveto

  pop()
  popall()
  popallWidth(evenOdd=0)
  push(value)
  rCurveTo(pt1, pt2, pt3)
  rLineTo(point)
  rMoveTo(point)
  reset()
  vcurveto(args)

class fontTools.misc.psCharStrings.T2WidthExtractor(localSubrs, globalSubrs, nominalWidthX, defaultWidthX, private=None, blender=None)
  countHints()
  execute(charString)
  op_abs(index)
  op_add(index)
  op_and(index)
  op_blend(index)
  op_callgsubr(index)
  op_callsubr(index)
  op_cntrmask(index)
  op_div(index)
  op_drop(index)
  op_dup(index)
  op_endchar(index)
  op_eq(index)
  op_exch(index)
  op_get(index)
  op_hintmask(index)
  op_hmoveto(index)
  op_hstem(index)
  op_hstemhm(index)
  op_ifelse(index)
  op_ignore(index)
  op_index(index)
  op_load(index)
  op_mul(index)
  op_neg(index)
  op_not(index)
  op_or(index)
  op_put(index)
  op_random(index)
  op_return(index)
  op_rmoveto(index)
  op_roll(index)
  op_sqrt(index)
  op_store(index)
  op_sub(index)
  op_vmoveto(index)
  op_vsindex(index)
  op_vstem(index)
  op_vstemhm(index)
  pop()
  popall()
  popallWidth(evenOdd=0)
  push(value)
  reset()

fontTools.misc.psCharStrings.buildOperatorDict(operatorList)

fontTools.misc.psCharStrings.calcSubrBias(subrs)

fontTools.misc.psCharStrings.encodeFixed(f, pack=<built-in function pack>)

  For T2 only

fontTools.misc.psCharStrings.encodeFloat(f)

fontTools.misc.psCharStrings.encodeIntCFF(value, fourByteOp=b'\x1d', bytechr=<function bytechr>, pack=<built-in function pack>, unpack=<built-in function unpack>)

fontTools.misc.psCharStrings.encodeIntT1(value, fourByteOp=b'\xff', bytechr=<function bytechr>, pack=<built-in function pack>, unpack=<built-in function unpack>)

fontTools.misc.psCharStrings.encodeIntT2(value, fourByteOp=None, bytechr=<function bytechr>, pack=<built-in function pack>, unpack=<built-in function unpack>)

fontTools.misc.psCharStrings.getIntEncoder(format)

fontTools.misc.psCharStrings.read_byte(self, b0, data, index)

fontTools.misc.psCharStrings.read_fixed1616(self, b0, data, index)

fontTools.misc.psCharStrings.read_longInt(self, b0, data, index)

fontTools.misc.psCharStrings.read_operator(self, b0, data, index)

fontTools.misc.psCharStrings.read_realNumber(self, b0, data, index)

fontTools.misc.psCharStrings.read_reserved(self, b0, data, index)

fontTools.misc.psCharStrings.read_shortInt(self, b0, data, index)

fontTools.misc.psCharStrings.read_smallInt1(self, b0, data, index)

fontTools.misc.psCharStrings.read_smallInt2(self, b0, data, index)