As part of #4470, configobj was updated to a 5.1.0dev commit. Since Python 3 transition preparation was in the works then, there has not been any test done to make sure configobj is ready for newer Python 3 releases. In 2020, things have changed, with NVDA running on Python 3.7 and configobj has been updated to provide better support for Python 3.7 and resolving errors.
Is your feature request related to a problem? Please describe.
Config imports collections.abc.Mapping class. In Python 2, it was okay to import collections.Mapping directly, which is no longer the case in Python 3.3 and later. IN fact, Python 3.9 will prevent direct import of abstract base collection classes, affecting configobj.
Along with this change, current version of configobj (shipping iwth NVDA 2020.1) does not support Python 3.7 properly - assumes Python 3.4 is the latest version compatible.
Describe the solution you'd like
Update configobj to 5.1.0dev commit f9a265c4 (December 8, 2019). This includes:
Improved support for Python 3.7.
Mapping class will be imported from collections.abc if running on Python 3.4 or later.
Path-like object is supported when specifying confspec and opening config files.
Describe alternatives you've considered
Leave configobj as is.
Not only this change would make configobj compliant with Python 3.7, it would also make it easier for NVDA to update to newer Python releases with a dependency that has been proven to work with newer Python releases.
Note that since configobj is a crucial dependency, extensive regression testing must be performed, including reading and writing NVDA and add-on settings across versions with and without the new configobj commits.
The text was updated successfully, but these errors were encountered: