Open kdmccormick opened 1 year ago
After reading the related docs/blogs shared below I think we should choose importlib_resources library which is developed and maintained by Python developers and fixes the architecture issues related to importlib.resources module which is going to be deprecated in Python 3.11 as discussed here
Docs/Blogs https://discuss.python.org/t/deprecating-importlib-resources-legacy-api/11386 https://importlib-resources.readthedocs.io/en/latest/using.html https://docs.python.org/3/library/importlib.resources.html https://www.geeksforgeeks.org/importlib-package-in-python/ https://dev.to/bowmanjd/easily-load-non-python-data-files-from-a-python-package-2e8g
FYI @kdmccormick @feanil
@farhan , thanks for the research. I took a look at the Python forum post and came to the conclusion that:
pkg_resources
is what we use now. It is deprecated but will still work in Python 3.11.importlib.resources
was introduced in Python 3.7, but its API had design problems.importlib_resources
is a better, redesigned version of that API, available in Python 3.3+.importlib_resources
becomes official, as importlib.resources
, thus deprecating the old, problematic version of the API.So, it sounds like we could wait until edx-platform is upgraded to Python 3.11, and then just switch directly to the new, official importlib.resources
package. Does that sound good?
As an additional note, it looks like pkg_resources is still around in 3.12 so it will be safe to jump to that as well so I think we can de-prioritize this until after the python upgrade which we'll hopefully kick-off soon.
PR is blocked as we are waiting for drop of Python v3.8
support from edx-platform
Background
The
pkg_resources
library, used by XBlock to load static assets, is deprecated. The removal timeline is unknown.xblock-utils uses
pkg_resources
in a couple places.To do
First, choose a new resource loading interface. Options:
importlib.resources
. Unfortunately, this will become deprecated in Python 3.11 and replaced with a yet-to-be-determined interface.Then:
Related