blue-yonder / turbodbc

Turbodbc is a Python module to access relational databases via the Open Database Connectivity (ODBC) interface. The module complies with the Python Database API Specification 2.0.
http://turbodbc.readthedocs.io/en/latest
MIT License
607 stars 85 forks source link

Turbodbc + pyarrow installation issue #422

Closed zacqed closed 2 months ago

zacqed commented 2 months ago

With introduction of every new version of pyarrow, the following error comes till turbodbc is not updated to allow for this. Somewhere the dependency resolution seems be causing this problem:


pip install turbodbc[pyarrow]
Collecting turbodbc[pyarrow]
  Downloading turbodbc-4.11.0.tar.gz (84 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.5/84.5 kB 2.3 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done

ERROR: Some build dependencies for turbodbc[pyarrow] from https://files.pythonhosted.org/packages/cf/5b/4380fb4d10393df81d84889df94915c82dd59d7a4c8ae5d91739ea72b698/turbodbc-4.11.0.tar.gz conflict with the backend dependencies: **_pyarrow==16.0.0 is incompatible with pyarrow>=7,<16_**.

This happens even if we declare pyarrow==15.0.0, is there a way to fix this resolution?

zacqed commented 2 months ago

4.8.1 introduced pyproject.toml

https://github.com/blue-yonder/turbodbc/blob/12637eb448ab57be3a657bb4a51632ccec8679b1/pyproject.toml#L1C1-L3C1

[build-system]
requires = ['setuptools', 'wheel', 'pyarrow>=7', 'pybind11', 'oldest-supported-numpy']

should be changed to

[build-system]
requires = ['setuptools', 'wheel', 'pyarrow>=7,<16', 'pybind11', 'oldest-supported-numpy']

This should fix this.

zacqed commented 2 months ago

@xhochy - Would you be able to look at this. With release of pyarrow 16.0, installation using pip is throwing errors. Apologies for the rush.

xhochy commented 2 months ago

You will need to provide a PR like https://github.com/blue-yonder/turbodbc/pull/414 but this depends on the pyarrow release on conda-forge which will take a bit more time this time as we are splitting that package up to provide a smaller footprint.

zacqed commented 2 months ago

You will need to provide a PR like https://github.com/blue-yonder/turbodbc/pull/414 but this depends on the pyarrow release on conda-forge which will take a bit more time this time as we are splitting that package up to provide a smaller footprint.

Would it be possible till then to restrict pyarrow version in the . toml.file to <16?

xhochy commented 2 months ago

Yes. Please make a PR.

xhochy commented 2 months ago

Released as 4.11.1