Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only use importlib.resources's new files() / Traversable API on Python ≥3.11 #204

Merged
merged 1 commit into from
Sep 13, 2022

Commits on Sep 13, 2022

  1. Only use importlib.resources's new files() / Traversable API on Pytho…

    …n ≥3.11
    
    Using importlib.resource's files() API on 3.9 and 3.10 causes a
    TypeError on 3.9 and a ValueError on 3.10 when running under a
    third-party meta path importer (like PyOxidizer's OxidizedImporter) that
    doesn't support the relatively-new API.  This is because the full
    adapter layer (importlib.resources._adapters) for the older importlib
    resources API doesn't exist until Python 3.11.
    
    The older resources API is now used by 3.7–3.10, as it was prior to the
    certifi 2022.06.15.1 release.  This codepath has existed in certifi
    since April 2020 (3fc8fec).
    
    An alternative to this change would be testing the actual importer in
    use at runtime (e.g. certifi.__loader__) for files() support, but that
    seemed more complex than reverting to the previous codepath here.
    
    Resolves: certifi#203
    Related-to: certifi#199
    Related-to: certifi#123
    tsibley committed Sep 13, 2022
    Configuration menu
    Copy the full SHA
    38e727c View commit details
    Browse the repository at this point in the history