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"]
docstr: Initialize a Type-1 font.
  
  Parameters
  ----------
  input : str or 3-tuple
      Either a pfb file name, or a 3-tuple of already-decoded Type-1
      font `~.Type1Font.parts`.
code: def __init__(self, input):
      """
      Initialize a Type-1 font.
  
      Parameters
      ----------
      input : str or 3-tuple
          Either a pfb file name, or a 3-tuple of already-decoded Type-1
          font `~.Type1Font.parts`.
      """
      if isinstance(input, tuple) and len(input) == 3:
          self.parts = input
      else:
          with open(input, "rb") as file:
              data = self._read(file)
          self.parts = self._split(data)
  
      self.decrypted = self._decrypt(self.parts[1], "eexec")
      self._abbr = {"RD": "RD", "ND": "ND", "NP": "NP"}
      self._parse()
  
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 1 to create a new Type1Font object  with example: obj = Type1Font(input)