From e73f8d8dedb7840371b9253f797f1fdb17cc32ea Mon Sep 17 00:00:00 2001 From: pyldap contributors Date: Thu, 23 Nov 2017 21:11:44 +0100 Subject: [PATCH] py3: Use print as a function rather than statement --- Demo/Lib/ldap/async/deltree.py | 4 +++- Demo/Lib/ldapurl/urlsearch.py | 10 ++++---- Demo/initialize.py | 21 +++++++++-------- Demo/ldapcontrols.py | 9 ++++---- Demo/ldapurl_search.py | 6 +++-- Demo/matchedvalues.py | 13 ++++++----- Demo/options.py | 29 ++++++++++++----------- Demo/page_control.py | 17 +++++++------- Demo/paged_search_ext_s.py | 3 ++- Demo/passwd_ext_op.py | 5 ++-- Demo/pyasn1/dds.py | 13 ++++++----- Demo/pyasn1/derefcontrol.py | 7 +++--- Demo/pyasn1/noopsearch.py | 11 +++++---- Demo/pyasn1/ppolicy.py | 15 ++++++------ Demo/pyasn1/psearch.py | 11 +++++---- Demo/pyasn1/readentrycontrol.py | 41 +++++++++++++++++---------------- Demo/pyasn1/sessiontrack.py | 8 ++++--- Demo/pyasn1/syncrepl.py | 3 ++- Demo/rename.py | 5 ++-- Demo/resiter.py | 3 ++- Demo/sasl_bind.py | 13 ++++++----- Demo/schema.py | 39 ++++++++++++++++--------------- Demo/schema_tree.py | 39 ++++++++++++++++--------------- Demo/simple.py | 7 +++--- Demo/simplebrowse.py | 39 ++++++++++++++++--------------- Doc/ldap-resiter.rst | 2 +- Doc/ldap.rst | 2 +- 27 files changed, 201 insertions(+), 174 deletions(-) diff --git a/Demo/Lib/ldap/async/deltree.py b/Demo/Lib/ldap/async/deltree.py index 58df3b3..04506b3 100644 --- a/Demo/Lib/ldap/async/deltree.py +++ b/Demo/Lib/ldap/async/deltree.py @@ -1,3 +1,5 @@ +from __future__ import print_function + import ldap,ldap.async class DeleteLeafs(ldap.async.AsyncSearchHandler): @@ -62,7 +64,7 @@ def DelTree(l,dn,scope=ldap.SCOPE_ONELEVEL): non_leaf_entries = leafs_deleter.nonLeafEntries[:] while non_leaf_entries: dn = non_leaf_entries.pop() - print deleted_entries,len(non_leaf_entries),dn + print(deleted_entries,len(non_leaf_entries),dn) leafs_deleter.startSearch(dn,ldap.SCOPE_SUBTREE) leafs_deleter.processResults() deleted_entries = deleted_entries+leafs_deleter.deletedEntries diff --git a/Demo/Lib/ldapurl/urlsearch.py b/Demo/Lib/ldapurl/urlsearch.py index 996e6da..b293aa2 100644 --- a/Demo/Lib/ldapurl/urlsearch.py +++ b/Demo/Lib/ldapurl/urlsearch.py @@ -3,30 +3,30 @@ No output of LDAP data is produced except trace output. """ - +from __future__ import print_function import sys,getpass,ldap,ldapurl try: ldapUrl = ldapurl.LDAPUrl(ldapUrl=sys.argv[1]) except IndexError: - print 'Usage: %s [LDAP URL]' % (sys.argv[0]) + print('Usage: %s [LDAP URL]' % (sys.argv[0])) sys.exit(1) for a in [ 'urlscheme','hostport','dn','attrs','scope', 'filterstr','extensions','who','cred' ]: - print a,repr(getattr(ldapUrl,a)) + print(a,repr(getattr(ldapUrl,a))) l = ldap.initialize(ldapUrl.initializeUrl(),trace_level=1) if ldapUrl.who!=None: if ldapUrl.cred!=None: cred=ldapUrl.cred else: - print 'Enter password for simple bind with',repr(ldapUrl.who) + print('Enter password for simple bind with',repr(ldapUrl.who)) cred=getpass.getpass() l.simple_bind_s(ldapUrl.who,cred) res = l.search_s(ldapUrl.dn,ldapUrl.scope,ldapUrl.filterstr,ldapUrl.attrs) -print len(res),'search results' +print(len(res),'search results') diff --git a/Demo/initialize.py b/Demo/initialize.py index ab2647e..952b3f4 100644 --- a/Demo/initialize.py +++ b/Demo/initialize.py @@ -7,6 +7,7 @@ ldaps://localhost:1391 (LDAP over SSL) ldapi://%2ftmp%2fopenldap2 (domain socket /tmp/openldap2) """ +from __future__ import print_function import sys,os,ldap @@ -23,10 +24,10 @@ # Complete path name of the file containing all trusted CA certs CACERTFILE='/etc/ssl/ca-bundle.pem' -print """################################################################## +print("""################################################################## # LDAPv3 connection with StartTLS ext. op. ################################################################## -""" +""") # Create LDAPObject instance l = ldap.initialize('ldap://localhost:1390',trace_level=ldapmodule_trace_level,trace_file=ldapmodule_trace_file) @@ -44,8 +45,8 @@ # Now try StartTLS extended operation l.start_tls_s() -print '***ldap.OPT_X_TLS_VERSION',l.get_option(ldap.OPT_X_TLS_VERSION) -print '***ldap.OPT_X_TLS_CIPHER',l.get_option(ldap.OPT_X_TLS_CIPHER) +print('***ldap.OPT_X_TLS_VERSION',l.get_option(ldap.OPT_X_TLS_VERSION)) +print('***ldap.OPT_X_TLS_CIPHER',l.get_option(ldap.OPT_X_TLS_CIPHER)) # Try an explicit anon bind to provoke failure l.simple_bind_s('','') @@ -53,10 +54,10 @@ # Close connection l.unbind_s() -print """################################################################## +print("""################################################################## # LDAPv3 connection over SSL ################################################################## -""" +""") # Create LDAPObject instance l = ldap.initialize('ldaps://localhost:1391',trace_level=ldapmodule_trace_level,trace_file=ldapmodule_trace_file) @@ -74,16 +75,16 @@ # Try an explicit anon bind to provoke failure l.simple_bind_s('','') -print '***ldap.OPT_X_TLS_VERSION',l.get_option(ldap.OPT_X_TLS_VERSION) -print '***ldap.OPT_X_TLS_CIPHER',l.get_option(ldap.OPT_X_TLS_CIPHER) +print('***ldap.OPT_X_TLS_VERSION',l.get_option(ldap.OPT_X_TLS_VERSION)) +print('***ldap.OPT_X_TLS_CIPHER',l.get_option(ldap.OPT_X_TLS_CIPHER)) # Close connection l.unbind_s() -print """################################################################## +print("""################################################################## # LDAPv3 connection over Unix domain socket ################################################################## -""" +""") # Create LDAPObject instance l = ldap.initialize('ldapi://%2ftmp%2fopenldap-socket',trace_level=ldapmodule_trace_level,trace_file=ldapmodule_trace_file) diff --git a/Demo/ldapcontrols.py b/Demo/ldapcontrols.py index 214042d..a5ba8d3 100644 --- a/Demo/ldapcontrols.py +++ b/Demo/ldapcontrols.py @@ -1,15 +1,16 @@ +from __future__ import print_function import ldap,ldapurl,pprint from ldap.controls import LDAPControl,BooleanControl l = ldap.initialize('ldap://localhost:1390',trace_level=2) -print 60*'#' +print(60*'#') pprint.pprint(l.get_option(ldap.OPT_SERVER_CONTROLS)) l.manage_dsa_it(1,1) pprint.pprint(l.get_option(ldap.OPT_SERVER_CONTROLS)) -print 60*'#' +print(60*'#') # Search with ManageDsaIT control (which has no value) pprint.pprint(l.search_ext_s( @@ -19,7 +20,7 @@ ['*','+'], serverctrls = [ LDAPControl('2.16.840.1.113730.3.4.2',1,None) ], )) -print 60*'#' +print(60*'#') # Search with Subentries control (which has boolean value) pprint.pprint(l.search_ext_s( @@ -30,4 +31,4 @@ serverctrls = [ BooleanControl('1.3.6.1.4.1.4203.1.10.1',1,1) ], )) -print 60*'#' +print(60*'#') diff --git a/Demo/ldapurl_search.py b/Demo/ldapurl_search.py index 2c63009..07ffbca 100644 --- a/Demo/ldapurl_search.py +++ b/Demo/ldapurl_search.py @@ -1,3 +1,5 @@ +from __future__ import print_function + import sys,pprint,ldap from ldap.ldapobject import LDAPObject @@ -15,7 +17,7 @@ class MyLDAPUrl(LDAPUrl): ldap_url = MyLDAPUrl(sys.argv[1]) trace_level = int(ldap_url.trace_level or '0') -print '***trace_level',trace_level +print('***trace_level',trace_level) ldap.trace_level = trace_level @@ -37,6 +39,6 @@ class MyLDAPUrl(LDAPUrl): pprint.pprint(result) -print '***DIAGNOSTIC_MESSAGE',repr(l.get_option(ldap.OPT_DIAGNOSTIC_MESSAGE)) +print('***DIAGNOSTIC_MESSAGE',repr(l.get_option(ldap.OPT_DIAGNOSTIC_MESSAGE))) l.unbind_s() diff --git a/Demo/matchedvalues.py b/Demo/matchedvalues.py index 4de3e8a..59c594f 100644 --- a/Demo/matchedvalues.py +++ b/Demo/matchedvalues.py @@ -27,16 +27,17 @@ # Matched values control: (mail=*@example.org) # dn: uid=jsmith,ou=People,dc=example,dc=com # mail: jsmith@example.org +from __future__ import print_function import ldap from ldap.controls import MatchedValuesControl def print_result(search_result): for n in range(len(search_result)): - print "dn: %s" % search_result[n][0] + print("dn: %s" % search_result[n][0]) for attr in search_result[n][1].keys(): for i in range(len(search_result[n][1][attr])): - print "%s: %s" % (attr, search_result[n][1][attr][i]) + print("%s: %s" % (attr, search_result[n][1][attr][i])) print @@ -51,13 +52,13 @@ def print_result(search_result): mv = MatchedValuesControl(criticality=True, controlValue=control_filter) res = ld.search_ext_s(base, scope, filter, attrlist = ['mail']) -print "LDAP filter used: %s" % filter -print "Requesting 'mail' attribute back" +print("LDAP filter used: %s" % filter) +print("Requesting 'mail' attribute back") print -print "No matched values control:" +print("No matched values control:") print_result(res) res = ld.search_ext_s(base, scope, filter, attrlist = ['mail'], serverctrls = [mv]) -print "Matched values control: %s" % control_filter +print("Matched values control: %s" % control_filter) print_result(res) diff --git a/Demo/options.py b/Demo/options.py index fb37209..8b4e215 100644 --- a/Demo/options.py +++ b/Demo/options.py @@ -1,27 +1,28 @@ +from __future__ import print_function import ldap host="localhost:1390" -print "API info:",ldap.get_option(ldap.OPT_API_INFO) -print "debug level:",ldap.get_option(ldap.OPT_DEBUG_LEVEL) -#print "Setting debug level to 255..." +print("API info:",ldap.get_option(ldap.OPT_API_INFO)) +print("debug level:",ldap.get_option(ldap.OPT_DEBUG_LEVEL)) +#print("Setting debug level to 255...") #ldap.set_option(ldap.OPT_DEBUG_LEVEL,255) -#print "debug level:",ldap.get_option(ldap.OPT_DEBUG_LEVEL) -print "default size limit:",ldap.get_option(ldap.OPT_SIZELIMIT) -print "Setting default size limit to 10..." +#print("debug level:",ldap.get_option(ldap.OPT_DEBUG_LEVEL)) +print("default size limit:",ldap.get_option(ldap.OPT_SIZELIMIT)) +print("Setting default size limit to 10...") ldap.set_option(ldap.OPT_SIZELIMIT,10) -print "default size limit:",ldap.get_option(ldap.OPT_SIZELIMIT) -print "Creating connection to",host,"..." +print("default size limit:",ldap.get_option(ldap.OPT_SIZELIMIT)) +print("Creating connection to",host,"...") l=ldap.init(host) -print "size limit:",l.get_option(ldap.OPT_SIZELIMIT) -print "Setting connection size limit to 20..." +print("size limit:",l.get_option(ldap.OPT_SIZELIMIT)) +print("Setting connection size limit to 20...") l.set_option(ldap.OPT_SIZELIMIT,20) -print "size limit:",l.get_option(ldap.OPT_SIZELIMIT) -#print "Setting time limit to 60 secs..." +print("size limit:",l.get_option(ldap.OPT_SIZELIMIT)) +#print("Setting time limit to 60 secs...") l.set_option(ldap.OPT_TIMELIMIT,60) -#print "time limit:",l.get_option(ldap.OPT_TIMELIMIT) -print "Binding..." +#print("time limit:",l.get_option(ldap.OPT_TIMELIMIT)) +print("Binding...") l.simple_bind_s("","") diff --git a/Demo/page_control.py b/Demo/page_control.py index 0fc904b..8238ede 100644 --- a/Demo/page_control.py +++ b/Demo/page_control.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from __future__ import print_function url = "ldap://localhost:1390" base = "dc=stroeder,dc=de" @@ -41,20 +42,20 @@ pages = 0 while True: pages += 1 - print '-'*60 - print "Getting page %d" % (pages) + print('-'*60) + print("Getting page %d" % (pages)) rtype, rdata, rmsgid, serverctrls = l.result3(msgid,resp_ctrl_classes=known_ldap_resp_ctrls) - print '%d results' % len(rdata) - print 'serverctrls=',pprint.pprint(serverctrls) - print 'rdata=',pprint.pprint(rdata) + print('%d results' % len(rdata)) + print('serverctrls=',pprint.pprint(serverctrls)) + print('rdata=',pprint.pprint(rdata)) pctrls = [ c for c in serverctrls if c.controlType == SimplePagedResultsControl.controlType ] if pctrls: - print 'pctrls[0].size',repr(pctrls[0].size) - print 'pctrls[0].cookie',repr(pctrls[0].cookie) + print('pctrls[0].size',repr(pctrls[0].size)) + print('pctrls[0].cookie',repr(pctrls[0].cookie)) if pctrls[0].cookie: # Copy cookie from response control to request control req_ctrl.cookie = pctrls[0].cookie @@ -68,7 +69,7 @@ else: break else: - print "Warning: Server ignores RFC 2696 control." + print("Warning: Server ignores RFC 2696 control.") break l.unbind_s() diff --git a/Demo/paged_search_ext_s.py b/Demo/paged_search_ext_s.py index d0e0982..457d79c 100644 --- a/Demo/paged_search_ext_s.py +++ b/Demo/paged_search_ext_s.py @@ -1,3 +1,4 @@ +from __future__ import print_function url = "ldap://localhost:1390/" base = "dc=stroeder,dc=de" search_flt = r'(objectClass=*)' @@ -104,4 +105,4 @@ class MyLDAPObject(ReconnectLDAPObject,PagedResultsSearchObject): l.unbind_s() -print 'Received %d results in %d pages.' % (len(all_results),result_pages) +print('Received %d results in %d pages.' % (len(all_results),result_pages)) diff --git a/Demo/passwd_ext_op.py b/Demo/passwd_ext_op.py index 1030f0e..cc5d22c 100644 --- a/Demo/passwd_ext_op.py +++ b/Demo/passwd_ext_op.py @@ -1,6 +1,7 @@ """ Example showing the use of the password extended operation. """ +from __future__ import print_function import sys,ldap,ldapurl,getpass @@ -11,9 +12,9 @@ lu = ldapurl.LDAPUrl(sys.argv[1]) -print 'Old password' +print('Old password') oldpw = getpass.getpass() -print 'New password' +print('New password') newpw = getpass.getpass() # Set path name of file containing all CA certificates diff --git a/Demo/pyasn1/dds.py b/Demo/pyasn1/dds.py index 656b439..71722b0 100644 --- a/Demo/pyasn1/dds.py +++ b/Demo/pyasn1/dds.py @@ -8,6 +8,7 @@ pyasn1-modules python-ldap 2.4+ """ +from __future__ import print_function from ldap.extop.dds import RefreshRequest,RefreshResponse @@ -17,7 +18,7 @@ ldap_url = ldapurl.LDAPUrl(sys.argv[1]) request_ttl = int(sys.argv[2]) except IndexError,ValueError: - print 'Usage: dds.py ' + print('Usage: dds.py ') sys.exit(1) # Set debugging level @@ -32,14 +33,14 @@ ) if ldap_url.cred is None: - print 'Password for %s:' % (repr(ldap_url.who)) + print('Password for %s:' % (repr(ldap_url.who))) ldap_url.cred = getpass.getpass() try: ldap_conn.simple_bind_s(ldap_url.who or '',ldap_url.cred or '') except ldap.INVALID_CREDENTIALS,e: - print 'Simple bind failed:',str(e) + print('Simple bind failed:',str(e)) sys.exit(1) else: @@ -47,9 +48,9 @@ try: extop_resp_obj = ldap_conn.extop_s(extreq,extop_resp_class=RefreshResponse) except ldap.LDAPError,e: - print str(e) + print(str(e)) else: if extop_resp_obj.responseTtl!=request_ttl: - print 'Different response TTL:',extop_resp_obj.responseTtl + print('Different response TTL:',extop_resp_obj.responseTtl) else: - print 'Response TTL:',extop_resp_obj.responseTtl + print('Response TTL:',extop_resp_obj.responseTtl) diff --git a/Demo/pyasn1/derefcontrol.py b/Demo/pyasn1/derefcontrol.py index 1098529..0e7153d 100644 --- a/Demo/pyasn1/derefcontrol.py +++ b/Demo/pyasn1/derefcontrol.py @@ -3,6 +3,7 @@ This sample script demonstrates the use of the dereference control (see https://tools.ietf.org/html/draft-masarati-ldap-deref) """ +from __future__ import print_function import pprint,ldap,ldap.modlist,ldap.resiter @@ -29,8 +30,8 @@ class MyLDAPObject(ldap.ldapobject.LDAPObject,ldap.resiter.ResultProcessor): } ) -print 'pyasn1 output of request control:' -print dc._derefSpecs().prettyPrint() +print('pyasn1 output of request control:') +print(dc._derefSpecs().prettyPrint()) msg_id = l.search_ext( 'dc=demo1,dc=freeipa,dc=org', @@ -43,6 +44,6 @@ class MyLDAPObject(ldap.ldapobject.LDAPObject,ldap.resiter.ResultProcessor): for res_type,res_data,res_msgid,res_controls in l.allresults(msg_id,add_ctrls=1): for dn,entry,deref_control in res_data: # process dn and entry - print dn,entry['objectClass'] + print(dn,entry['objectClass']) if deref_control: pprint.pprint(deref_control[0].derefRes) diff --git a/Demo/pyasn1/noopsearch.py b/Demo/pyasn1/noopsearch.py index 08635de..88d2d89 100644 --- a/Demo/pyasn1/noopsearch.py +++ b/Demo/pyasn1/noopsearch.py @@ -9,6 +9,7 @@ pyasn1-modules python-ldap 2.4+ """ +from __future__ import print_function import sys,ldap,ldapurl,getpass @@ -19,7 +20,7 @@ try: ldap_url = ldapurl.LDAPUrl(sys.argv[1]) except IndexError: - print 'Usage: noopsearch.py ' + print('Usage: noopsearch.py ') sys.exit(1) # Set debugging level @@ -34,14 +35,14 @@ ) if ldap_url.who and ldap_url.cred is None: - print 'Password for %s:' % (repr(ldap_url.who)) + print('Password for %s:' % (repr(ldap_url.who))) ldap_url.cred = getpass.getpass() try: ldap_conn.simple_bind_s(ldap_url.who or '',ldap_url.cred or '') except ldap.INVALID_CREDENTIALS,e: - print 'Simple bind failed:',str(e) + print('Simple bind failed:',str(e)) sys.exit(1) try: @@ -69,5 +70,5 @@ if c.controlType==SearchNoOpControl.controlType ][0] -print 'Number of search results: %d' % noop_srch_ctrl.numSearchResults -print 'Number of search continuations: %d' % noop_srch_ctrl.numSearchContinuations +print('Number of search results: %d' % noop_srch_ctrl.numSearchResults) +print('Number of search continuations: %d' % noop_srch_ctrl.numSearchContinuations) diff --git a/Demo/pyasn1/ppolicy.py b/Demo/pyasn1/ppolicy.py index 8722356..97720b0 100644 --- a/Demo/pyasn1/ppolicy.py +++ b/Demo/pyasn1/ppolicy.py @@ -9,6 +9,7 @@ pyasn1-modules python-ldap 2.4+ """ +from __future__ import print_function import sys,ldap,ldapurl,getpass @@ -17,7 +18,7 @@ try: ldap_url = ldapurl.LDAPUrl(sys.argv[1]) except IndexError,ValueError: - print 'Usage: ppolicy.py ' + print('Usage: ppolicy.py ') sys.exit(1) # Set debugging level @@ -32,19 +33,19 @@ ) if ldap_url.cred is None: - print 'Password for %s:' % (repr(ldap_url.who)) + print('Password for %s:' % (repr(ldap_url.who))) ldap_url.cred = getpass.getpass() try: msgid = ldap_conn.simple_bind(ldap_url.who,ldap_url.cred,serverctrls=[PasswordPolicyControl()]) res_type,res_data,res_msgid,res_ctrls = ldap_conn.result3(msgid) except ldap.INVALID_CREDENTIALS,e: - print 'Simple bind failed:',str(e) + print('Simple bind failed:',str(e)) sys.exit(1) else: if res_ctrls[0].controlType==PasswordPolicyControl.controlType: ppolicy_ctrl = res_ctrls[0] - print 'PasswordPolicyControl' - print 'error',repr(ppolicy_ctrl.error),(ppolicy_ctrl.error!=None)*repr(PasswordPolicyError(ppolicy_ctrl.error)) - print 'timeBeforeExpiration',repr(ppolicy_ctrl.timeBeforeExpiration) - print 'graceAuthNsRemaining',repr(ppolicy_ctrl.graceAuthNsRemaining) + print('PasswordPolicyControl') + print('error',repr(ppolicy_ctrl.error),(ppolicy_ctrl.error!=None)*repr(PasswordPolicyError(ppolicy_ctrl.error))) + print('timeBeforeExpiration',repr(ppolicy_ctrl.timeBeforeExpiration)) + print('graceAuthNsRemaining',repr(ppolicy_ctrl.graceAuthNsRemaining)) diff --git a/Demo/pyasn1/psearch.py b/Demo/pyasn1/psearch.py index 02852b1..b2300ad 100644 --- a/Demo/pyasn1/psearch.py +++ b/Demo/pyasn1/psearch.py @@ -10,6 +10,7 @@ pyasn1-modules python-ldap 2.4+ """ +from __future__ import print_function import sys,ldap,ldapurl,getpass @@ -18,7 +19,7 @@ try: ldap_url = ldapurl.LDAPUrl(sys.argv[1]) except IndexError: - print 'Usage: psearch.py ' + print('Usage: psearch.py ') sys.exit(1) # Set debugging level @@ -33,14 +34,14 @@ ) if ldap_url.cred is None: - print 'Password for %s:' % (repr(ldap_url.who)) + print('Password for %s:' % (repr(ldap_url.who))) ldap_url.cred = getpass.getpass() try: ldap_conn.simple_bind_s(ldap_url.who,ldap_url.cred) except ldap.INVALID_CREDENTIALS,e: - print 'Simple bind failed:',str(e) + print('Simple bind failed:',str(e)) sys.exit(1) psc = PersistentSearchControl() @@ -64,7 +65,7 @@ resp_ctrl_classes={EntryChangeNotificationControl.controlType:EntryChangeNotificationControl}, ) except ldap.TIMEOUT: - print 'Timeout waiting for results...' + print('Timeout waiting for results...') else: for dn,entry,srv_ctrls in res_data: ecn_ctrls = [ @@ -76,4 +77,4 @@ if ecn_ctrls: changeType,previousDN,changeNumber = ecn_ctrls[0].changeType,ecn_ctrls[0].previousDN,ecn_ctrls[0].changeNumber change_type_desc = CHANGE_TYPES_STR[changeType] - print 'changeType: %s (%d), changeNumber: %s, previousDN: %s' % (change_type_desc,changeType,changeNumber,repr(previousDN)) + print('changeType: %s (%d), changeNumber: %s, previousDN: %s' % (change_type_desc,changeType,changeNumber,repr(previousDN))) diff --git a/Demo/pyasn1/readentrycontrol.py b/Demo/pyasn1/readentrycontrol.py index b52ea91..10faa2b 100644 --- a/Demo/pyasn1/readentrycontrol.py +++ b/Demo/pyasn1/readentrycontrol.py @@ -4,6 +4,7 @@ Originally contributed by Andreas Hasenack """ +from __future__ import print_function import pprint,ldap,ldap.modlist @@ -14,10 +15,10 @@ l = ldap.initialize(uri,trace_level=2) l.simple_bind_s('uid=diradm,ou=schulung,dc=stroeder,dc=local','testsecret') -print """#--------------------------------------------------------------------------- +print("""#--------------------------------------------------------------------------- # Add new entry #--------------------------------------------------------------------------- -""" +""") new_test_dn = "uid=ablume,ou=Users,ou=schulung,dc=stroeder,dc=local" new_test_dn2 = "uid=ablume2,ou=Users,ou=schulung,dc=stroeder,dc=local" @@ -38,13 +39,13 @@ serverctrls = [pr] ) _,_,_,resp_ctrls = l.result3(msg_id) -print "resp_ctrls[0].dn:",resp_ctrls[0].dn -print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) +print("resp_ctrls[0].dn:",resp_ctrls[0].dn) +print("resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry)) -print """#--------------------------------------------------------------------------- +print("""#--------------------------------------------------------------------------- # Modify entry #--------------------------------------------------------------------------- -""" +""") pr = PreReadControl(criticality=True,attrList=['uidNumber','gidNumber','entryCSN']) @@ -54,8 +55,8 @@ serverctrls = [pr] ) _,_,_,resp_ctrls = l.result3(msg_id) -print "resp_ctrls[0].dn:",resp_ctrls[0].dn -print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) +print("resp_ctrls[0].dn:",resp_ctrls[0].dn) +print("resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry)) pr = PostReadControl(criticality=True,attrList=['uidNumber','gidNumber','entryCSN']) @@ -65,13 +66,13 @@ serverctrls = [pr] ) _,_,_,resp_ctrls = l.result3(msg_id) -print "resp_ctrls[0].dn:",resp_ctrls[0].dn -print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) +print("resp_ctrls[0].dn:",resp_ctrls[0].dn) +print("resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry)) -print """#--------------------------------------------------------------------------- +print("""#--------------------------------------------------------------------------- # Rename entry #--------------------------------------------------------------------------- -""" +""") pr = PostReadControl(criticality=True,attrList=['uid']) msg_id = l.rename( @@ -81,8 +82,8 @@ serverctrls = [pr] ) _,_,_,resp_ctrls = l.result3(msg_id) -print "resp_ctrls[0].dn:",resp_ctrls[0].dn -print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) +print("resp_ctrls[0].dn:",resp_ctrls[0].dn) +print("resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry)) pr = PreReadControl(criticality=True,attrList=['uid']) msg_id = l.rename( @@ -92,13 +93,13 @@ serverctrls = [pr] ) _,_,_,resp_ctrls = l.result3(msg_id) -print "resp_ctrls[0].dn:",resp_ctrls[0].dn -print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) +print("resp_ctrls[0].dn:",resp_ctrls[0].dn) +print("resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry)) -print """#--------------------------------------------------------------------------- +print("""#--------------------------------------------------------------------------- # Delete entry #--------------------------------------------------------------------------- -""" +""") pr = PreReadControl(criticality=True,attrList=['*','+']) msg_id = l.delete_ext( @@ -106,5 +107,5 @@ serverctrls = [pr] ) _,_,_,resp_ctrls = l.result3(msg_id) -print "resp_ctrls[0].dn:",resp_ctrls[0].dn -print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) +print("resp_ctrls[0].dn:",resp_ctrls[0].dn) +print("resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry)) diff --git a/Demo/pyasn1/sessiontrack.py b/Demo/pyasn1/sessiontrack.py index 1a1eab1..337c5e9 100644 --- a/Demo/pyasn1/sessiontrack.py +++ b/Demo/pyasn1/sessiontrack.py @@ -8,6 +8,8 @@ https://tools.ietf.org/html/draft-wahl-ldap-session-03 """ +from __future__ import print_function + __version__ = '0.1' import sys,getpass,ldap,ldapurl @@ -17,7 +19,7 @@ try: ldap_url = ldapurl.LDAPUrl(sys.argv[1]) except IndexError,ValueError: - print 'Usage: %s ' % (sys.argv[0]) + print('Usage: %s ' % (sys.argv[0])) sys.exit(1) # Set debugging level @@ -32,14 +34,14 @@ ) if ldap_url.who and ldap_url.cred is None: - print 'Password for %s:' % (repr(ldap_url.who)) + print('Password for %s:' % (repr(ldap_url.who))) ldap_url.cred = getpass.getpass() try: ldap_conn.simple_bind_s(ldap_url.who or '',ldap_url.cred or '') except ldap.INVALID_CREDENTIALS,e: - print 'Simple bind failed:',str(e) + print('Simple bind failed:',str(e)) sys.exit(1) st_ctrl = SessionTrackingControl( diff --git a/Demo/pyasn1/syncrepl.py b/Demo/pyasn1/syncrepl.py index 1454eef..479a626 100644 --- a/Demo/pyasn1/syncrepl.py +++ b/Demo/pyasn1/syncrepl.py @@ -8,6 +8,7 @@ The bound user needs read access to the attributes entryDN and entryCSN. """ +from __future__ import print_function # Import modules from Python standard lib import logging @@ -157,7 +158,7 @@ def commenceShutdown(signum, stack): ).format(script_name=sys.argv[0]) sys.exit(1) except ValueError,e: - print 'Error parsing command-line arguments:', str(e) + print('Error parsing command-line arguments:',str(e)) sys.exit(1) while watcher_running: diff --git a/Demo/rename.py b/Demo/rename.py index 1bb6fd7..91d7528 100644 --- a/Demo/rename.py +++ b/Demo/rename.py @@ -1,10 +1,11 @@ +from __future__ import print_function import ldap from getpass import getpass # Create LDAPObject instance l = ldap.initialize('ldap://localhost:1389',trace_level=1) -print 'Password:' +print('Password:') cred = getpass() try: @@ -15,7 +16,7 @@ # Try a bind to provoke failure if protocol version is not supported l.bind_s('cn=root,dc=stroeder,dc=com',cred,ldap.AUTH_SIMPLE) - print 'Using rename_s():' + print('Using rename_s():') l.rename_s( 'uid=fred,ou=Unstructured testing tree,dc=stroeder,dc=com', diff --git a/Demo/resiter.py b/Demo/resiter.py index ff9fe5a..d6796ba 100644 --- a/Demo/resiter.py +++ b/Demo/resiter.py @@ -4,6 +4,7 @@ See http://www.python-ldap.org for details. """ +from __future__ import print_function import ldap,ldap.resiter @@ -16,6 +17,6 @@ class LDAPObject(ldap.ldapobject.LDAPObject,ldap.resiter.ResultProcessor): result_iter = l.allresults(msgid) for result_type,result_list,result_msgid,result_serverctrls in result_iter: - print result_type,result_list,result_msgid,result_serverctrls + print(result_type,result_list,result_msgid,result_serverctrls) l.unbind_s() diff --git a/Demo/sasl_bind.py b/Demo/sasl_bind.py index 05af652..7ff75bf 100644 --- a/Demo/sasl_bind.py +++ b/Demo/sasl_bind.py @@ -1,5 +1,6 @@ # For documentation, see comments in Module/LDAPObject.c and the # ldap.sasl module documentation. +from __future__ import print_function import ldap,ldap.sasl @@ -60,7 +61,7 @@ ), ]: sasl_auth = ldap.sasl.sasl(sasl_cb_value_dict,sasl_mech) - print 20*'*',sasl_auth.mech,20*'*' + print(20*'*',sasl_auth.mech,20*'*') # Open the LDAP connection l = ldap.initialize(ldap_uri,trace_level=0) # Set protocol version to LDAPv3 to enable SASL bind! @@ -68,15 +69,15 @@ try: l.sasl_interactive_bind_s("", sasl_auth) except ldap.LDAPError,e: - print 'Error using SASL mechanism',sasl_auth.mech,str(e) + print('Error using SASL mechanism',sasl_auth.mech,str(e)) else: - print 'Sucessfully bound using SASL mechanism:',sasl_auth.mech + print('Sucessfully bound using SASL mechanism:',sasl_auth.mech) try: - print 'Result of Who Am I? ext. op:',repr(l.whoami_s()) + print('Result of Who Am I? ext. op:',repr(l.whoami_s())) except ldap.LDAPError,e: - print 'Error using SASL mechanism',sasl_auth.mech,str(e) + print('Error using SASL mechanism',sasl_auth.mech,str(e)) try: - print 'OPT_X_SASL_USERNAME',repr(l.get_option(ldap.OPT_X_SASL_USERNAME)) + print('OPT_X_SASL_USERNAME',repr(l.get_option(ldap.OPT_X_SASL_USERNAME))) except AttributeError: pass diff --git a/Demo/schema.py b/Demo/schema.py index c8103f3..9f650d2 100644 --- a/Demo/schema.py +++ b/Demo/schema.py @@ -1,3 +1,4 @@ +from __future__ import print_function import sys,ldap,ldap.schema schema_attrs = ldap.schema.SCHEMA_ATTRS @@ -9,39 +10,39 @@ subschemasubentry_dn,schema = ldap.schema.urlfetch(sys.argv[-1]) if subschemasubentry_dn is None: - print 'No sub schema sub entry found!' + print('No sub schema sub entry found!') sys.exit(1) if schema.non_unique_oids: - print '*** Schema errors ***' - print 'non-unique OIDs:\n','\r\n'.join(schema.non_unique_oids) + print('*** Schema errors ***') + print('non-unique OIDs:\n','\r\n'.join(schema.non_unique_oids)) -print '*** Schema from',repr(subschemasubentry_dn) +print('*** Schema from',repr(subschemasubentry_dn)) # Display schema for attr_type,schema_class in ldap.schema.SCHEMA_CLASS_MAPPING.items(): - print '*'*20,attr_type,'*'*20 + print('*'*20,attr_type,'*'*20) for element_id in schema.listall(schema_class): se_orig = schema.get_obj(schema_class,element_id) - print attr_type,str(se_orig) -print '*** Testing object class inetOrgPerson ***' + print(attr_type,str(se_orig)) +print('*** Testing object class inetOrgPerson ***') drink = schema.get_obj(ldap.schema.AttributeType,'favouriteDrink') if not drink is None: - print '*** drink ***' - print 'drink.names',repr(drink.names) - print 'drink.collective',repr(drink.collective) + print('*** drink ***') + print('drink.names',repr(drink.names)) + print('drink.collective',repr(drink.collective)) inetOrgPerson = schema.get_obj(ldap.schema.ObjectClass,'inetOrgPerson') if not inetOrgPerson is None: - print inetOrgPerson.must,inetOrgPerson.may + print(inetOrgPerson.must,inetOrgPerson.may) -print '*** person,organizationalPerson,inetOrgPerson ***' +print('*** person,organizationalPerson,inetOrgPerson ***') try: - print schema.attribute_types( + print(schema.attribute_types() ['person','organizationalPerson','inetOrgPerson'] ) - print schema.attribute_types( + print(schema.attribute_types() ['person','organizationalPerson','inetOrgPerson'], attr_type_filter = [ ('no_user_mod',[0]), @@ -49,15 +50,15 @@ ] ) except KeyError,e: - print '***KeyError',str(e) + print('***KeyError',str(e)) schema.ldap_entry() -print str(schema.get_obj(ldap.schema.MatchingRule,'2.5.13.0')) -print str(schema.get_obj(ldap.schema.MatchingRuleUse,'2.5.13.0')) +print(str(schema.get_obj(ldap.schema.MatchingRule,'2.5.13.0'))) +print(str(schema.get_obj(ldap.schema.MatchingRuleUse,'2.5.13.0'))) -print str(schema.get_obj(ldap.schema.AttributeType,'name')) -print str(schema.get_inheritedobj(ldap.schema.AttributeType,'cn',['syntax','equality','substr','ordering'])) +print(str(schema.get_obj(ldap.schema.AttributeType,'name'))) +print(str(schema.get_inheritedobj(ldap.schema.AttributeType,'cn',['syntax','equality','substr','ordering']))) must_attr,may_attr = schema.attribute_types(['person','organizationalPerson','inetOrgPerson'],raise_keyerror=0) diff --git a/Demo/schema_tree.py b/Demo/schema_tree.py index 3b3a091..ef8bcec 100644 --- a/Demo/schema_tree.py +++ b/Demo/schema_tree.py @@ -4,6 +4,7 @@ Usage: schema_oc_tree.py [--html] [LDAP URL] """ +from __future__ import print_function import sys,getopt,ldap,ldap.schema @@ -14,11 +15,11 @@ def PrintSchemaTree(schema,se_class,se_tree,se_oid,level): """ASCII text output for console""" se_obj = schema.get_obj(se_class,se_oid) if se_obj!=None: - print '| '*(level-1)+'+---'*(level>0), \ + print('| '*(level-1)+'+---'*(level>0), \) ', '.join(se_obj.names), \ '(%s)' % se_obj.oid for sub_se_oid in se_tree[se_oid]: - print '| '*(level+1) + print('| '*(level+1)) PrintSchemaTree(schema,se_class,se_tree,sub_se_oid,level+1) @@ -26,17 +27,17 @@ def HTMLSchemaTree(schema,se_class,se_tree,se_oid,level): """HTML output for browser""" se_obj = schema.get_obj(se_class,se_oid) if se_obj!=None: - print """ + print("""
%s (%s)
%s - """ % (', '.join(se_obj.names),se_obj.oid,se_obj.desc) + """ % (', '.join(se_obj.names),se_obj.oid,se_obj.desc)) if se_tree[se_oid]: - print '
' + print('
') for sub_se_oid in se_tree[se_oid]: HTMLSchemaTree(schema,se_class,se_tree,sub_se_oid,level+1) - print '
' - print '
' + print('') + print('') ldap.set_option(ldap.OPT_DEBUG_LEVEL,0) @@ -46,13 +47,13 @@ def HTMLSchemaTree(schema,se_class,se_tree,se_oid,level): subschemasubentry_dn,schema = ldap.schema.urlfetch(sys.argv[-1],ldap.trace_level) if subschemasubentry_dn is None: - print 'No sub schema sub entry found!' + print('No sub schema sub entry found!') sys.exit(1) try: options,args=getopt.getopt(sys.argv[1:],'',['html']) except getopt.error,e: - print 'Error: %s\nUsage: schema_oc_tree.py [--html] [LDAP URL]' + print('Error: %s\nUsage: schema_oc_tree.py [--html] [LDAP URL]') html_output = options and options[0][0]=='--html' @@ -60,41 +61,41 @@ def HTMLSchemaTree(schema,se_class,se_tree,se_oid,level): at_tree = schema.tree(ldap.schema.AttributeType) #for k,v in oc_tree.items(): -# print k,'->',v +# print(k,'->',v) #for k,v in at_tree.items(): -# print k,'->',v +# print(k,'->',v) if html_output: - print """ + print(""" Object class tree

Object class tree

-""" +""") HTMLSchemaTree(schema,ldap.schema.ObjectClass,oc_tree,'2.5.6.0',0) - print """
+ print("""

Attribute type tree

-""" +""") for a in schema.listall(ldap.schema.AttributeType): if at_tree[a]: HTMLSchemaTree(schema,ldap.schema.AttributeType,at_tree,a,0) print - print """
+ print(""" -""" +""") else: - print '*** Object class tree ***\n' + print('*** Object class tree ***\n') print PrintSchemaTree(schema,ldap.schema.ObjectClass,oc_tree,'2.5.6.0',0) - print '\n*** Attribute types tree ***\n' + print('\n*** Attribute types tree ***\n') PrintSchemaTree(schema,ldap.schema.AttributeType,at_tree,'_',0) diff --git a/Demo/simple.py b/Demo/simple.py index e4cf4d0..6004c9e 100644 --- a/Demo/simple.py +++ b/Demo/simple.py @@ -1,3 +1,4 @@ +from __future__ import print_function import sys,getpass import ldap @@ -14,7 +15,7 @@ try: dn = "ou=CSEE,o=UQ,c=AU" - print "Adding", repr(dn) + print("Adding", repr(dn)) l.add_s(dn, [ ("objectclass",["organizationalUnit"]), @@ -32,7 +33,7 @@ # dn = "cn=David Leonard,ou=CSEE,o=UQ,c=AU" -print "Updating", repr(dn) +print("Updating", repr(dn)) try: l.delete_s(dn) @@ -100,7 +101,7 @@ _ldap.SCOPE_SUBTREE, "objectclass=*", ) -print res +print(res) l.unbind() diff --git a/Demo/simplebrowse.py b/Demo/simplebrowse.py index 804d12f..aa88f67 100644 --- a/Demo/simplebrowse.py +++ b/Demo/simplebrowse.py @@ -3,6 +3,7 @@ # # simple LDAP server browsing example # +from __future__ import print_function import ldap from traceback import print_exc @@ -10,7 +11,7 @@ url = "ldap://ldap.openldap.org/" dn = "dc=openldap,dc=org" -print "Connecting to", url +print("Connecting to", url) l = ldap.initialize(url) l.bind_s("", "", ldap.AUTH_SIMPLE); @@ -30,18 +31,18 @@ try: if cmd == "?": - print "cd - change DN to " - print "cd - change DN to number of last 'ls'" - print "cd - - change to previous DN" - print "cd .. - change to one-level higher DN" - print "cd - change to root DN" - print "ls - list children of crrent DN" - print ". - show attributes of current DN" - print "/ - list descendents matching filter " - print "? - show this help" + print( "cd - change DN to ") + print( "cd - change DN to number of last 'ls'") + print( "cd - - change to previous DN") + print( "cd .. - change to one-level higher DN") + print( "cd - change to root DN") + print( "ls - list children of crrent DN") + print( ". - show attributes of current DN") + print( "/ - list descendents matching filter ") + print( "? - show this help") elif cmd == "ls": - print "Children of", `dn`, ":" + print("Children of", `dn`, ":") dnlist = [] # # List the children at one level down from the current dn @@ -58,7 +59,7 @@ shortname = name[:-len(dn)-2]+" +" else: shortname = name - print " %3d. %s" % (len(dnlist), shortname) + print(" %3d. %s" % (len(dnlist), shortname)) dnlist.append(name) elif cmd == "cd": @@ -79,7 +80,7 @@ godn = arg else: if dnlist is None: - print "do an ls first" + print("do an ls first") else: godn = dnlist[i] lastdn = dn @@ -93,10 +94,10 @@ # No attributes are listed, so the default is for # the client to receive all attributes on the DN. # - print "Attributes of", `dn`, ":" + print("Attributes of", `dn`, ":") for name,attrs in l.search_s(dn, ldap.SCOPE_BASE, "objectclass=*"): - print " %-24s" % name + print(" %-24s" % name) for k,vals in attrs.items(): for v in vals: if len(v) > 200: @@ -104,7 +105,7 @@ ("... (%d bytes)" % len(v)) else: v = `v` - print " %-12s: %s" % (k, v) + print(" %-12s: %s" % (k, v)) elif cmd.startswith("/"): # @@ -114,13 +115,13 @@ # that we're not interested in them. # expr = cmd[1:] - print "Descendents matching filter", `expr`, ":" + print("Descendents matching filter", `expr`, ":") for name,attrs in l.search_s(dn, ldap.SCOPE_SUBTREE, expr, []): - print " %24s", name + print(" %24s", name) else: - print "unknown command - try '?' for help" + print("unknown command - try '?' for help") except: print_exc() diff --git a/Doc/ldap-resiter.rst b/Doc/ldap-resiter.rst index 0beabb8..0e72e92 100644 --- a/Doc/ldap-resiter.rst +++ b/Doc/ldap-resiter.rst @@ -46,4 +46,4 @@ processing them in a for-loop. for res_type,res_data,res_msgid,res_controls in l.allresults(msg_id): for dn,entry in res_data: # process dn and entry - print dn,entry['objectClass'] + print(dn,entry['objectClass']) diff --git a/Doc/ldap.rst b/Doc/ldap.rst index e983f64..5160f30 100644 --- a/Doc/ldap.rst +++ b/Doc/ldap.rst @@ -1169,6 +1169,6 @@ subtree search. [('cn=Fred Feuerstein,ou=Testing,dc=stroeder,dc=de', {'cn': ['Fred Feuerstein']})] >>> r = l.search_s('ou=Testing,dc=stroeder,dc=de',ldap.SCOPE_SUBTREE,'(objectClass=*)',['cn','mail']) >>> for dn,entry in r: ->>> print 'Processing',repr(dn) +>>> print('Processing',repr(dn)) >>> handle_ldap_entry(entry)