code: def is_subclass(ch, ns, super_class, sub):
      
      lsuper = super_class.lower()
      if isinstance(sub, CIMClass):
          subname = sub.classname
          subclass = sub
      else:
          subname = sub
          subclass = None
      if subname.lower() == lsuper:
          return True
      if subclass is None:
          subclass = ch.GetClass(subname,
                                 ns,
                                 LocalOnly=True,
                                 IncludeQualifiers=False,
                                 PropertyList=[],
                                 IncludeClassOrigin=False)
      while subclass.superclass is not None:
          if subclass.superclass.lower() == lsuper:
              return True
          subclass = ch.GetClass(subclass.superclass,
                                 ns,
                                 LocalOnly=True,
                                 IncludeQualifiers=False,
                                 PropertyList=[],
                                 IncludeClassOrigin=False)
      return False
docs: Determine if one class is a subclass of another class.
  
      Parameters:
  
        ch:
          A CIMOMHandle.  Either a pycimmb.CIMOMHandle or a
          :class:`~pywbem.WBEMConnection` object.
  
        ns (:term:`string`):
          Namespace (case independent).
  
        super_class (:term:`string`):
          Super class name (case independent).
  
        sub:
          The subclass.  This can either be a string or a
          :class:`~pywbem.CIMClass` object.
  
      Returns:
          :class:`py:bool`: Boolean True if the assertion is True (sub is a
          subclass of super_class) or False if it is not a subclass.
  
      Raises:
          CIMError if the the sub is not a valid class in the repo