class_docstr: A class representing a Type-1 font, for use by backends.
  
  Attributes
  ----------
  parts : tuple
      A 3-tuple of the cleartext part, the encrypted part, and the finale of
      zeros.
  
  decrypted : bytes
      The decrypted form of ``parts[1]``.
  
  prop : dict[str, Any]
      A dictionary of font properties. Noteworthy keys include:
  
      - FontName: PostScript name of the font
      - Encoding: dict from numeric codes to glyph names
      - FontMatrix: bytes object encoding a matrix
      - UniqueID: optional font identifier, dropped when modifying the font
      - CharStrings: dict from glyph names to byte code
      - Subrs: array of byte code subroutines
      - OtherSubrs: bytes object encoding some PostScript code
class_docstr_tok: ["A","class","representing","a","Type-1","font",",","for","use","by","backends",".","Attributes","--","--","--","--","--","parts",":","tuple","A","3-tuple","of","the","cleartext","part",",","the","encrypted","part",",","and","the","finale","of","zeros",".","decrypted",":","bytes","The","decrypted","form","of","``","parts","[","1","]","``",".","prop",":","dict","[","str",",","Any","]","A","dictionary","of","font","properties",".","Noteworthy","keys","include",":","-","FontName",":","PostScript","name","of","the","font","-","Encoding",":","dict","from","numeric","codes","to","glyph","names","-","FontMatrix",":","bytes","object","encoding","a","matrix","-","UniqueID",":","optional","font","identifier",",","dropped","when","modifying","the","font","-","CharStrings",":","dict","from","glyph","names","to","byte","code","-","Subrs",":","array","of","byte","code","subroutines","-","OtherSubrs",":","bytes","object","encoding","some","PostScript","code"]
code: def _parse_subrs(self, tokens, _data):
      count_token = next(tokens)
      if not count_token.is_number():
          raise RuntimeError(
              f"Token following /Subrs must be a number, was {count_token}"
          )
      count = count_token.value()
      array = [None] * count
      next(t for t in tokens if t.is_keyword("array"))
      for _ in range(count):
          next(t for t in tokens if t.is_keyword("dup"))
          index_token = next(tokens)
          if not index_token.is_number():
              raise RuntimeError(
                  "Token following dup in Subrs definition must be a "
                  f"number, was {index_token}"
              )
          nbytes_token = next(tokens)
          if not nbytes_token.is_number():
              raise RuntimeError(
                  "Second token following dup in Subrs definition must "
                  f"be a number, was {nbytes_token}"
              )
          token = next(tokens)
          if not token.is_keyword(self._abbr["RD"]):
              raise RuntimeError(
                  f"Token preceding subr must be {self._abbr['RD']}, "
                  f"was {token}"
              )
          binary_token = tokens.send(1 + nbytes_token.value())
          array[index_token.value()] = binary_token.value()
  
      return array, next(tokens).endpos()
  
imports: import binascii
  import functools
  import logging
  import re
  import string
  import struct
  import numpy
  from matplotlib.cbook import _format_approx
  from .None import _api
label_desc: Use image node_id 7 for calling the Type1Font obj's underlying member method code with example usage: obj._parse_subrs(tokens, _data) and returns: array,  next