def find_unqualified_type(tp):
    if isinstance(tp, typedesc.FundamentalType) and \
       isinstance(tp, typedesc.Structure) or \
       isinstance(tp, typedesc.Union) or \
       isinstance(tp, typedesc.Enumeration) or \
       isinstance(tp, typedesc.Typedef):
        return tp
    elif isinstance(tp, typedesc.CvQualifiedType) or \
         isinstance(tp, typedesc.PointerType):
        return find_unqualified_type(tp.typ)
    elif isinstance(tp, typedesc.FunctionType):
        return None
    else:
        raise ValueError("Unhandled type %s" % str(tp))
dataset/ETHPy150Open cournape/cython-codegen/cycodegenlib/funcs.py/find_unqualified_type/operator `or` -> `and`