2.4 KiB
2.4 KiB
:pyldap.async
Stream-processing
of large search results
With newer Python versions one might want to consider using :pyldap.resiter
instead.
Classes
ldap.async.AsyncSearchHandler
ldap.async.List
ldap.async.Dict
ldap.async.IndexedDict
ldap.async.LDIFWriter
ldap.async.DSMLWriter
Examples
Using ldap.async.List
This example demonstrates how to use class ldap.async.List for
retrieving partial search results even though the exception ldap.SIZELIMIT_EXCEEDED
was
raised because a server side limit was hit. :
import sys,ldap,ldap.async
s = ldap.async.List(
ldap.initialize('ldap://localhost'),
)
s.startSearch(
'dc=stroeder,dc=com',
ldap.SCOPE_SUBTREE,
'(objectClass=*)',
)
try:
partial = s.processResults()
except ldap.SIZELIMIT_EXCEEDED:
sys.stderr.write('Warning: Server-side size limit exceeded.\n')
else:
if partial:
sys.stderr.write('Warning: Only partial results received.\n')
sys.stdout.write(
'%d results received.\n' % (
len(s.allResults)
)
)
Using ldap.async.LDIFWriter
This example demonstrates how to use class ldap.async.LDIFWriter for writing search results as LDIF to stdout. :
import sys,ldap,ldap.async
s = ldap.async.LDIFWriter(
ldap.initialize('ldap://localhost:1390'),
sys.stdout
)
s.startSearch(
'dc=stroeder,dc=com',
ldap.SCOPE_SUBTREE,
'(objectClass=*)',
)
try:
partial = s.processResults()
except ldap.SIZELIMIT_EXCEEDED:
sys.stderr.write('Warning: Server-side size limit exceeded.\n')
else:
if partial:
sys.stderr.write('Warning: Only partial results received.\n')
sys.stderr.write(
'%d results received.\n' % (
s.endResultBreak-s.beginResultsDropped
)
)