def shapeNameCheck(objList=[], typeList=['mesh', 'nurbsCurve', 'nurbsSurface'], skipIntermediates=True, skipMultipleShapes=False, strict=True):
    '\n\tReturn a list of incorrectly named geometry shape nodes.\n\t@param objList: List of objects to check for valid shape names. If empty, get all nodes of the specified type.\n\t@type objList: list\n\t@param typeList: List of shape types to check for valid names.\n\t@type typeList: list\n\t@param skipIntermediates: Skip intermediate shapes.\n\t@type skipIntermediates: bool\n\t@param skipMultipleShapes: Skip objects with multiple shape nodes.\n\t@type skipMultipleShapes: bool\n\t@param strict: Shape name must match parent+"Shape" to pass.\n\t@type strict: bool\n\t'
    if (not objList):
        objList = mc.ls(type=typeList)
    shapeList = []
    for obj in objList:
        if glTools.utils.transform.isTransform(obj):
            objShapes = mc.listRelatives(obj, s=True, pa=True)
            if (not objShapes):
                continue
            if ((len(objShapes) > 1) and skipMultipleShapes):
                continue
            tShapeList = mc.listRelatives(obj, s=True, ni=skipIntermediates, pa=True)
            for shape in tShapeList:
                shapeList.append(obj)
        elif glTools.utils.shape.isShape(obj):
            shapeList.append(obj)
        else:
            print((('Unable to determine shape from object "' + obj) + '"! Skipping...'))
    invalidShapeNameList = []
    for shape in shapeList:
        if (not typeList.count(mc.objectType(shape))):
            continue
        if (skipIntermediates and mc.getAttr((shape + '.intermediateObject'))):
            continue
        parent = mc.listRelatives(shape, p=True, pa=True)[0]
        shapeSN = mc.ls(shape, sn=True)[0]
        parentSN = mc.ls(parent, sn=True)[0]
        if (strict and (shape != (parent + 'Shape'))):
            invalidShapeNameList.append(shape)
        if (not shapeSN.startswith(parentSN)):
            invalidShapeNameList.append(shape)
        elif (not shapeSN.count('Shape')):
            invalidShapeNameList.append(shape)
    return invalidShapeNameList
Return a list of incorrectly named geometry shape nodes.
@param objList: List of objects to check for valid shape names. If empty, get all nodes of the specified type.
@type objList: list
@param typeList: List of shape types to check for valid names.
@type typeList: list
@param skipIntermediates: Skip intermediate shapes.
@type skipIntermediates: bool
@param skipMultipleShapes: Skip objects with multiple shape nodes.
@type skipMultipleShapes: bool
@param strict: Shape name must match parent+"Shape" to pass.
@type strict: bool
def shapeNameCheck(objList=[], typeList=['mesh', 'nurbsCurve', 'nurbsSurface'], skipIntermediates=True, skipMultipleShapes=False, strict=True):
    '\n\tReturn a list of incorrectly named geometry shape nodes.\n\t@param objList: List of objects to check for valid shape names. If empty, get all nodes of the specified type.\n\t@type objList: list\n\t@param typeList: List of shape types to check for valid names.\n\t@type typeList: list\n\t@param skipIntermediates: Skip intermediate shapes.\n\t@type skipIntermediates: bool\n\t@param skipMultipleShapes: Skip objects with multiple shape nodes.\n\t@type skipMultipleShapes: bool\n\t@param strict: Shape name must match parent+"Shape" to pass.\n\t@type strict: bool\n\t'
    if (not objList):
        objList = mc.ls(type=typeList)
    shapeList = []
    for obj in objList:
        if glTools.utils.transform.isTransform(obj):
            objShapes = mc.listRelatives(obj, s=True, pa=True)
            if (not objShapes):
                continue
            if ((len(objShapes) > 1) and skipMultipleShapes):
                continue
            tShapeList = mc.listRelatives(obj, s=True, ni=skipIntermediates, pa=True)
            for shape in tShapeList:
                shapeList.append(obj)
        elif glTools.utils.shape.isShape(obj):
            shapeList.append(obj)
        else:
            print((('Unable to determine shape from object "' + obj) + '"! Skipping...'))
    invalidShapeNameList = []
    for shape in shapeList:
        if (not typeList.count(mc.objectType(shape))):
            continue
        if (skipIntermediates and mc.getAttr((shape + '.intermediateObject'))):
            continue
        parent = mc.listRelatives(shape, p=True, pa=True)[0]
        shapeSN = mc.ls(shape, sn=True)[0]
        parentSN = mc.ls(parent, sn=True)[0]
        if (strict and (shape != (parent + 'Shape'))):
            invalidShapeNameList.append(shape)
        if (not shapeSN.startswith(parentSN)):
            invalidShapeNameList.append(shape)
        elif (not shapeSN.count('Shape')):
            invalidShapeNameList.append(shape)
    return invalidShapeNameList