Skip to content

[Feature] Python 3.15 support: pyarrow cap and duckdb/jsonpath wheels #1111

Open

Description

@ldej

Is your feature request related to a problem? Please describe.

I would like to run Data Designer on CPython 3.15, and right now I cannot install it there without a full C and Rust toolchain, and even then one piece has no working build.

data-designer-engine 0.9.7 depends on four packages that need a wheel:

Requirement Pin in 0.9.7 cp315 wheel
duckdb >=1.5.0,<2 none; 1.5.6 stops at cp314, and 2.0.0 (21 Oct) currently publishes only cp311 and cp312
jsonpath-rust-bindings >=1.0,<2 none, Rust extension
pyarrow >=24,<25 none at 24, but 25 and 26 both ship cp315
numpy >=1.23.5,<3 fine from 2.5 on; 2.4 needs a source build

So uv sync on 3.15 compiles pyarrow, duckdb and a Rust extension, which is several minutes and needs cmake, a C++ toolchain and cargo in every image that embeds a pipeline, and the jsonpath extension has no cp315 build to fall back on even then.

Describe the solution you'd like

Support Python 3.15:

  • widen the pyarrow cap, ideally >=24,<27, so a version with a cp315 wheel can be resolved. I have not run your test suite against pyarrow 25 or 26, so I cannot say whether the cap is load-bearing; from the outside the other pinned floors allow it.
  • on the duckdb side, allowing duckdb>=2 would help once 2.0 completes its wheel matrix, since 2.0.0 currently ships only cp311 and cp312.
  • jsonpath-rust-bindings needs a cp315 wheel from its maintainer, or a pure-Python fallback.

If dropping the pyarrow cap for one minor line is too risky, a marker would be enough for us, for example pyarrow>=24,<25; python_version < "3.15" with pyarrow>=25,<27; python_version >= "3.15".

Describe alternatives you've considered

Staying on CPython 3.14, which is what we do today. We already moved the rest of our platform to 3.15, so Data Designer is the only component left behind, and it brings three source builds into otherwise wheel-only images.

Agent Investigation

Not a codebase investigation: the constraints above were read from the published metadata of data-designer 0.9.7 and data-designer-engine 0.9.7 on PyPI, and the wheel tags from the PyPI file listings for duckdb 1.5.6 and 2.0.0, pyarrow 24/25/26 and jsonpath-rust-bindings 1.1.1. No issue about 3.15 exists in this repository yet.

Additional context

Reproduced with uv on Linux x86_64, CPython 3.15.2, resolving data-designer>=0.9,<0.10 inside a project that also depends on shared internal packages. On 3.14 the same lock installs entirely from wheels.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions