snowflakedb / snowflakedb/snowpark-python
SNOW-3010254: Move snowflake.* packages to PEP 420 implicit namespace packages (remove `.pth`-based namespace bootstrap)
@sfc-gh-yixie is already working on this.
Since Jan 20, 2026.
- Dominant language
- Python
- Stars
- 341
- Forks
- 155
- Avg merge
- 4d 16h
- Merged PRs (30d)
- 27
Description
Snowflake packages (e.g. snowflake-snowpark-python, snowflake-connector-python) currently rely on setuptools legacy namespace packages, implemented via auto-generated *-nspkg.pth files in site-packages.
Example installed artifact snowflake_snowpark_python-1.39.0-py3.12-nspkg.pth.
This .pth file executes code at interpreter startup to synthesize the snowflake namespace and mutate sys.modules / __path__.
It would be nice to migrate snowflake.* packages to PEP 420 implicit namespace packages, specifically:
- Remove
namespace_packages = ["snowflake"]and any setuptools legacy namespace configuration - Ensure no
snowflake/__init__.pyexists in any distribution, all Snowflake subpackages rely on implicit namespace resolution, and stop shipping*-nspkg.pthfiles in wheels
This would make Snowflake packages behave like modern namespace ecosystems (e.g. google.*).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.