[Python-modules-commits] [python-ldap3] 01/01: New upstream version 2.2.2

Brian May bam at moszumanska.debian.org
Sat Mar 18 05:28:18 UTC 2017


This is an automated email from the git hooks/post-receive script.

bam pushed a commit to branch upstream
in repository python-ldap3.

commit aa444baccb08ec3a32c3c7ecf749c4bda7d77a5b
Author: Brian May <bam at debian.org>
Date:   Sat Mar 18 16:25:55 2017 +1100

    New upstream version 2.2.2
---
 COPYING.txt                                        |    2 +-
 PKG-INFO                                           |   50 +-
 README.rst                                         |   46 +-
 _version.json                                      |    4 +-
 ldap3.egg-info/PKG-INFO                            |   50 +-
 ldap3.egg-info/SOURCES.txt                         |   34 +-
 ldap3.egg-info/requires.txt                        |    2 +-
 ldap3/__init__.py                                  |  342 +----
 ldap3/abstract/__init__.py                         |   35 +-
 ldap3/abstract/attrDef.py                          |   37 +-
 ldap3/abstract/attribute.py                        |  169 ++-
 ldap3/abstract/cursor.py                           |  773 ++++++++++
 ldap3/abstract/entry.py                            |  542 +++++--
 ldap3/abstract/objectDef.py                        |  147 +-
 ldap3/abstract/operationalAttribute.py             |   62 -
 ldap3/abstract/reader.py                           |  513 -------
 ldap3/core/connection.py                           |  371 +++--
 ldap3/core/exceptions.py                           |   42 +-
 ldap3/core/pooling.py                              |   10 +-
 ldap3/core/results.py                              |  137 ++
 ldap3/core/server.py                               |  104 +-
 ldap3/core/timezone.py                             |   25 +
 ldap3/core/tls.py                                  |   77 +-
 ldap3/core/usage.py                                |    6 +-
 ldap3/extend/__init__.py                           |  110 +-
 ldap3/extend/microsoft/addMembersToGroups.py       |   81 ++
 ldap3/extend/microsoft/dirSync.py                  |    8 +-
 ldap3/extend/microsoft/modifyPassword.py           |   42 +-
 ldap3/extend/microsoft/removeMembersFromGroups.py  |   93 ++
 ldap3/extend/microsoft/unlockAccount.py            |   56 +
 ldap3/extend/novell/addMembersToGroups.py          |  153 ++
 ldap3/extend/novell/checkGroupsMemberships.py      |  172 +++
 ldap3/extend/novell/endTransaction.py              |   58 +
 ldap3/extend/novell/getBindDn.py                   |    2 +-
 ldap3/extend/novell/listReplicas.py                |    5 +-
 ldap3/extend/novell/nmasGetUniversalPassword.py    |    7 +-
 ldap3/extend/novell/nmasSetUniversalPassword.py    |    6 +-
 ldap3/extend/novell/partition_entry_count.py       |    5 +-
 ldap3/extend/novell/removeMembersFromGroups.py     |  156 ++
 ldap3/extend/novell/replicaInfo.py                 |    9 +-
 ldap3/extend/novell/startTransaction.py            |   56 +
 ldap3/extend/operation.py                          |    8 +-
 ldap3/extend/standard/PagedSearch.py               |    9 +-
 ldap3/extend/standard/PersistentSearch.py          |  121 ++
 ldap3/extend/standard/modifyPassword.py            |    5 +-
 ldap3/extend/standard/whoAmI.py                    |    2 +-
 ldap3/operation/abandon.py                         |    8 +-
 ldap3/operation/add.py                             |   22 +-
 ldap3/operation/bind.py                            |   32 +-
 ldap3/operation/compare.py                         |   18 +-
 ldap3/operation/delete.py                          |    9 +-
 ldap3/operation/extended.py                        |   14 +-
 ldap3/operation/modify.py                          |   18 +-
 ldap3/operation/modifyDn.py                        |    6 +-
 ldap3/operation/search.py                          |  125 +-
 ldap3/operation/unbind.py                          |    3 +-
 ldap3/protocol/controls.py                         |    6 +-
 ldap3/protocol/convert.py                          |   90 +-
 ldap3/protocol/formatters/formatters.py            |   38 +-
 ldap3/protocol/formatters/standard.py              |  242 ++--
 ldap3/protocol/formatters/validators.py            |  157 +++
 ldap3/protocol/microsoft.py                        |    4 +-
 ldap3/protocol/novell.py                           |   58 +-
 ldap3/protocol/oid.py                              |    2 +-
 ldap3/protocol/persistentSearch.py                 |   85 ++
 ldap3/protocol/rfc2696.py                          |    4 +-
 ldap3/protocol/rfc2849.py                          |   96 +-
 ldap3/protocol/rfc3062.py                          |    2 +-
 ldap3/protocol/rfc4511.py                          |   20 +-
 ldap3/protocol/rfc4512.py                          |   66 +-
 ldap3/protocol/rfc4527.py                          |   57 +
 ldap3/protocol/sasl/digestMd5.py                   |    2 +-
 ldap3/protocol/sasl/external.py                    |    2 +-
 ldap3/protocol/sasl/kerberos.py                    |    2 +-
 ldap3/protocol/sasl/plain.py                       |   70 +
 ldap3/protocol/sasl/sasl.py                        |    5 +-
 ldap3/protocol/schemas/ad2012R2.py                 |    2 +-
 ldap3/protocol/schemas/ds389.py                    |    2 +-
 ldap3/protocol/schemas/edir888.py                  |    2 +-
 ldap3/protocol/schemas/slapd24.py                  |    2 +-
 ldap3/strategy/async.py                            |   19 +-
 ldap3/strategy/asyncStream.py                      |  116 ++
 ldap3/strategy/base.py                             |  174 ++-
 ldap3/strategy/ldifProducer.py                     |   21 +-
 ldap3/strategy/mockAsync.py                        |   69 +-
 ldap3/strategy/mockBase.py                         |  765 ++++++++++
 ldap3/strategy/mockSync.py                         |  133 +-
 ldap3/strategy/restartable.py                      |    4 +-
 ldap3/strategy/reusable.py                         |   60 +-
 ldap3/strategy/sync.py                             |    8 +-
 ldap3/utils/asn1.py                                |   12 +-
 ldap3/utils/ciDict.py                              |   90 +-
 ldap3/utils/config.py                              |  209 +++
 ldap3/utils/conv.py                                |  119 +-
 ldap3/utils/dn.py                                  |   81 +-
 ldap3/utils/hashed.py                              |    6 +-
 ldap3/utils/log.py                                 |   26 +-
 ldap3/utils/ntlm.py                                |   15 +-
 ldap3/utils/ordDict.py                             |  130 ++
 ldap3/utils/repr.py                                |   17 +-
 ldap3/utils/tls_backport.py                        |    2 +-
 ldap3/utils/uri.py                                 |    3 +-
 ldap3/version.py                                   |   10 +-
 setup.cfg                                          |    3 +-
 setup.py                                           |    9 +-
 test/testASN1.py                                   |    9 +-
 ...tDeleteOperation.py => testAbandonOperation.py} |   35 +-
 test/testAbstractionDefs.py                        |   29 +-
 ...eration.py => testAbstractionDefsFromSchema.py} |   32 +-
 test/testAbstractionSearch.py                      |  147 +-
 test/testAbstractionWrite.py                       |  171 +++
 test/testAddMembersToGroups.py                     |  195 +++
 test/testAddOperation.py                           |   10 +-
 test/testBindOperation.py                          |   77 +-
 test/testCaseInsensitiveDictionary.py              |   25 +-
 test/testCaseInsensitiveWithAliasDictionary.py     | 1142 +++++++++++++++
 test/testCheckGroupMembership.py                   |  144 ++
 test/testCheckNames.py                             |    8 +-
 test/testCheckedAttributes.py                      |   12 +-
 test/testCompareOperation.py                       |   18 +-
 test/testConnection.py                             |    7 +-
 test/testControls.py                               |    8 +-
 test/testDeleteOperation.py                        |   21 +-
 test/testDnParsing.py                              |    7 +-
 test/testExceptions.py                             |    8 +-
 test/testExtendedOperations.py                     |   32 +-
 test/testExtensions.py                             |   27 +-
 test/testFormatGeneralizedTime.py                  |    8 +-
 test/testLDIF-change.py                            |   83 +-
 test/testLDIF-content.py                           |    8 +-
 test/testMicrosoftAD.py                            |   42 +-
 test/testMockSyncStrategy.py                       | 1491 +++++++++++++++++++-
 test/testModifyDNOperation.py                      |   45 +-
 test/testModifyOperation.py                        |   17 +-
 test/testOfflineSchema.py                          |    7 +-
 test/testParseSearchFilter.py                      |   24 +-
 test/testRebindOperation.py                        |   16 +-
 test/testRemoveMembersFromGroups.py                |  383 +++++
 test/testRestartable.py                            |   74 +-
 test/testSaslPrep.py                               |    8 +-
 test/testSchema.py                                 |    7 +-
 test/testSearchAndModifyEntries.py                 |  584 ++++++++
 test/testSearchOperation.py                        |  159 ++-
 test/testSearchOperationEntries.py                 |   17 +-
 test/testSearchOperationJSON.py                    |   25 +-
 test/testTls.py                                    |  248 ++--
 test/testTransactions.py                           |  102 ++
 test/testValidators.py                             |  162 +++
 test/{testAddOperation.py => testWriterCursor.py}  |   26 +-
 149 files changed, 11463 insertions(+), 2353 deletions(-)

diff --git a/COPYING.txt b/COPYING.txt
index 3d90694..c8dcb1e 100644
--- a/COPYING.txt
+++ b/COPYING.txt
@@ -280,7 +280,7 @@ in one of these ways:
     copy the object code is a network server, the Corresponding Source
     may be on a different server (operated by you or a third party)
     that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
+    _clear directions next to the object code saying where to find the
     Corresponding Source.  Regardless of what server hosts the
     Corresponding Source, you remain obligated to ensure that it is
     available for as long as needed to satisfy these requirements.
diff --git a/PKG-INFO b/PKG-INFO
index 39db544..e9cadb1 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,7 +1,7 @@
 Metadata-Version: 1.1
 Name: ldap3
-Version: 1.2.2
-Summary: A strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase works with Python 2, Python 3, PyPy, PyPy3 and Nuikta
+Version: 2.2.2
+Summary: A strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase works with Python 2, Python 3, PyPy and PyPy3
 Home-page: https://github.com/cannatag/ldap3
 Author: Giovanni Cannata
 Author-email: cannatag at gmail.com
@@ -13,17 +13,35 @@ Description: LDAP3
             :target: https://pypi.python.org/pypi/ldap3/
             :alt: Latest Version
         
+        .. image:: https://img.shields.io/pypi/l/ldap3.svg
+            :target: https://pypi.python.org/pypi/ldap3/
+            :alt: License
+        
         .. image:: https://img.shields.io/travis/cannatag/ldap3/master.svg
             :target: https://travis-ci.org/cannatag/ldap3
             :alt: TRAVIS-CI build status for master branch
         
-        .. image:: https://img.shields.io/pypi/l/ldap3.svg
-            :target: https://pypi.python.org/pypi/ldap3/
-            :alt: License
         
-        ldap3 is a strictly RFC 4510 conforming LDAP V3 pure Python **client** library. The same codebase works with Python 2, Python 3, PyPy, PyPy3 and Nuikta.
+        ldap3 is a strictly RFC 4510 conforming **LDAP V3 pure Python client** library. The same codebase runs in Python 2, Python 3, PyPy and PyPy3.
+        
+        
+        Version 2 warning
+        -----------------
+        
+        In version 2 of ldap3 some default values have been changed and the ldap3 namespace has been decluttered, removing redundant
+        constants (look at the changelog for details). Also, the result code constants were moved to ldap3.core.results and the ldap3 custom exceptions
+        were stored in ldap3.core.exceptions. If you experience errors in your existing code you should rearrange the import statements or explicitly
+        set the defaults to their former values.
+        
+        
+        A more pythonic LDAP
+        --------------------
+        
+        LDAP operations look clumsy and hard-to-use because they reflect the old-age idea that time-consuming operations
+        should be done on the client to not clutter and hog the server with unneeded elaboration. ldap3 includes a fully functional **Abstraction
+        Layer** that lets you interact with the DIT in a modern and *pythonic* way. With the Abstraction Layer you don't need to directly issue any
+        LDAP operation at all.
         
-        [This project was previously named **python3-ldap**]
         
         Home Page
         ---------
@@ -34,13 +52,14 @@ Description: LDAP3
         Documentation
         -------------
         
