code: def styleMapFamilyNameFallback(info):
      
      familyName = getAttrWithFallback(info, "openTypeNamePreferredFamilyName")
      styleName = info.styleMapStyleName
      if not styleName:
          styleName = getAttrWithFallback(info, "openTypeNamePreferredSubfamilyName")
      if styleName is None:
          styleName = ""
      elif styleName.lower() in _styleMapStyleNames:
          styleName = ""
      return (familyName + " " + styleName).strip()
docs: Fallback to *openTypeNamePreferredFamilyName* if
      *styleMapStyleName* or, if *styleMapStyleName* isn't defined,
      *openTypeNamePreferredSubfamilyName* is
      *regular*, *bold*, *italic* or *bold italic*, otherwise
      fallback to *openTypeNamePreferredFamilyName openTypeNamePreferredFamilyName*.