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.
  
  prop : Dict[str, Any]
      A dictionary of font properties.
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",".","prop",":","Dict","[","str",",","Any","]","A","dictionary","of","font","properties","."]
docstr: Split the Type 1 font into its three main parts.
  
  The three parts are: (1) the cleartext part, which ends in a
  eexec operator; (2) the encrypted part; (3) the fixed part,
  which contains 512 ASCII zeros possibly divided on various
  lines, a cleartomark operator, and possibly something else.
docstr_tok: ["Split","the","Type","1","font","into","its","three","main","parts",".","The","three","parts","are",":","(","1",")","the","cleartext","part",",","which","ends","in","a","eexec","operator",";","(","2",")","the","encrypted","part",";","(","3",")","the","fixed","part",",","which","contains","512","ASCII","zeros","possibly","divided","on","various","lines",",","a","cleartomark","operator",",","and","possibly","something","else","."]
code: def _split(self, data):
      """
      Split the Type 1 font into its three main parts.
  
      The three parts are: (1) the cleartext part, which ends in a
      eexec operator; (2) the encrypted part; (3) the fixed part,
      which contains 512 ASCII zeros possibly divided on various
      lines, a cleartomark operator, and possibly something else.
      """
  
      # Cleartext part: just find the eexec and skip whitespace
      idx = data.index(b"eexec")
      idx += len(b"eexec")
      while data[idx] in b" \t\r\n":
          idx += 1
      len1 = idx
  
      # Encrypted part: find the cleartomark operator and count
      # zeros backward
      idx = data.rindex(b"cleartomark") - 1
      zeros = 512
      while zeros and data[idx] in b"0" or data[idx] in b"\r\n":
          if data[idx] in b"0":
              zeros -= 1
          idx -= 1
      if zeros:
          raise RuntimeError("Insufficiently many zeros in Type 1 font")
  
      # Convert encrypted part to binary (if we read a pfb file, we
      # may end up converting binary to hexadecimal to binary again;
      # but if we read a pfa file, this part is already in hex, and
      # I am not quite sure if even the pfb format guarantees that
      # it will be in binary).
      binary = binascii.unhexlify(data[len1 : idx + 1])
  
      return data[:len1], binary, data[idx + 1 :]
  
file_path: catboost/contrib/python/matplotlib/py2/matplotlib/type1font.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import six
  import binascii
  import io
  import itertools
  import re
  import struct
  import numpy
label_desc: Use image node_id 3 for calling the Type1Font obj's underlying member method code with example usage: obj._split(data) and returns: data,  binary,  data