-        Documentation is available at http://ldap3.readthedocs.org
+        Documentation is available at http://ldap3.readthedocs.io
         
         
         License
         -------
         
         The ldap3 project is open source software released under the **LGPL v3 license**.
+        Copyright 2013, 2014, 2015, 2016 Giovanni Cannata
         
         
         PEP8 Compliance
@@ -72,32 +91,39 @@ Description: LDAP3
         
         Continuous integration for testing is at https://travis-ci.org/cannatag/ldap3
         
+        
         Support
         -------
         
         You can submit support tickets on https://github.com/cannatag/ldap3/issues/new
+        You can submit pull request on the **dev** branch at https://github.com/cannatag/ldap3/tree/dev
         
         
         Thanks to
         ---------
         
         * **Ilya Etingof**, the author of the *pyasn1* package for his excellent work and support.
+        
         * **Mark Lutz** for his *Learning Python* and *Programming Python* excellent books series and **John Goerzen** and **Brandon Rhodes** for their book *Foundations of Python Network Programming*. These books are wonderful tools for learning Python and this project owes a lot to them.
-        * **JetBrains** for donating to this project the Open Source license of *PyCharm 3 Professional*.
+        
+        * **JetBrains** for donating to this project the Open Source license of *PyCharm Professional*.
+        
         * **GitHub** for providing the *free source repository space and the tools* I use to develop this project.
-        * The **Python Software Foundation** for providing support for the test lab infrastructure.
+        
+        * The **FreeIPA** team for letting me use their demo LDAP server in the ldap3 tutorial.
         
         
         Contact me
         ----------
         
-        For information and suggestions you can contact me at cannatag at gmail.com or you can also a support ticket on https://github.com/cannatag/ldap3/issues/new
+        For information and suggestions you can contact me at cannatag at gmail.com. You can also a support ticket on https://github.com/cannatag/ldap3/issues/new
         
         
         Changelog
         ---------
         
-        You can read the current changelog at http://ldap3.readthedocs.org/changelog.html
+        Updated changelog at https://ldap3.readthedocs.io/changelog.html
+        
         
 Keywords: python3 python2 ldap
 Platform: UNKNOWN
diff --git a/README.rst b/README.rst
index a761718..31c24c6 100644
--- a/README.rst
+++ b/README.rst
@@ -5,17 +5,35 @@ LDAP3
     :target: https://pypi.python.org/pypi/ldap3/
     :alt: Latest Version
 
+.. image:: https://img.shields.io/pypi/l/ldap3.svg
+    :target: https://pypi.python.org/pypi/ldap3/
+    :alt: License
+
 .. image:: https://img.shields.io/travis/cannatag/ldap3/master.svg
     :target: https://travis-ci.org/cannatag/ldap3
     :alt: TRAVIS-CI build status for master branch
 
-.. image:: https://img.shields.io/pypi/l/ldap3.svg
-    :target: https://pypi.python.org/pypi/ldap3/
-    :alt: License
 
-ldap3 is a strictly RFC 4510 conforming LDAP V3 pure Python **client** library. The same codebase works with Python 2, Python 3, PyPy, PyPy3 and Nuikta.
+ldap3 is a strictly RFC 4510 conforming **LDAP V3 pure Python client** library. The same codebase runs in Python 2, Python 3, PyPy and PyPy3.
+
+
+Version 2 warning
+-----------------
+
+In version 2 of ldap3 some default values have been changed and the ldap3 namespace has been decluttered, removing redundant
+constants (look at the changelog for details). Also, the result code constants were moved to ldap3.core.results and the ldap3 custom exceptions
+were stored in ldap3.core.exceptions. If you experience errors in your existing code you should rearrange the import statements or explicitly
+set the defaults to their former values.
+
+
+A more pythonic LDAP
+--------------------
+
+LDAP operations look clumsy and hard-to-use because they reflect the old-age idea that time-consuming operations
+should be done on the client to not clutter and hog the server with unneeded elaboration. ldap3 includes a fully functional **Abstraction
+Layer** that lets you interact with the DIT in a modern and *pythonic* way. With the Abstraction Layer you don't need to directly issue any
+LDAP operation at all.
 
-[This project was previously named **python3-ldap**]
 
 Home Page
 ---------
@@ -26,13 +44,14 @@ Project home page is https://github.com/cannatag/ldap3
 Documentation
 -------------
 
-Documentation is available at http://ldap3.readthedocs.org
+Documentation is available at http://ldap3.readthedocs.io
 
 
 License
 -------
 
 The ldap3 project is open source software released under the **LGPL v3 license**.
+Copyright 2013, 2014, 2015, 2016 Giovanni Cannata
 
 
 PEP8 Compliance
@@ -64,29 +83,36 @@ Continuous integration
 
 Continuous integration for testing is at https://travis-ci.org/cannatag/ldap3
 
+
 Support
 -------
 
 You can submit support tickets on https://github.com/cannatag/ldap3/issues/new
+You can submit pull request on the **dev** branch at https://github.com/cannatag/ldap3/tree/dev
 
 
 Thanks to
 ---------
 
 * **Ilya Etingof**, the author of the *pyasn1* package for his excellent work and support.
+
 * **Mark Lutz** for his *Learning Python* and *Programming Python* excellent books series and **John Goerzen** and **Brandon Rhodes** for their book *Foundations of Python Network Programming*. These books are wonderful tools for learning Python and this project owes a lot to them.
-* **JetBrains** for donating to this project the Open Source license of *PyCharm 3 Professional*.
+
+* **JetBrains** for donating to this project the Open Source license of *PyCharm Professional*.
+
 * **GitHub** for providing the *free source repository space and the tools* I use to develop this project.
-* The **Python Software Foundation** for providing support for the test lab infrastructure.
+
+* The **FreeIPA** team for letting me use their demo LDAP server in the ldap3 tutorial.
 
 
 Contact me
 ----------
 
-For information and suggestions you can contact me at cannatag at gmail.com or you can also a support ticket on https://github.com/cannatag/ldap3/issues/new
+For information and suggestions you can contact me at cannatag at gmail.com. You can also a support ticket on https://github.com/cannatag/ldap3/issues/new
 
 
 Changelog
 ---------
 
-You can read the current changelog at http://ldap3.readthedocs.org/changelog.html
+Updated changelog at https://ldap3.readthedocs.io/changelog.html
+
diff --git a/_version.json b/_version.json
index 2d64e41..ffea1ee 100644
--- a/_version.json
+++ b/_version.json
@@ -4,8 +4,8 @@
     "status": "5 - Production/Stable",
     "package_name": "ldap3",
     "url": "https://github.com/cannatag/ldap3",
-    "description": "A strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase works with Python 2, Python 3, PyPy, PyPy3 and Nuikta",
+    "description": "A strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase works with Python 2, Python 3, PyPy and PyPy3",
     "author": "Giovanni Cannata",
-    "version": "1.2.2",
+    "version": "2.2.2",
     "license": "LGPL v3"
 }
diff --git a/ldap3.egg-info/PKG-INFO b/ldap3.egg-info/PKG-INFO
index 39db544..e9cadb1 100644
--- a/ldap3.egg-info/PKG-INFO
+++ b/ldap3.egg-info/PKG-INFO
@@ -1,7 +1,7 @@
 Metadata-Version: 1.1
 Name: ldap3
-Version: 1.2.2
-Summary: A strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase works with Python 2, Python 3, PyPy, PyPy3 and Nuikta
+Version: 2.2.2
+Summary: A strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase works with Python 2, Python 3, PyPy and PyPy3
 Home-page: https://github.com/cannatag/ldap3
 Author: Giovanni Cannata
 Author-email: cannatag at gmail.com
@@ -13,17 +13,35 @@ Description: LDAP3
             :target: https://pypi.python.org/pypi/ldap3/
             :alt: Latest Version
         
+        .. image:: https://img.shields.io/pypi/l/ldap3.svg
+            :target: https://pypi.python.org/pypi/ldap3/
+            :alt: License
+        
         .. image:: https://img.shields.io/travis/cannatag/ldap3/master.svg
             :target: https://travis-ci.org/cannatag/ldap3
             :alt: TRAVIS-CI build status for master branch
         
-        .. image:: https://img.shields.io/pypi/l/ldap3.svg
-            :target: https://pypi.python.org/pypi/ldap3/
-            :alt: License
         
-        ldap3 is a strictly RFC 4510 conforming LDAP V3 pure Python **client** library. The same codebase works with Python 2, Python 3, PyPy, PyPy3 and Nuikta.
+        ldap3 is a strictly RFC 4510 conforming **LDAP V3 pure Python client** library. The same codebase runs in Python 2, Python 3, PyPy and PyPy3.
+        
+        
+        Version 2 warning
+        -----------------
+        
+        In version 2 of ldap3 some default values have been changed and the ldap3 namespace has been decluttered, removing redundant
+        constants (look at the changelog for details). Also, the result code constants were moved to ldap3.core.results and the ldap3 custom exceptions
+        were stored in ldap3.core.exceptions. If you experience errors in your existing code you should rearrange the import statements or explicitly
+        set the defaults to their former values.
+        
+        
+        A more pythonic LDAP
+        --------------------
+        
+        LDAP operations look clumsy and hard-to-use because they reflect the old-age idea that time-consuming operations
+        should be done on the client to not clutter and hog the server with unneeded elaboration. ldap3 includes a fully functional **Abstraction
+        Layer** that lets you interact with the DIT in a modern and *pythonic* way. With the Abstraction Layer you don't need to directly issue any
+        LDAP operation at all.
         
-        [This project was previously named **python3-ldap**]
         
         Home Page
         ---------
@@ -34,13 +52,14 @@ Description: LDAP3
         Documentation
         -------------
         
-        Documentation is available at http://ldap3.readthedocs.org
+        Documentation is available at http://ldap3.readthedocs.io
         
         
         License
         -------
         
         The ldap3 project is open source software released under the **LGPL v3 license**.
+        Copyright 2013, 2014, 2015, 2016 Giovanni Cannata
         
         
         PEP8 Compliance
@@ -72,32 +91,39 @@ Description: LDAP3
         
         Continuous integration for testing is at https://travis-ci.org/cannatag/ldap3
         
+        
         Support
         -------
         
         You can submit support tickets on https://github.com/cannatag/ldap3/issues/new
+        You can submit pull request on the **dev** branch at https://github.com/cannatag/ldap3/tree/dev
         
         
         Thanks to
         ---------
         
         * **Ilya Etingof**, the author of the *pyasn1* package for his excellent work and support.
+        
         * **Mark Lutz** for his *Learning Python* and *Programming Python* excellent books series and **John Goerzen** and **Brandon Rhodes** for their book *Foundations of Python Network Programming*. These books are wonderful tools for learning Python and this project owes a lot to them.
-        * **JetBrains** for donating to this project the Open Source license of *PyCharm 3 Professional*.
+        
+        * **JetBrains** for donating to this project the Open Source license of *PyCharm Professional*.
+        
         * **GitHub** for providing the *free source repository space and the tools* I use to develop this project.
-        * The **Python Software Foundation** for providing support for the test lab infrastructure.
+        
+        * The **FreeIPA** team for letting me use their demo LDAP server in the ldap3 tutorial.
         
         
         Contact me
         ----------
         
-        For information and suggestions you can contact me at cannatag at gmail.com or you can also a support ticket on https://github.com/cannatag/ldap3/issues/new
+        For information and suggestions you can contact me at cannatag at gmail.com. You can also a support ticket on https://github.com/cannatag/ldap3/issues/new
         
         
         Changelog
         ---------
         
-        You can read the current changelog at http://ldap3.readthedocs.org/changelog.html
+        Updated changelog at https://ldap3.readthedocs.io/changelog.html
+        
         
 Keywords: python3 python2 ldap
 Platform: UNKNOWN
diff --git a/ldap3.egg-info/SOURCES.txt b/ldap3.egg-info/SOURCES.txt
index 2d5d00a..8a314c0 100644
--- a/ldap3.egg-info/SOURCES.txt
+++ b/ldap3.egg-info/SOURCES.txt
@@ -11,14 +11,14 @@ setup.py
 ./ldap3/abstract/__init__.py
 ./ldap3/abstract/attrDef.py
 ./ldap3/abstract/attribute.py
+./ldap3/abstract/cursor.py
 ./ldap3/abstract/entry.py
 ./ldap3/abstract/objectDef.py
-./ldap3/abstract/operationalAttribute.py
-./ldap3/abstract/reader.py
 ./ldap3/core/__init__.py
 ./ldap3/core/connection.py
 ./ldap3/core/exceptions.py
 ./ldap3/core/pooling.py
+./ldap3/core/results.py
 ./ldap3/core/server.py
 ./ldap3/core/timezone.py
 ./ldap3/core/tls.py
@@ -26,16 +26,25 @@ setup.py
 ./ldap3/extend/__init__.py
 ./ldap3/extend/operation.py
 ./ldap3/extend/microsoft/__init__.py
+./ldap3/extend/microsoft/addMembersToGroups.py
 ./ldap3/extend/microsoft/dirSync.py
 ./ldap3/extend/microsoft/modifyPassword.py
+./ldap3/extend/microsoft/removeMembersFromGroups.py
+./ldap3/extend/microsoft/unlockAccount.py
 ./ldap3/extend/novell/__init__.py
+./ldap3/extend/novell/addMembersToGroups.py
+./ldap3/extend/novell/checkGroupsMemberships.py
+./ldap3/extend/novell/endTransaction.py
 ./ldap3/extend/novell/getBindDn.py
 ./ldap3/extend/novell/listReplicas.py
 ./ldap3/extend/novell/nmasGetUniversalPassword.py
 ./ldap3/extend/novell/nmasSetUniversalPassword.py
 ./ldap3/extend/novell/partition_entry_count.py
+./ldap3/extend/novell/removeMembersFromGroups.py
 ./ldap3/extend/novell/replicaInfo.py
+./ldap3/extend/novell/startTransaction.py
 ./ldap3/extend/standard/PagedSearch.py
+./ldap3/extend/standard/PersistentSearch.py
 ./ldap3/extend/standard/__init__.py
 ./ldap3/extend/standard/modifyPassword.py
 ./ldap3/extend/standard/whoAmI.py
@@ -56,18 +65,22 @@ setup.py
 ./ldap3/protocol/microsoft.py
 ./ldap3/protocol/novell.py
 ./ldap3/protocol/oid.py
+./ldap3/protocol/persistentSearch.py
 ./ldap3/protocol/rfc2696.py
 ./ldap3/protocol/rfc2849.py
 ./ldap3/protocol/rfc3062.py
 ./ldap3/protocol/rfc4511.py
 ./ldap3/protocol/rfc4512.py
+./ldap3/protocol/rfc4527.py
 ./ldap3/protocol/formatters/__init__.py
 ./ldap3/protocol/formatters/formatters.py
 ./ldap3/protocol/formatters/standard.py
+./ldap3/protocol/formatters/validators.py
 ./ldap3/protocol/sasl/__init__.py
 ./ldap3/protocol/sasl/digestMd5.py
 ./ldap3/protocol/sasl/external.py
 ./ldap3/protocol/sasl/kerberos.py
+./ldap3/protocol/sasl/plain.py
 ./ldap3/protocol/sasl/sasl.py
 ./ldap3/protocol/schemas/__init__.py
 ./ldap3/protocol/schemas/ad2012R2.py
@@ -76,9 +89,11 @@ setup.py
 ./ldap3/protocol/schemas/slapd24.py
 ./ldap3/strategy/__init__.py
 ./ldap3/strategy/async.py
+./ldap3/strategy/asyncStream.py
 ./ldap3/strategy/base.py
 ./ldap3/strategy/ldifProducer.py
 ./ldap3/strategy/mockAsync.py
+./ldap3/strategy/mockBase.py
 ./ldap3/strategy/mockSync.py
 ./ldap3/strategy/restartable.py
 ./ldap3/strategy/reusable.py
@@ -86,11 +101,13 @@ setup.py
 ./ldap3/utils/__init__.py
 ./ldap3/utils/asn1.py
 ./ldap3/utils/ciDict.py
+./ldap3/utils/config.py
 ./ldap3/utils/conv.py
 ./ldap3/utils/dn.py
 ./ldap3/utils/hashed.py
 ./ldap3/utils/log.py
 ./ldap3/utils/ntlm.py
+./ldap3/utils/ordDict.py
 ./ldap3/utils/repr.py
 ./ldap3/utils/tls_backport.py
 ./ldap3/utils/uri.py
@@ -100,11 +117,17 @@ ldap3.egg-info/dependency_links.txt
 ldap3.egg-info/requires.txt
 ldap3.egg-info/top_level.txt
 test/testASN1.py
+test/testAbandonOperation.py
 test/testAbstractionDefs.py
+test/testAbstractionDefsFromSchema.py
 test/testAbstractionSearch.py
+test/testAbstractionWrite.py
+test/testAddMembersToGroups.py
 test/testAddOperation.py
 test/testBindOperation.py
 test/testCaseInsensitiveDictionary.py
+test/testCaseInsensitiveWithAliasDictionary.py
+test/testCheckGroupMembership.py
 test/testCheckNames.py
 test/testCheckedAttributes.py
 test/testCompareOperation.py
@@ -125,10 +148,15 @@ test/testModifyOperation.py
 test/testOfflineSchema.py
 test/testParseSearchFilter.py
 test/testRebindOperation.py
+test/testRemoveMembersFromGroups.py
 test/testRestartable.py
 test/testSaslPrep.py
 test/testSchema.py
+test/testSearchAndModifyEntries.py
 test/testSearchOperation.py
 test/testSearchOperationEntries.py
 test/testSearchOperationJSON.py
-test/testTls.py
\ No newline at end of file
+test/testTls.py
+test/testTransactions.py
+test/testValidators.py
+test/testWriterCursor.py
\ No newline at end of file
diff --git a/ldap3.egg-info/requires.txt b/ldap3.egg-info/requires.txt
index 93b528c..24395af 100644
--- a/ldap3.egg-info/requires.txt
+++ b/ldap3.egg-info/requires.txt
@@ -1 +1 @@
-pyasn1 >= 0.1.8
+pyasn1>=0.1.8
diff --git a/ldap3/__init__.py b/ldap3/__init__.py
index 402a254..03e713c 100644
--- a/ldap3/__init__.py
+++ b/ldap3/__init__.py
@@ -5,7 +5,7 @@
 #
 # Author: Giovanni Cannata
 #
-# Copyright 2015 Giovanni Cannata
+# Copyright 2013, 2014, 2015, 2016, 2017 Giovanni Giovanni Cannata
 #
 # This file is part of ldap3.
 #
@@ -23,6 +23,8 @@
 # along with ldap3 in the COPYING and COPYING.LESSER files.
 # If not, see <http://www.gnu.org/licenses/>.
 
+from types import GeneratorType
+
 # authentication
 ANONYMOUS = 'ANONYMOUS'
 SIMPLE = 'SIMPLE'
@@ -33,8 +35,7 @@ NTLM = 'NTLM'
 EXTERNAL = 'EXTERNAL'
 DIGEST_MD5 = 'DIGEST-MD5'
 KERBEROS = GSSAPI = 'GSSAPI'
-
-SASL_AVAILABLE_MECHANISMS = [EXTERNAL, DIGEST_MD5, GSSAPI]
+PLAIN = 'PLAIN'
 
 AUTO_BIND_NONE = 'NONE'  # same as False
 AUTO_BIND_NO_TLS = 'NO_TLS'  # same as True
@@ -47,7 +48,6 @@ IP_V4_ONLY = 'IP_V4_ONLY'
 IP_V6_ONLY = 'IP_V6_ONLY'
 IP_V4_PREFERRED = 'IP_V4_PREFERRED'
 IP_V6_PREFERRED = 'IP_V6_PREFERRED'
-ADDRESS_INFO_REFRESH_TIME = 300  # seconds to wait before refreshing address info from dns
 
 # search scope
 BASE = 'BASE'
@@ -65,32 +65,6 @@ ALL_ATTRIBUTES = '*'
 NO_ATTRIBUTES = '1.1'  # as per RFC 4511
 ALL_OPERATIONAL_ATTRIBUTES = '+'  # as per RFC 3673
 
-CASE_INSENSITIVE_ATTRIBUTE_NAMES = True  # configurable parameter
-CASE_INSENSITIVE_SCHEMA_NAMES = True  # configurable parameter
-
-# checks
-ATTRIBUTES_EXCLUDED_FROM_CHECK = [ALL_ATTRIBUTES,
-                                  ALL_OPERATIONAL_ATTRIBUTES,
-                                  NO_ATTRIBUTES,
-                                  'ldapSyntaxes',
-                                  'matchingRules',
-                                  'matchingRuleUse',
-                                  'dITContentRules',
-                                  'dITStructureRules',
-                                  'nameForms',
-                                  'altServer',
-                                  'namingContexts',
-                                  'supportedControl',
-                                  'supportedExtension',
-                                  'supportedFeatures',
-                                  'supportedCapabilities',
-                                  'supportedLdapVersion',
-                                  'supportedSASLMechanisms',
-                                  'vendorName',
-                                  'vendorVersion',
-                                  'subschemaSubentry',
-                                  'ACL']
-
 # modify type
 MODIFY_ADD = 'MODIFY_ADD'
 MODIFY_DELETE = 'MODIFY_DELETE'
@@ -105,13 +79,7 @@ RESTARTABLE = 'RESTARTABLE'
 REUSABLE = 'REUSABLE'
 MOCK_SYNC = 'MOCK_SYNC'
 MOCK_ASYNC = 'MOCK_ASYNC'
-
-CLIENT_STRATEGIES = [SYNC,
-                     ASYNC,
-                     LDIF,
-                     RESTARTABLE,
-                     REUSABLE,
-                     MOCK_SYNC]
+ASYNC_STREAM = 'ASYNC_STREAM'
 
 # get rootDSE info
 NONE = 'NO_INFO'
@@ -124,41 +92,11 @@ OFFLINE_AD_2012_R2 = 'AD_2012_R2'
 OFFLINE_SLAPD_2_4 = 'SLAPD_2_4'
 OFFLINE_DS389_1_3_3 = 'DS389_1_3_3'
 
-# abstraction layer
-ABSTRACTION_OPERATIONAL_ATTRIBUTE_PREFIX = 'OPER_'  # configurable parameter
-
 # server pooling
 FIRST = 'FIRST'
 ROUND_ROBIN = 'ROUND_ROBIN'
 RANDOM = 'RANDOM'
 
-POOLING_STRATEGIES = [FIRST, ROUND_ROBIN, RANDOM]
-POOLING_LOOP_TIMEOUT = 10  # number of seconds to wait before restarting a cycle to find an active server in the pool - configurable parameter
-
-# communication
-SESSION_TERMINATED_BY_SERVER = 'TERMINATED_BY_SERVER'
-RESPONSE_COMPLETE = 'RESPONSE_FROM_SERVER_COMPLETE'
-RESPONSE_SLEEPTIME = 0.05  # seconds to wait while waiting for a response in asynchronous strategies - configurable parameter
-RESPONSE_WAITING_TIMEOUT = 20  # waiting timeout for receiving a response in asynchronous strategies - configurable parameter
-SOCKET_SIZE = 4096  # socket byte size - configurable parameter
-CHECK_AVAILABILITY_TIMEOUT = 2.5  # default timeout for socket connect when checking availability - configurable parameter
-
-# restartable strategy
-RESTARTABLE_SLEEPTIME = 2  # time to wait in a restartable strategy before retrying the request - configurable parameter
-RESTARTABLE_TRIES = 30  # number of times to retry in a restartable strategy before giving up. Set to True for unlimited retries - configurable parameter
-
-# reusable strategies (Threaded)
-TERMINATE_REUSABLE = 'TERMINATE_REUSABLE_CONNECTION'
-REUSABLE_THREADED_POOL_SIZE = 10  # configurable parameter
-REUSABLE_THREADED_LIFETIME = 3600  # 1 hour - configurable parameter
-DEFAULT_THREADED_POOL_NAME = 'reusable_default_pool'
-
-# LDAP protocol
-LDAP_MAX_INT = 2147483647
-
-# LDIF
-LDIF_LINE_LENGTH = 78
-
 # Hashed password
 HASHED_NONE = 'PLAIN'
 HASHED_SHA = 'SHA'
@@ -172,267 +110,31 @@ HASHED_SALTED_SHA384 = 'SALTED_SHA384'
 HASHED_SALTED_SHA512 = 'SALTED_SHA512'
 HASHED_SALTED_MD5 = 'SALTED_MD5'
 
-# result codes
-RESULT_SUCCESS = 0
-RESULT_OPERATIONS_ERROR = 1
-RESULT_PROTOCOL_ERROR = 2
-RESULT_TIME_LIMIT_EXCEEDED = 3
-RESULT_SIZE_LIMIT_EXCEEDED = 4
-RESULT_COMPARE_FALSE = 5
-RESULT_COMPARE_TRUE = 6
-RESULT_AUTH_METHOD_NOT_SUPPORTED = 7
-RESULT_STRONGER_AUTH_REQUIRED = 8
-RESULT_REFERRAL = 10
-RESULT_ADMIN_LIMIT_EXCEEDED = 11
-RESULT_UNAVAILABLE_CRITICAL_EXTENSION = 12
-RESULT_CONFIDENTIALITY_REQUIRED = 13
-RESULT_SASL_BIND_IN_PROGRESS = 14
-RESULT_NO_SUCH_ATTRIBUTE = 16
-RESULT_UNDEFINED_ATTRIBUTE_TYPE = 17
-RESULT_INAPPROPRIATE_MATCHING = 18
-RESULT_CONSTRAINT_VIOLATION = 19
-RESULT_ATTRIBUTE_OR_VALUE_EXISTS = 20
-RESULT_INVALID_ATTRIBUTE_SYNTAX = 21
-RESULT_NO_SUCH_OBJECT = 32
-RESULT_ALIAS_PROBLEM = 33
-RESULT_INVALID_DN_SYNTAX = 34
-RESULT_ALIAS_DEREFERENCING_PROBLEM = 36
-RESULT_INAPPROPRIATE_AUTHENTICATION = 48
-RESULT_INVALID_CREDENTIALS = 49
-RESULT_INSUFFICIENT_ACCESS_RIGHTS = 50
-RESULT_BUSY = 51
-RESULT_UNAVAILABLE = 52
-RESULT_UNWILLING_TO_PERFORM = 53
-RESULT_LOOP_DETECTED = 54
-RESULT_NAMING_VIOLATION = 64
-RESULT_OBJECT_CLASS_VIOLATION = 65
-RESULT_NOT_ALLOWED_ON_NON_LEAF = 66
-RESULT_NOT_ALLOWED_ON_RDN = 67
-RESULT_ENTRY_ALREADY_EXISTS = 68
-RESULT_OBJECT_CLASS_MODS_PROHIBITED = 69
-RESULT_AFFECT_MULTIPLE_DSAS = 71
-RESULT_OTHER = 80
-RESULT_LCUP_RESOURCES_EXHAUSTED = 113
-RESULT_LCUP_SECURITY_VIOLATION = 114
-RESULT_LCUP_INVALID_DATA = 115
-RESULT_LCUP_UNSUPPORTED_SCHEME = 116
-RESULT_LCUP_RELOAD_REQUIRED = 117
-RESULT_CANCELED = 118
-RESULT_NO_SUCH_OPERATION = 119
-RESULT_TOO_LATE = 120
-RESULT_CANNOT_CANCEL = 121
-RESULT_ASSERTION_FAILED = 122
-RESULT_AUTHORIZATION_DENIED = 123
-RESULT_E_SYNC_REFRESH_REQUIRED = 4096
-
-RESULT_CODES = {
-    RESULT_SUCCESS: 'success',
-    RESULT_OPERATIONS_ERROR: 'operationsError',
-    RESULT_PROTOCOL_ERROR: 'protocolError',
-    RESULT_TIME_LIMIT_EXCEEDED: 'timeLimitExceeded',
-    RESULT_SIZE_LIMIT_EXCEEDED: 'sizeLimitExceeded',
-    RESULT_COMPARE_FALSE: 'compareFalse',
-    RESULT_COMPARE_TRUE: 'compareTrue',
-    RESULT_AUTH_METHOD_NOT_SUPPORTED: 'authMethodNotSupported',
-    RESULT_STRONGER_AUTH_REQUIRED: 'strongerAuthRequired',
-    RESULT_REFERRAL: 'referral',
-    RESULT_ADMIN_LIMIT_EXCEEDED: 'adminLimitExceeded',
-    RESULT_UNAVAILABLE_CRITICAL_EXTENSION: 'unavailableCriticalExtension',
-    RESULT_CONFIDENTIALITY_REQUIRED: 'confidentialityRequired',
-    RESULT_SASL_BIND_IN_PROGRESS: 'saslBindInProgress',
-    RESULT_NO_SUCH_ATTRIBUTE: 'noSuchAttribute',
-    RESULT_UNDEFINED_ATTRIBUTE_TYPE: 'undefinedAttributeType',
-    RESULT_INAPPROPRIATE_MATCHING: 'inappropriateMatching',
-    RESULT_CONSTRAINT_VIOLATION: 'constraintViolation',
-    RESULT_ATTRIBUTE_OR_VALUE_EXISTS: 'attributeOrValueExists',
-    RESULT_INVALID_ATTRIBUTE_SYNTAX: 'invalidAttributeSyntax',
-    RESULT_NO_SUCH_OBJECT: 'noSuchObject',
-    RESULT_ALIAS_PROBLEM: 'aliasProblem',
-    RESULT_INVALID_DN_SYNTAX: 'invalidDNSyntax',
-    RESULT_ALIAS_DEREFERENCING_PROBLEM: 'aliasDereferencingProblem',
-    RESULT_INAPPROPRIATE_AUTHENTICATION: 'inappropriateAuthentication',
-    RESULT_INVALID_CREDENTIALS: 'invalidCredentials',
-    RESULT_INSUFFICIENT_ACCESS_RIGHTS: 'insufficientAccessRights',
-    RESULT_BUSY: 'busy',
-    RESULT_UNAVAILABLE: 'unavailable',
-    RESULT_UNWILLING_TO_PERFORM: 'unwillingToPerform',
-    RESULT_LOOP_DETECTED: 'loopDetected',
-    RESULT_NAMING_VIOLATION: 'namingViolation',
-    RESULT_OBJECT_CLASS_VIOLATION: 'objectClassViolation',
-    RESULT_NOT_ALLOWED_ON_NON_LEAF: 'notAllowedOnNonLeaf',
-    RESULT_NOT_ALLOWED_ON_RDN: 'notAllowedOnRDN',
-    RESULT_ENTRY_ALREADY_EXISTS: 'entryAlreadyExists',
-    RESULT_OBJECT_CLASS_MODS_PROHIBITED: 'objectClassModsProhibited',
-    RESULT_AFFECT_MULTIPLE_DSAS: 'affectMultipleDSAs',
-    RESULT_OTHER: 'other',
-    RESULT_LCUP_RESOURCES_EXHAUSTED: 'lcupResourcesExhausted',
-    RESULT_LCUP_SECURITY_VIOLATION: 'lcupSecurityViolation',
-    RESULT_LCUP_INVALID_DATA: 'lcupInvalidData',
-    RESULT_LCUP_UNSUPPORTED_SCHEME: 'lcupUnsupportedScheme',
-    RESULT_LCUP_RELOAD_REQUIRED: 'lcupReloadRequired',
-    RESULT_CANCELED: 'canceled',
-    RESULT_NO_SUCH_OPERATION: 'noSuchOperation',
-    RESULT_TOO_LATE: 'tooLate',
-    RESULT_CANNOT_CANCEL: 'cannotCancel',
-    RESULT_ASSERTION_FAILED: 'assertionFailed',
-    RESULT_AUTHORIZATION_DENIED: 'authorizationDenied',
-    RESULT_E_SYNC_REFRESH_REQUIRED: 'e-syncRefreshRequired'
-}
-
-# do not raise exception for (in raise_exceptions connection mode)
-DO_NOT_RAISE_EXCEPTIONS = [RESULT_SUCCESS, RESULT_COMPARE_FALSE, RESULT_COMPARE_TRUE, RESULT_REFERRAL]
+NUMERIC_TYPES = (int, float)
 
 # types for string and sequence
