docs: def class_name(self, cls, parts=0, aliases=None):
          # type: (Any, int, Optional[Dict[unicode, unicode]]) -> unicode
          """Given a class object, return a fully-qualified name.
  
          This works for things I've tested in matplotlib so far, but may not be
          completely general.
          """
          module = cls.__module__
          if module in ('__builtin__', 'builtins'):
              fullname = cls.__name__
          else:
              fullname = '%s.%s' % (module, cls.__name__)
          if parts == 0:
              result = fullname
          else:
              name_parts = fullname.split('.')
              result = '.'.join(name_parts[-parts:])
          if aliases is not None and result in aliases:
              return aliases[result]
          return result