Skip to content

Commit d19a49e

Browse files
committed
Break up the repository into a workspace with three crates
1 parent 8ef2cd7 commit d19a49e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+284
-115
lines changed

Cargo.lock

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 29 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
[package]
19-
name = "datafusion-python"
18+
[workspace.package]
2019
version = "52.0.0"
2120
homepage = "https://datafusion.apache.org/python"
2221
repository = "https://github.com/apache/datafusion-python"
@@ -26,67 +25,43 @@ readme = "README.md"
2625
license = "Apache-2.0"
2726
edition = "2024"
2827
rust-version = "1.88"
29-
include = [
30-
"/src",
31-
"/datafusion",
32-
"/LICENSE.txt",
33-
"build.rs",
34-
"pyproject.toml",
35-
"Cargo.toml",
36-
"Cargo.lock",
37-
]
3828

39-
[features]
40-
default = ["mimalloc"]
41-
protoc = ["datafusion-substrait/protoc"]
42-
substrait = ["dep:datafusion-substrait"]
4329

44-
[dependencies]
45-
tokio = { version = "1.49", features = [
46-
"macros",
47-
"rt",
48-
"rt-multi-thread",
49-
"sync",
50-
] }
51-
pyo3 = { version = "0.28", features = [
52-
"extension-module",
53-
"abi3",
54-
"abi3-py310",
55-
] }
56-
pyo3-async-runtimes = { version = "0.28", features = ["tokio-runtime"] }
30+
[workspace]
31+
members = ["crates/core", "crates/util", "examples/datafusion-ffi-example"]
32+
33+
[workspace.dependencies]
34+
tokio = { version = "1.49" }
35+
pyo3 = { version = "0.28" }
36+
pyo3-async-runtimes = { version = "0.28" }
5737
pyo3-log = "0.13.3"
58-
arrow = { version = "58", features = ["pyarrow"] }
38+
arrow = { version = "58" }
39+
arrow-array = { version = "58" }
40+
arrow-schema = { version = "58" }
5941
arrow-select = { version = "58" }
60-
datafusion = { version = "53", features = ["avro", "unicode_expressions"] }
61-
datafusion-substrait = { version = "53", optional = true }
42+
datafusion = { version = "53" }
43+
datafusion-substrait = { version = "53" }
6244
datafusion-proto = { version = "53" }
6345
datafusion-ffi = { version = "53" }
64-
prost = "0.14.3" # keep in line with `datafusion-substrait`
46+
datafusion-catalog = { version = "53", default-features = false }
47+
datafusion-common = { version = "53", default-features = false }
48+
datafusion-functions-aggregate = { version = "53" }
49+
datafusion-functions-window = { version = "53" }
50+
datafusion-expr = { version = "53" }
51+
prost = "0.14.3"
6552
serde_json = "1"
66-
uuid = { version = "1.21", features = ["v4"] }
67-
mimalloc = { version = "0.1", optional = true, default-features = false, features = [
68-
"local_dynamic_tls",
69-
] }
53+
uuid = { version = "1.21" }
54+
mimalloc = { version = "0.1", default-features = false }
7055
async-trait = "0.1.89"
7156
futures = "0.3"
7257
cstr = "0.2"
73-
object_store = { version = "0.13.1", features = [
74-
"aws",
75-
"gcp",
76-
"azure",
77-
"http",
78-
] }
58+
object_store = { version = "0.13.1" }
7959
url = "2"
8060
log = "0.4.29"
8161
parking_lot = "0.12"
82-
83-
[build-dependencies]
84-
prost-types = "0.14.3" # keep in line with `datafusion-substrait`
62+
prost-types = "0.14.3" # keep in line with `datafusion-substrait`
8563
pyo3-build-config = "0.28"
86-
87-
[lib]
88-
name = "datafusion_python"
89-
crate-type = ["cdylib", "rlib"]
64+
datafusion-python-util = { path = "crates/util" }
9065

9166
[profile.release]
9267
lto = true
@@ -99,3 +74,8 @@ datafusion = { git = "https://github.com/apache/datafusion.git", rev = "51856024
9974
datafusion-substrait = { git = "https://github.com/apache/datafusion.git", rev = "518560246e87d489eba6d511fa167aa429b06728" }
10075
datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "518560246e87d489eba6d511fa167aa429b06728" }
10176
datafusion-ffi = { git = "https://github.com/apache/datafusion.git", rev = "518560246e87d489eba6d511fa167aa429b06728" }
77+
datafusion-catalog = { git = "https://github.com/apache/datafusion.git", rev = "518560246e87d489eba6d511fa167aa429b06728" }
78+
datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "518560246e87d489eba6d511fa167aa429b06728" }
79+
datafusion-functions-aggregate = { git = "https://github.com/apache/datafusion.git", rev = "518560246e87d489eba6d511fa167aa429b06728" }
80+
datafusion-functions-window = { git = "https://github.com/apache/datafusion.git", rev = "518560246e87d489eba6d511fa167aa429b06728" }
81+
datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "518560246e87d489eba6d511fa167aa429b06728" }

crates/core/Cargo.toml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
[package]
19+
name = "datafusion-python"
20+
version.workspace = true
21+
edition.workspace = true
22+
rust-version.workspace = true
23+
license.workspace = true
24+
include = [
25+
"src",
26+
"datafusion",
27+
"../LICENSE.txt",
28+
"build.rs",
29+
"../pyproject.toml",
30+
"Cargo.toml",
31+
"../Cargo.lock",
32+
]
33+
34+
[dependencies]
35+
tokio = { workspace = true, features = [
36+
"macros",
37+
"rt",
38+
"rt-multi-thread",
39+
"sync",
40+
] }
41+
pyo3 = { workspace = true, features = [
42+
"extension-module",
43+
"abi3",
44+
"abi3-py310",
45+
] }
46+
pyo3-async-runtimes = { workspace = true, features = ["tokio-runtime"] }
47+
pyo3-log = { workspace = true }
48+
arrow = { workspace = true, features = ["pyarrow"] }
49+
arrow-select = { workspace = true }
50+
datafusion = { workspace = true, features = ["avro", "unicode_expressions"] }
51+
datafusion-substrait = { workspace = true, optional = true }
52+
datafusion-proto = { workspace = true }
53+
datafusion-ffi = { workspace = true }
54+
prost = { workspace = true } # keep in line with `datafusion-substrait`
55+
serde_json = { workspace = true }
56+
uuid = { workspace = true, features = ["v4"] }
57+
mimalloc = { workspace = true, optional = true, features = [
58+
"local_dynamic_tls",
59+
] }
60+
async-trait = { workspace = true }
61+
futures = { workspace = true }
62+
cstr = { workspace = true }
63+
object_store = { workspace = true, features = [
64+
"aws",
65+
"gcp",
66+
"azure",
67+
"http",
68+
] }
69+
url = { workspace = true }
70+
log = { workspace = true }
71+
parking_lot = { workspace = true }
72+
datafusion-python-util = { workspace = true }
73+
74+
[build-dependencies]
75+
prost-types = { workspace = true }
76+
pyo3-build-config = { workspace = true }
77+
78+
[features]
79+
default = ["mimalloc"]
80+
protoc = ["datafusion-substrait/protoc"]
81+
substrait = ["dep:datafusion-substrait"]
82+
83+
[lib]
84+
name = "datafusion_python"
85+
crate-type = ["cdylib", "rlib"]
86+
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)