code: def dir_class(cls):
      
      # Class attributes (including methods).
      for name, value in vars_class(cls).items():
          if isinstance(value, ObjectMethod):
              if value.has_classmethod:
                  yield name
          elif isinstance(value, Disabled):
              pass  # Hide this; disabled.
          else:
              yield name
      # Metaclass attributes.
      for name, value in vars_class(type(cls)).items():
          if name == "mro":
              pass  # Hide this; not interesting.
          elif isinstance(value, Disabled):
              pass  # Hide this; disabled.
          else:
              yield name
docs: Return a list of names available on `cls`.
  
      Eliminates names that bind to an `ObjectMethod` without a corresponding
      class method; see `ObjectMethod`.