snowflakedb / snowflake-connector-python

Snowflake Connector for Python
https://pypi.python.org/pypi/snowflake-connector-python/
Apache License 2.0
588 stars 470 forks source link

SNOW-631739: `setup.cfg` does not pin pyarrow properly #1199

Closed TNonet closed 2 years ago

TNonet commented 2 years ago

Pyarrow may not be pinned properly in setup.cfg.

It current is in [options.extras_require] for pandas but I believe it should be in install_requires section?

This is preventing poetry from detecting that dependency incompatibilities between pyarrow and snowflake-connector-python

MWE:

poetry new snwflke
cd snwflke
poetry add pyarrow==7.0.0
poetry add snowflake-connector-python==2.7.9

In the lock poetry.lock file, the only pin on pyarrow is in this extra.

...
[package.extras]
development = ["cython", "coverage", "more-itertools", "numpy (<1.23.0)", "pendulum (!=2.1.1)", "pexpect", "pytest (<7.2.0)", "pytest-cov", "pytest-rerunfailures", "pytest-timeout", "pytest-xdist", "pytzdata"]
pandas = ["pandas (>=1.0.0,<1.5.0)", "pyarrow (>=6.0.0,<6.1.0)"]
secure-local-storage = ["keyring (!=16.1.0,<24.0.0)"]
...

However, now using snowflake.connector.connect will segfault.

sfc-gh-mkeller commented 2 years ago

Hi @TNonet You need to request our optional dependency group when you install snowflake-connector-python Instead of poetry add snowflake-connector-python==2.7.9 use poetry add "snowflake-connector-python[pandas]==2.7.9"