Skip to content

Update configobj to 5.1.0dev commit f9a265c4 #10939

@josephsl

Description

@josephsl

Hi,

For future Python compatibility:

Background:

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.

Additional context

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.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions