Issue description:
Getting AttributeError: module 'base64' has no attribute 'decodestring' error while running on python 3.9.6
Steps to reproduce:
Below is a dummy program, while running on python 3.9.6, I am getting `AttributeError: module 'base64' has no attribute 'decodestring'`` error:
from ldif3 import LDIFParser
parser = LDIFParser(open('dse3.ldif', 'rb'))
for dn, entry in parser.parse():
if dn == "cn=Schema Compatibility,cn=plugins,cn=config":
if entry['nsslapd-pluginEnabled'] == ['on']:
print('Entry record: %s' % dn)
Error message:
python3.9 1.py ✔ venvpy3.9 11:12:01
Traceback (most recent call last):
File "/Users/rasrivas/local_test/1.py", line 4, in <module>
for dn, entry in parser.parse():
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 384, in parse
yield self._parse_entry_record(block)
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 357, in _parse_entry_record
attr_type, attr_value = self._parse_attr(line)
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 315, in _parse_attr
attr_value = base64.decodestring(line[colon_pos + 2:])
AttributeError: module 'base64' has no attribute 'decodestring'
python version
python --version
Python 3.9.6
Operating system:
macOS 11.5.2
Python version:
python --version
Python 3.9.6
python-ldap version:
ldif3-3.2.2
From the docs for Python 3.8, base64.decodestring() is described as a:
Deprecated alias of decodebytes().
It looks like the base64.decodestring() function has been deprecated since Python 3.1, and removed in Python 3.9. You will want to use the bas64.decodebytes() function instead.
decodestring() no longer exists from v 3.9. Checkout this docs, use base64.decodebytes() instead
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With