You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are after a list of potential projects that could work with Python under WASI. There's essentially 6 layers to this, each one more specific than the previous, but all accurate for what they claim:
All projects on PyPI
Projects on PyPI that have a pure Python wheel
Projects who only have dependencies that are pure Python wheels
Importation of the top-level project succeeds
Test suite passes
Projects declare their support
We can calculate layers 1 and 2 easily thanks to https://github.com/sethmlarson/pypi-data (although with slightly outdated data). We can calculate layer 2 with sqlite3 pypi.db 'SELECT DISTINCT package_name FROM wheels WHERE python = "py3" OR python = "py2.py3" ORDER BY package_ name ASC' > project_with_pure_wheels.txt.
Layer 3 requires writing a resolver which can resolve for a specific environment and only for specific wheel tags (which helps out with lock files, but it's still work). Layer 4 probably can be automated with introspection inside wheel files and importing module(s) based on what's found in them (luckily WASI is sandboxed, so this should actually be a safe operation). Layer 5 will either have to be some crazy set of heuristics or we accept it as being a per-project thing (plus being able to actually run pytest under WASI). And for layer 6, I have opened https://discuss.python.org/t/do-we-want-classifiers-for-webassembly-on-pypi/22712 to discuss it with the community.
The text was updated successfully, but these errors were encountered:
We are after a list of potential projects that could work with Python under WASI. There's essentially 6 layers to this, each one more specific than the previous, but all accurate for what they claim:
We can calculate layers 1 and 2 easily thanks to https://github.com/sethmlarson/pypi-data (although with slightly outdated data). We can calculate layer 2 with
sqlite3 pypi.db 'SELECT DISTINCT package_name FROM wheels WHERE python = "py3" OR python = "py2.py3" ORDER BY package_ name ASC' > project_with_pure_wheels.txt
.Layer 3 requires writing a resolver which can resolve for a specific environment and only for specific wheel tags (which helps out with lock files, but it's still work). Layer 4 probably can be automated with introspection inside wheel files and importing module(s) based on what's found in them (luckily WASI is sandboxed, so this should actually be a safe operation). Layer 5 will either have to be some crazy set of heuristics or we accept it as being a per-project thing (plus being able to actually run pytest under WASI). And for layer 6, I have opened https://discuss.python.org/t/do-we-want-classifiers-for-webassembly-on-pypi/22712 to discuss it with the community.
The text was updated successfully, but these errors were encountered: