blob: 1f5b4e305bbf9ffdaa3d3f1a33d76873d94fd442 [file]
# 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 }
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",
] }
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"]