Skip to content

Commit 6ecbd62

Browse files
authored
refactor: split num dependency (#8459)
# Which issue does this PR close? \- # Rationale for this change `num` is a meta-crate that bundles functionality of a bunch of `num-*` crates, similar to how `futures` work: ```text num v0.4.3 ├── num-bigint v0.4.6 │ ├── num-integer v0.1.46 │ │ └── num-traits v0.2.19 (*) │ └── num-traits v0.2.19 (*) ├── num-complex v0.4.6 │ └── num-traits v0.2.19 (*) ├── num-integer v0.1.46 (*) ├── num-iter v0.1.45 │ ├── num-integer v0.1.46 (*) │ └── num-traits v0.2.19 (*) │ [build-dependencies] │ └── autocfg v1.5.0 ├── num-rational v0.4.2 │ ├── num-bigint v0.4.6 (*) │ ├── num-integer v0.1.46 (*) │ └── num-traits v0.2.19 (*) └── num-traits v0.2.19 (*) ``` We don't need all these sub-crates but only a very specific set. So instead of using the meta-crate, let's use the actual things we need. # What changes are included in this PR? Dependency changes. # Are these changes tested? It still compiles. # Are there any user-facing changes? Faster compilation.
1 parent 56cdfa7 commit 6ecbd62

File tree

42 files changed

+81
-75
lines changed

Some content is hidden

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

42 files changed

+81
-75
lines changed

arrow-arith/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@ arrow-buffer = { workspace = true }
4141
arrow-data = { workspace = true }
4242
arrow-schema = { workspace = true }
4343
chrono = { workspace = true }
44-
num = { version = "0.4", default-features = false, features = ["std"] }
44+
num-traits = { version = "0.2.19", default-features = false, features = ["std"] }

arrow-arith/src/bitwise.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use crate::arity::{binary, unary};
2121
use arrow_array::*;
2222
use arrow_buffer::ArrowNativeType;
2323
use arrow_schema::ArrowError;
24-
use num::traits::{WrappingShl, WrappingShr};
24+
use num_traits::{WrappingShl, WrappingShr};
2525
use std::ops::{BitAnd, BitOr, BitXor, Not};
2626

2727
/// The helper function for bitwise operation with two array

arrow-array/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ arrow-schema = { workspace = true }
4444
arrow-data = { workspace = true }
4545
chrono = { workspace = true }
4646
chrono-tz = { version = "0.10", optional = true }
47-
num = { version = "0.4.1", default-features = false, features = ["std"] }
47+
num-complex = { version = "0.4.6", default-features = false, features = ["std"] }
48+
num-integer = { version = "0.1.46", default-features = false, features = ["std"] }
49+
num-traits = { version = "0.2.19", default-features = false, features = ["std"] }
4850
half = { version = "2.1", default-features = false, features = ["num-traits"] }
4951
hashbrown = { version = "0.16.0", default-features = false }
5052

arrow-array/src/arithmetic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use arrow_buffer::{i256, ArrowNativeType, IntervalDayTime, IntervalMonthDayNano};
1919
use arrow_schema::ArrowError;
2020
use half::f16;
21-
use num::complex::ComplexFloat;
21+
use num_complex::ComplexFloat;
2222
use std::cmp::Ordering;
2323

2424
/// Trait for [`ArrowNativeType`] that adds checked and unchecked arithmetic operations,

arrow-array/src/array/byte_view_array.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use arrow_buffer::{ArrowNativeType, Buffer, NullBuffer, ScalarBuffer};
2525
use arrow_data::{ArrayData, ArrayDataBuilder, ByteView, MAX_INLINE_VIEW_LEN};
2626
use arrow_schema::{ArrowError, DataType};
2727
use core::str;
28-
use num::ToPrimitive;
28+
use num_traits::ToPrimitive;
2929
use std::any::Any;
3030
use std::cmp::Ordering;
3131
use std::fmt::Debug;

arrow-array/src/array/list_array.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use crate::{
2424
use arrow_buffer::{ArrowNativeType, NullBuffer, OffsetBuffer};
2525
use arrow_data::{ArrayData, ArrayDataBuilder};
2626
use arrow_schema::{ArrowError, DataType, FieldRef};
27-
use num::Integer;
27+
use num_integer::Integer;
2828
use std::any::Any;
2929
use std::sync::Arc;
3030

@@ -38,7 +38,7 @@ use std::sync::Arc;
3838
/// [`StringArray`]: crate::array::StringArray
3939
/// [`LargeStringArray`]: crate::array::LargeStringArray
4040
pub trait OffsetSizeTrait:
41-
ArrowNativeType + std::ops::AddAssign + Integer + num::CheckedAdd
41+
ArrowNativeType + std::ops::AddAssign + Integer + num_traits::CheckedAdd
4242
{
4343
/// True for 64 bit offset size and false for 32 bit offset size
4444
const IS_LARGE: bool;

arrow-array/src/builder/fixed_size_binary_dictionary_builder.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use arrow_buffer::ArrowNativeType;
2222
use arrow_schema::DataType::FixedSizeBinary;
2323
use arrow_schema::{ArrowError, DataType};
2424
use hashbrown::HashTable;
25-
use num::NumCast;
25+
use num_traits::NumCast;
2626
use std::any::Any;
2727
use std::sync::Arc;
2828

@@ -142,7 +142,7 @@ where
142142

143143
let source_keys = source.keys_builder.finish();
144144
let new_keys: PrimitiveArray<K> = source_keys.try_unary(|value| {
145-
num::cast::cast::<K2::Native, K::Native>(value).ok_or_else(|| {
145+
num_traits::cast::cast::<K2::Native, K::Native>(value).ok_or_else(|| {
146146
ArrowError::CastError(format!(
147147
"Can't cast dictionary keys from source type {:?} to type {:?}",
148148
K2::DATA_TYPE,

arrow-array/src/builder/generic_bytes_builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ impl<T: ByteArrayType> GenericByteBuilder<T> {
144144
/// (this means that underlying null values are copied as is).
145145
#[inline]
146146
pub fn append_array(&mut self, array: &GenericByteArray<T>) -> Result<(), ArrowError> {
147-
use num::CheckedAdd;
147+
use num_traits::CheckedAdd;
148148
if array.len() == 0 {
149149
return Ok(());
150150
}

arrow-array/src/builder/generic_bytes_dictionary_builder.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use crate::{
2323
use arrow_buffer::ArrowNativeType;
2424
use arrow_schema::{ArrowError, DataType};
2525
use hashbrown::HashTable;
26-
use num::NumCast;
26+
use num_traits::NumCast;
2727
use std::any::Any;
2828
use std::sync::Arc;
2929

@@ -197,7 +197,7 @@ where
197197

198198
let source_keys = source.keys_builder.finish();
199199
let new_keys: PrimitiveArray<K> = source_keys.try_unary(|value| {
200-
num::cast::cast::<K2::Native, K::Native>(value).ok_or_else(|| {
200+
num_traits::cast::cast::<K2::Native, K::Native>(value).ok_or_else(|| {
201201
ArrowError::CastError(format!(
202202
"Can't cast dictionary keys from source type {:?} to type {:?}",
203203
K2::DATA_TYPE,

arrow-array/src/builder/primitive_dictionary_builder.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use crate::{
2222
};
2323
use arrow_buffer::{ArrowNativeType, ToByteSlice};
2424
use arrow_schema::{ArrowError, DataType};
25-
use num::NumCast;
25+
use num_traits::NumCast;
2626
use std::any::Any;
2727
use std::collections::HashMap;
2828
use std::sync::Arc;
@@ -210,7 +210,7 @@ where
210210

211211
let source_keys = source.keys_builder.finish();
212212
let new_keys: PrimitiveArray<K> = source_keys.try_unary(|value| {
213-
num::cast::cast::<K2::Native, K::Native>(value).ok_or_else(|| {
213+
num_traits::cast::cast::<K2::Native, K::Native>(value).ok_or_else(|| {
214214
ArrowError::CastError(format!(
215215
"Can't cast dictionary keys from source type {:?} to type {:?}",
216216
K2::DATA_TYPE,

0 commit comments

Comments
 (0)