| # Licensed to the Apache Software Foundation (ASF) under one | |
| # or more contributor license agreements. See the NOTICE file | |
| # distributed with this work for additional information | |
| # regarding copyright ownership. The ASF licenses this file | |
| # to you under the Apache License, Version 2.0 (the | |
| # "License"); you may not use this file except in compliance | |
| # with the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, | |
| # software distributed under the License is distributed on an | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| # KIND, either express or implied. See the License for the | |
| # specific language governing permissions and limitations | |
| # under the License. | |
| [package] | |
| name = "datafusion-python" | |
| version.workspace = true | |
| edition.workspace = true | |
| rust-version.workspace = true | |
| license.workspace = true | |
| description.workspace = true | |
| homepage.workspace = true | |
| repository.workspace = true | |
| include = [ | |
| "src", | |
| "../LICENSE.txt", | |
| "build.rs", | |
| "../pyproject.toml", | |
| "Cargo.toml", | |
| "../Cargo.lock", | |
| ] | |
| [dependencies] | |
| tokio = { workspace = true, features = [ | |
| "macros", | |
| "rt", | |
| "rt-multi-thread", | |
| "sync", | |
| ] } | |
| pyo3 = { workspace = true, features = [ | |
| "extension-module", | |
| "generate-import-lib", | |
| ] } | |
| pyo3-async-runtimes = { workspace = true, features = ["tokio-runtime"] } | |
| pyo3-log = { workspace = true } | |
| chrono = { workspace = true } | |
| arrow = { workspace = true, features = ["pyarrow"] } | |
| arrow-select = { workspace = true } | |
| datafusion = { workspace = true, features = ["avro", "unicode_expressions"] } | |
| datafusion-substrait = { workspace = true, optional = true } | |
| datafusion-proto = { workspace = true } | |
| datafusion-ffi = { workspace = true } | |
| datafusion-spark = { workspace = true, features = ["core"] } | |
| prost = { workspace = true } # keep in line with `datafusion-substrait` | |
| serde_json = { workspace = true } | |
| uuid = { workspace = true, features = ["v4"] } | |
| mimalloc = { workspace = true, optional = true, features = [ | |
| "local_dynamic_tls", | |
| # Pin to mimalloc v2 until apache/datafusion-python#1607 resolves. | |
| "v2", | |
| ] } | |
| async-trait = { workspace = true } | |
| futures = { workspace = true } | |
| cstr = { workspace = true } | |
| object_store = { workspace = true, features = ["aws", "gcp", "azure", "http"] } | |
| url = { workspace = true } | |
| log = { workspace = true } | |
| parking_lot = { workspace = true } | |
| datafusion-python-util = { workspace = true } | |
| [build-dependencies] | |
| prost-types = { workspace = true } | |
| pyo3-build-config = { workspace = true } | |
| [features] | |
| default = ["mimalloc", "abi3"] | |
| # Stable ABI build — single wheel covers Python 3.10..3.14 (GIL builds only). | |
| # Mutually exclusive with free-threaded interpreters (cp313t / cp314t); the | |
| # free-threaded wheel build must pass --no-default-features. | |
| abi3 = ["pyo3/abi3", "pyo3/abi3-py310"] | |
| protoc = ["datafusion-substrait/protoc"] | |
| substrait = ["dep:datafusion-substrait"] | |
| [lib] | |
| name = "datafusion_python" | |
| crate-type = ["cdylib", "rlib"] |