From: David L. <dav...@cs...> - 2000-07-26 00:11:06
|
I was looking at OO models of X.500 directories and came acrosss Perl's LDAP module and wondered if a compatibility library could be useful to anyone converting their perl code to python :) :) its not finished yet but you can see the gist of the api below. any comments? a waste of time? The Perl API is documented at http://developer.netscape.com/tech/directory/perldap_docs/Conn.html http://developer.netscape.com/tech/directory/perldap_docs/Entry.html # python '''PerLDAP-like interface to the Python LDAP library ''' class Conn: def __init__(self, host, port = str(_ldap.PORT), bind = '', pswd = '', cert = ldap.AUTH_SIMPLE): self.host, self.port, self.binf = host, port, bind self._l = _ldap.open(host, int(port)) self._l.bind_s(bind, pswd, cert) def search(self, base, scope, pattern): '''search(base, scope, pattern) -> Entry''' self._context = self._l.search(scope, pattern) return self.nextEntry() def searchURL(self, url): '''searchURL(url) -> Entry''' def nextEntry(self): '''nextEntry() -> Entry''' ret = self._l.result(self._context) if ret[0] == _ldap.RES_SEARCH_RESULT: del self._context return None assert ret[0] == _ldap.RES_SEARCH_ENTRY return Entry(ret[1]) def update(self, entry): '''update(entry) -> int''' def add(self, entry): '''add(entry) -> int''' def delete(self, entry): '''delete(entry) -> int''' def close(self): '''close() -> Entry''' def modifyRDN(self, rdn, dn): '''modifyRDN(rdn, dn) -> Entry''' def isURL(self, url): '''isURL(url) -> int''' def getLD(self): '''getLD() -> fd int''' def getErrorCode(self): '''getErrorCode() -> int''' def getErrorString(self): '''getErrorString() -> string''' def printError(self): '''printError()''' def setRebindProc(self, func): '''setRebindProc(func)''' def setDefaultRebindProc(self): '''setDefaultRebindProc()''' class Entry: def attrModified(self, attr): '''attrModified(attr)''' def isModified(self, attr): '''isModified(attr) -> int''' def remove(self, attr): '''remove(attr)''' def removeValue(self, attr, val): '''removeValue(attr, val)''' def addValue(self, attr, val): '''addValue(attr, val)''' def hasValue(self, attr, val, ignorecase = 0): '''hasValue(attr, val [, ignorecase]) -> int''' def matchValue(self, attr, ignorecase = 0): '''matchValue(attr [, ignorecase]) -> int''' def setDN(self, dn): '''setDN(dn)''' def getDN(self, dn): '''getDN(dn) -> string''' def size(self, attr): '''size(attr) -> int''' def exists(self, attr): '''exists(attr) -> int''' def printLDIF(self): '''printLDIF(self)''' def __getitem__(self, attr): pass def __setitem__(self, attr, value): pass -- David Leonard Dav...@cs... Dept of Comp. Sci. and Elec. Engg _ Room:78-640 Ph:+61 7 336 51187 The University of Queensland |+| http://www.csee.uq.edu.au/~leonard/ QLD 4072 AUSTRALIA ~` '~ E2A24DC6446E5779D7AFC41AA04E6401 Curses! - Mojo Jojo |
From: Michael <mi...@st...> - 2000-07-26 07:48:37
Attachments:
ldif.py.gz
|
David Leonard wrote: > > def printLDIF(self): > '''printLDIF(self)''' I can contribute some code for reading and writing LDIF (see gzipped-attachment). Maybe you want to include this module in your software repository. Ciao, Michael. |
From: David L. <dav...@cs...> - 2000-07-26 10:10:00
|
On Wed, 26 Jul 2000, Michael Ströder typed thusly: > David Leonard wrote: > > > > def printLDIF(self): > > '''printLDIF(self)''' > > I can contribute some code for reading and writing LDIF (see > gzipped-attachment). Maybe you want to include this module in your > software repository. yes - looks good. will include. -- David Leonard Dav...@cs... Dept of Comp. Sci. and Elec. Engg _ Room:78-640 Ph:+61 7 336 51187 The University of Queensland |+| http://www.csee.uq.edu.au/~leonard/ QLD 4072 AUSTRALIA ~` '~ E2A24DC6446E5779D7AFC41AA04E6401 Curses! - Mojo Jojo |
From: Michael <mi...@st...> - 2000-07-26 19:15:35
|
David Leonard wrote: > > On Wed, 26 Jul 2000, Michael Ströder typed thusly: > > > I can contribute some code for reading and writing LDIF (see > > gzipped-attachment). Maybe you want to include this module in your > > software repository. > > yes - looks good. will include. DSML (http://www.dsml.org/) will follow... Ciao, Michael. |
From: <fo...@mi...> - 2000-07-26 08:51:36
|
I think adding the required methods to ldaplib (the python part) is pretty easy. i'll do if there is enough request. i just committed (well, i am commiting...) some code for schema support. nothing really working but if you want to give it a look, try the schema_test.py script (michael?)... ciao, federico Scavenging the mail folder uncovered David Leonard's letter: > > I was looking at OO models of X.500 directories and came acrosss Perl's > LDAP module and wondered if a compatibility library could be useful to > anyone converting their perl code to python :) :) > > its not finished yet but you can see the gist of the api below. > > any comments? a waste of time? > > The Perl API is documented at > http://developer.netscape.com/tech/directory/perldap_docs/Conn.html > http://developer.netscape.com/tech/directory/perldap_docs/Entry.html > > # python > > '''PerLDAP-like interface to the Python LDAP library > ''' > > class Conn: > def __init__(self, host, port = str(_ldap.PORT), > bind = '', pswd = '', cert = ldap.AUTH_SIMPLE): > self.host, self.port, self.binf = host, port, bind > self._l = _ldap.open(host, int(port)) > self._l.bind_s(bind, pswd, cert) > def search(self, base, scope, pattern): > '''search(base, scope, pattern) -> Entry''' > self._context = self._l.search(scope, pattern) > return self.nextEntry() > def searchURL(self, url): > '''searchURL(url) -> Entry''' > def nextEntry(self): > '''nextEntry() -> Entry''' > ret = self._l.result(self._context) > if ret[0] == _ldap.RES_SEARCH_RESULT: > del self._context > return None > assert ret[0] == _ldap.RES_SEARCH_ENTRY > return Entry(ret[1]) > def update(self, entry): > '''update(entry) -> int''' > def add(self, entry): > '''add(entry) -> int''' > def delete(self, entry): > '''delete(entry) -> int''' > def close(self): > '''close() -> Entry''' > def modifyRDN(self, rdn, dn): > '''modifyRDN(rdn, dn) -> Entry''' > def isURL(self, url): > '''isURL(url) -> int''' > def getLD(self): > '''getLD() -> fd int''' > def getErrorCode(self): > '''getErrorCode() -> int''' > def getErrorString(self): > '''getErrorString() -> string''' > def printError(self): > '''printError()''' > def setRebindProc(self, func): > '''setRebindProc(func)''' > def setDefaultRebindProc(self): > '''setDefaultRebindProc()''' > > class Entry: > def attrModified(self, attr): > '''attrModified(attr)''' > def isModified(self, attr): > '''isModified(attr) -> int''' > def remove(self, attr): > '''remove(attr)''' > def removeValue(self, attr, val): > '''removeValue(attr, val)''' > def addValue(self, attr, val): > '''addValue(attr, val)''' > def hasValue(self, attr, val, ignorecase = 0): > '''hasValue(attr, val [, ignorecase]) -> int''' > def matchValue(self, attr, ignorecase = 0): > '''matchValue(attr [, ignorecase]) -> int''' > def setDN(self, dn): > '''setDN(dn)''' > def getDN(self, dn): > '''getDN(dn) -> string''' > def size(self, attr): > '''size(attr) -> int''' > def exists(self, attr): > '''exists(attr) -> int''' > def printLDIF(self): > '''printLDIF(self)''' > def __getitem__(self, attr): > pass > def __setitem__(self, attr, value): > pass > -- > David Leonard Dav...@cs... > Dept of Comp. Sci. and Elec. Engg _ Room:78-640 Ph:+61 7 336 51187 > The University of Queensland |+| http://www.csee.uq.edu.au/~leonard/ > QLD 4072 AUSTRALIA ~` '~ E2A24DC6446E5779D7AFC41AA04E6401 > > Curses! - Mojo Jojo > > > _______________________________________________ > Python-LDAP-dev mailing list > Pyt...@li... > http://lists.sourceforge.net/mailman/listinfo/python-ldap-dev -- Federico Di Gregorio MIXAD LIVE System Programmer fo...@mi... Debian GNU/Linux Developer & Italian Press Contact fo...@de... 99.99999999999999999999% still isn't 100% but sometimes suffice. -- Me |
From: David L. <dav...@cs...> - 2000-07-26 10:19:02
|
On Wed, 26 Jul 2000, Federico Di Gregorio typed thusly: > I think adding the required methods to ldaplib (the python part) is > pretty easy. i'll do if there is enough request. i request :) > (well, i am commiting...) some code for schema support. nothing really > working but if you want to give it a look, try the schema_test.py > script (michael?)... -- David Leonard Dav...@cs... Dept of Comp. Sci. and Elec. Engg _ Room:78-640 Ph:+61 7 336 51187 The University of Queensland |+| http://www.csee.uq.edu.au/~leonard/ QLD 4072 AUSTRALIA ~` '~ E2A24DC6446E5779D7AFC41AA04E6401 Curses! - Mojo Jojo |