Skip to content

SNOW-3227155: Feature to avoid installing \"boto\" dependencies does not work with package managers like \"uv\" and \"poetry\" #2786

@ndamclean

Description

@ndamclean

What is the current behavior?

SNOW-2107016: boto3 and botocore are unconditional dependencies in latest release 3.15.0 (#2323)

The implementation to avoid installing boto dependencies using the "SNOWFLAKE_NO_BOTO" environment variable does not work with package managers like "uv" and "poetry"

Commands to install package with uv: (also tested with poetry)

uv init
export SNOWFLAKE_NO_BOTO=true
uv add snowflake-connector-python

output (installs boto3 and botocore)

Initialized project `test`
Using CPython 3.12.11
Creating virtual environment at: .venv
Resolved 26 packages in 370ms
Prepared 10 packages in 426ms
Installed 25 packages in 30ms
 + asn1crypto==1.5.1
 + boto3==1.42.66
 + botocore==1.42.66
 + certifi==2026.2.25
 + cffi==2.0.0
 + charset-normalizer==3.4.5
 + cryptography==46.0.5
 + filelock==3.25.2
 + idna==3.11
 + jmespath==1.1.0
 + packaging==26.0
 + platformdirs==4.9.4
 + pycparser==3.0
 + pyjwt==2.11.0
 + pyopenssl==25.3.0
 + python-dateutil==2.9.0.post0
 + pytz==2026.1.post1
 + requests==2.32.5
 + s3transfer==0.16.0
 + six==1.17.0
 + snowflake-connector-python==4.3.0
 + sortedcontainers==2.4.0
 + tomlkit==0.14.0
 + typing-extensions==4.15.0
 + urllib3==2.6.3

What is the desired behavior?

Users of package managers like uv and poetry should be able to add the python snowflake connector without the additional boto dependencies.

This seems like the perfect use case for the "default extras" (PEP 771) proposal. However that is "draft" status only at the time of writing this ticket.

The boto library dependencies could be made optional extras in the next major release. But if only a small minority of users don't use AWS that may not be desirable.

How would this improve snowflake-connector-python?

Making these dependencies optional would avoid forcing users to install large SDKs they don't use and would allow for leaner deployments.

References and other background

No response

Metadata

Metadata

Labels

featurestatus-triage_doneInitial triage done, will be further handled by the driver team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions