Replace deprecated pkgutil.find_loader with importlib.util.find_spec #31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
pkgutil.find_loader was deprecated in Python 3.12. At the moment Python just emits a warning, but in Python 3.14, pkgutil.find_loader will be removed. This PR replaces pkgutil.find_loader with the recommended substitute importlib.util.find_spec.
This will break idfx on installations that have Python <= 3.4. I don't think this will be a problem, given that the latest version of esptool requires Python >= 3.7. But I can imagine there might be migrated installations out there using old versions of Python and esptool, so here's something for the search engines:
If you're getting
ModuleNotFoundError: No module named 'importlib.util'
orAttributeError: module 'importlib.util' has no attribute 'find_spec'
when running idfx, your Windows-side (i.e. not within WSL2) Python installation is too old. Upgrade it to Python >= 3.4.