Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Letsql use maturin as the build-backend. To handle our dependencies, we use poetry. Currently and in the future, maturin does not recognize the dependencies specified by poetry. See this issue:
PyO3/maturin#632
It also does not provide an alternative way to support dynamic dependencies. The following issue is still open.
PyO3/maturin#1537
On the other side, poetry will support PEP-621 project style dependencies in version 2.0
python-poetry/poetry#3332
Therefore, one simple solution is to duplicate the dependencies section, as in the package:
https://github.com/tmtenbrink/rustfrc/blob/main/pyproject.toml
To do so, a semi-automated approach is used to generate the dependencies using
poetry export
.Then, update the dependencies section in the
pyproject.toml
file.For more details on how to express poetry optional dependencies as PEP-621 optional dependencies, see the following resources:
https://astarvienna.github.io/howtotoml.html#extras https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#dependencies-and-requirements https://python-poetry.org/docs/pyproject/#extras
Additionally, this commit solves a few inconsistencies regarding packages listed as optional (duckdb, ibis), but it raises an
ImportError
when running the code.See the
penguins_example.py
for code that was raisingImportError