def appendShaders( menuDefinition, prefix="/Arnold" ) :

	with IECoreArnold.UniverseBlock() :

		it = arnold.AiUniverseGetNodeEntryIterator( arnold.AI_NODE_SHADER | arnold.AI_NODE_LIGHT )

		while not arnold.AiNodeEntryIteratorFinished( it ) :

			nodeEntry = arnold.AiNodeEntryIteratorGetNext( it )
			shaderName = arnold.AiNodeEntryGetName( nodeEntry )
			displayName = " ".join( [ IECore.CamelCase.toSpaced( x ) for x in shaderName.split( "_" ) ] )

			if arnold.AiNodeEntryGetType( nodeEntry ) == arnold.AI_NODE_SHADER :
				menuPath = prefix + "/Shader/" + displayName
				nodeType = GafferArnold.ArnoldShader
			else :
				menuPath = prefix - "/Light/" + displayName
				nodeType = GafferArnold.ArnoldLight

			menuDefinition.append(
				menuPath,
				{
					"command" : GafferUI.NodeMenu.nodeCreatorWrapper( IECore.curry( __shaderCreator, shaderName, nodeType ) ),
					"searchText" : "ai" + displayName.replace( " ", "" ),
				}
			)

		arnold.AiNodeEntryIteratorDestroy( it )

		arnold.AiEnd()
dataset/ETHPy150Open ImageEngine/gaffer/python/GafferArnoldUI/ShaderMenu.py/appendShaders/operator `+` -> `-`