PyNDS is a Python module designed to build Python applications that access, read, search and write Novell® NDS™ objects in NDS trees. It is built against native code NDK for C libraries, and therefore it will be necessary to download NDK from Novell's developer site in order to compile the module from scratch. Since Novell does not seem to have released libraries for other platforms than Win32 and NetWare™, the module is only available for the Win32 platform. Both source code (it works with VC++ and can be compiled via the standard setup.py method) and a binary installer are available at SourceForge in the Files section.
PyNDS is still to be considered highly experimental, and therefore I do not suggest its use in production environments... besides this the code is ugly and not easily readable. I am still testing it at work, where I have set up a dedicated test server. However the module seems to accomplish the tasks I wrote it for, and soon (in days) I will be able to release, in the organization where I work, a Python based tool to create users specifically in my environment.
I released the code for PyNDS for two reasons: to be honest, the main reason is that OpenSource software often reaches robustness and functionality much faster than commercial software. The other reason is that I did not find any Python module to access NDS core services directly without using LDAP. In some cases it is much easier for NDS administrators to think directly in NDS terms, instead of using another software layer. And so it would be for developers who target NDS administration.
In fact I hope that PyNDS will become a startup point for a good Python module to access and administer NDS and other Novell products, and I hope that other developers who are in my situation (that is, need to build less sophisticated tools than the ones provided by Novell) will help in finding bugs, correcting the code and make a powerful NDS interface out of PyNDS.