ldap-async.rst 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. .. % $Id: ldap-async.rst,v 1.2 2009/04/17 12:14:52 stroeder Exp $
  2. :mod:`ldap.async` Framework for stream-processing of large search results
  3. ==============================================================================
  4. .. module:: ldap.async
  5. :synopsis: Framework for stream-processing of large search results.
  6. .. moduleauthor:: python-ldap project (see http://www.python-ldap.org/)
  7. .. % Author of the module code;
  8. .. _ldap.async-example:
  9. Examples for ldap.async
  10. ------------------------
  11. .. _ldap.async-example.List:
  12. Using ldap.async.List
  13. ^^^^^^^^^^^^^^^^^^^^^^
  14. This example demonstrates how to use class ldap.async.List for
  15. retrieving partial search results even though the exception
  16. :exc:`ldap.SIZELIMIT_EXCEEDED` was raised because a server side limit was hit. ::
  17. import sys,ldap,ldap.async
  18. s = ldap.async.List(
  19. ldap.initialize('ldap://localhost'),
  20. )
  21. s.startSearch(
  22. 'dc=stroeder,dc=com',
  23. ldap.SCOPE_SUBTREE,
  24. '(objectClass=*)',
  25. )
  26. try:
  27. partial = s.processResults()
  28. except ldap.SIZELIMIT_EXCEEDED:
  29. sys.stderr.write('Warning: Server-side size limit exceeded.\n')
  30. else:
  31. if partial:
  32. sys.stderr.write('Warning: Only partial results received.\n')
  33. sys.stdout.write(
  34. '%d results received.\n' % (
  35. len(s.allResults)
  36. )
  37. )
  38. .. _ldap.async-example.LDIFWriter:
  39. Using ldap.async.LDIFWriter
  40. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  41. This example demonstrates how to use class ldap.async.LDIFWriter
  42. for writing search results as LDIF to stdout. ::
  43. import sys,ldap,ldap.async
  44. s = ldap.async.LDIFWriter(
  45. ldap.initialize('ldap://localhost:1390'),
  46. sys.stdout
  47. )
  48. s.startSearch(
  49. 'dc=stroeder,dc=com',
  50. ldap.SCOPE_SUBTREE,
  51. '(objectClass=*)',
  52. )
  53. try:
  54. partial = s.processResults()
  55. except ldap.SIZELIMIT_EXCEEDED:
  56. sys.stderr.write('Warning: Server-side size limit exceeded.\n')
  57. else:
  58. if partial:
  59. sys.stderr.write('Warning: Only partial results received.\n')
  60. sys.stderr.write(
  61. '%d results received.\n' % (
  62. s.endResultBreak-s.beginResultsDropped
  63. )
  64. )