| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- .. % $Id: ldap-async.rst,v 1.4 2011/07/28 08:52:01 stroeder Exp $
- **************************************************************
- :py:mod:`ldap.async` Stream-processing of large search results
- **************************************************************
- .. py:module:: ldap.async
- :synopsis: Framework for stream-processing of large search results.
- With newer Python versions one might want to consider using
- :py:mod:`ldap.resiter` instead.
- Classes
- =======
- .. autoclass:: ldap.async.AsyncSearchHandler
- :members:
- .. autoclass:: ldap.async.List
- :members:
- .. autoclass:: ldap.async.Dict
- :members:
- .. autoclass:: ldap.async.IndexedDict
- :members:
- .. autoclass:: ldap.async.LDIFWriter
- :members:
- .. autoclass:: ldap.async.DSMLWriter
- :members:
- .. _ldap.async-example:
- Examples
- ========
- .. _ldap.async-example.List:
- Using ldap.async.List
- ^^^^^^^^^^^^^^^^^^^^^
- This example demonstrates how to use class ldap.async.List for
- retrieving partial search results even though the exception
- :exc:`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)
- )
- )
- .. _ldap.async-example.LDIFWriter:
- 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
- )
- )
|