<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def is_subclass(ch, ns, super_class, sub):
 """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 """

    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