-if str != bytes:  # python 3
+if str is not bytes:  # Python 3
     STRING_TYPES = (str, )
-else:  # python 2
-    STRING_TYPES = (str, unicode)
+    SEQUENCE_TYPES = (set, list, tuple, GeneratorType, type(dict().keys()))  # dict.keys() is a iterable memoryview in Python 3
+else:  # Python 2
+    try:
+        from future.types.newstr import newstr
+    except ImportError:
+        pass
 
-from types import GeneratorType
-SEQUENCE_TYPES = (list, tuple, GeneratorType)
-
-# older and longer constants
-AUTH_ANONYMOUS = ANONYMOUS
-AUTH_SIMPLE = SIMPLE
-AUTH_SASL = SASL
-
-SEARCH_SCOPE_BASE_OBJECT = BASE
-SEARCH_SCOPE_SINGLE_LEVEL = LEVEL
-SEARCH_SCOPE_WHOLE_SUBTREE = SUBTREE
-
-SEARCH_NEVER_DEREFERENCE_ALIASES = DEREF_NEVER
-SEARCH_DEREFERENCE_IN_SEARCHING = DEREF_SEARCH
-SEARCH_DEREFERENCE_FINDING_BASE_OBJECT = DEREF_BASE
-SEARCH_DEREFERENCE_ALWAYS = DEREF_ALWAYS
-
-STRATEGY_SYNC = SYNC
-STRATEGY_ASYNC_THREADED = ASYNC
-STRATEGY_LDIF_PRODUCER = LDIF
-STRATEGY_SYNC_RESTARTABLE = RESTARTABLE
-STRATEGY_REUSABLE_THREADED = REUSABLE
-STRATEGY_MOCK_SYNC = MOCK_SYNC
-STRATEGY_MOCK_ASYNC = MOCK_SYNC
-
-POOLING_STRATEGY_FIRST = FIRST
-POOLING_STRATEGY_ROUND_ROBIN = ROUND_ROBIN
-POOLING_STRATEGY_RANDOM = RANDOM
-
-GET_NO_INFO = NONE
-GET_DSA_INFO = DSA
-GET_SCHEMA_INFO = SCHEMA
-GET_ALL_INFO = ALL
-
-
-def get_config_parameter(parameter):
-    if parameter == 'CASE_INSENSITIVE_ATTRIBUTE_NAMES':
-        return CASE_INSENSITIVE_ATTRIBUTE_NAMES
-    elif parameter == 'CASE_INSENSITIVE_SCHEMA_NAMES':
-        return CASE_INSENSITIVE_SCHEMA_NAMES
-    elif parameter == 'ABSTRACTION_OPERATIONAL_ATTRIBUTE_PREFIX':
-        return ABSTRACTION_OPERATIONAL_ATTRIBUTE_PREFIX
-    elif parameter == 'POOLING_LOOP_TIMEOUT':
-        return POOLING_LOOP_TIMEOUT
-    elif parameter == 'RESPONSE_SLEEPTIME':
-        return RESPONSE_SLEEPTIME
-    elif parameter == 'RESPONSE_WAITING_TIMEOUT':
-        return RESPONSE_WAITING_TIMEOUT
-    elif parameter == 'SOCKET_SIZE':
-        return SOCKET_SIZE
-    elif parameter == 'CHECK_AVAILABILITY_TIMEOUT':
-        return CHECK_AVAILABILITY_TIMEOUT
-    elif parameter == 'RESTARTABLE_SLEEPTIME':
-        return RESTARTABLE_SLEEPTIME
-    elif parameter == 'RESTARTABLE_TRIES':
-        return RESTARTABLE_TRIES
-    elif parameter == 'REUSABLE_THREADED_POOL_SIZE':
-        return REUSABLE_THREADED_POOL_SIZE
-    elif parameter == 'REUSABLE_THREADED_LIFETIME':
-        return REUSABLE_THREADED_LIFETIME
-    elif parameter == 'DEFAULT_THREADED_POOL_NAME':
-        return DEFAULT_THREADED_POOL_NAME
-
-    raise LDAPConfigurationParameterError('configuration parameter %s not valid' % parameter)
-
-
-def set_config_parameter(parameter, value):
-    if parameter == 'CASE_INSENSITIVE_ATTRIBUTE_NAMES':
-        global CASE_INSENSITIVE_ATTRIBUTE_NAMES
-        CASE_INSENSITIVE_ATTRIBUTE_NAMES = value
-    elif parameter == 'CASE_INSENSITIVE_SCHEMA_NAMES':
-        global CASE_INSENSITIVE_SCHEMA_NAMES
-        CASE_INSENSITIVE_SCHEMA_NAMES = value
-    elif parameter == 'ABSTRACTION_OPERATIONAL_ATTRIBUTE_PREFIX':
-        global ABSTRACTION_OPERATIONAL_ATTRIBUTE_PREFIX
-        ABSTRACTION_OPERATIONAL_ATTRIBUTE_PREFIX = value
-    elif parameter == 'POOLING_LOOP_TIMEOUT':
-        global POOLING_LOOP_TIMEOUT
-        POOLING_LOOP_TIMEOUT = value
-    elif parameter == 'RESPONSE_SLEEPTIME':
-        global RESPONSE_SLEEPTIME
-        RESPONSE_SLEEPTIME = value
-    elif parameter == 'RESPONSE_WAITING_TIMEOUT':
-        global RESPONSE_WAITING_TIMEOUT
-        RESPONSE_WAITING_TIMEOUT = value
... 18159 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-ldap3.git



More information about the Python-modules-commits mailing list