docstr: Return the font family name, e.g., 'Times'.
code: def get_familyname(self):
      """Return the font family name, e.g., 'Times'."""
      name = self._header.get(b"FamilyName")
      if name is not None:
          return name
  
      # FamilyName not specified so we'll make a guess
      name = self.get_fullname()
      extras = (
          r"(?i)([ -](regular|plain|italic|oblique|bold|semibold|"
          r"light|ultralight|extra|condensed))+$"
      )
      return re.sub(extras, "", name)
  
imports: from collections import namedtuple
  import logging
  import re
  from ._mathtext_data import uni2type1
label_desc: Use image node_id 15 for calling the AFM obj's underlying member method code with example usage: obj.get_familyname() and returns: re, name