diff --git a/Cargo.toml b/Cargo.toml index 9025962..ab77770 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ rustpython-parser-vendored = { path = "vendored", version = "0.3.0" } rustpython-ast = { path = "ast", default-features = false, version = "0.3.0" } rustpython-parser-core = { path = "core", features = [], version = "0.3.0" } rustpython-literal = { path = "literal", version = "0.3.0" } -rustpython-format = { path = "format", version = "0.3.0" } +rustpython-format = { path = "format", default-features = false, version = "0.3.0" } rustpython-parser = { path = "parser", default-features = false, version = "0.3.0" } anyhow = "1.0.45" diff --git a/ast/Cargo.toml b/ast/Cargo.toml index 53efc88..6b65398 100644 --- a/ast/Cargo.toml +++ b/ast/Cargo.toml @@ -16,6 +16,8 @@ fold = [] unparse = ["rustpython-literal"] visitor = [] all-nodes-with-ranges = [] +malachite-bigint = ["dep:malachite-bigint"] +num-bigint = ["dep:num-bigint"] [dependencies] rustpython-parser-core = { workspace = true } diff --git a/format/Cargo.toml b/format/Cargo.toml index f9fd024..c0573f8 100644 --- a/format/Cargo.toml +++ b/format/Cargo.toml @@ -8,10 +8,16 @@ repository = { workspace = true } license = { workspace = true } rust-version = { workspace = true } +[features] +default = ["malachite-bigint"] +malachite-bigint = ["dep:malachite-bigint"] +num-bigint = ["dep:num-bigint"] + [dependencies] rustpython-literal = { workspace = true } bitflags = { workspace = true } itertools = { workspace = true } -malachite-bigint = { workspace = true } +malachite-bigint = { workspace = true, optional = true } +num-bigint = { workspace = true, optional = true } num-traits = { workspace = true } diff --git a/format/src/cformat.rs b/format/src/cformat.rs index a207857..248ad51 100644 --- a/format/src/cformat.rs +++ b/format/src/cformat.rs @@ -1,7 +1,10 @@ //! Implementation of Printf-Style string formatting //! as per the [Python Docs](https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting). use bitflags::bitflags; +#[cfg(feature = "malachite-bigint")] use malachite_bigint::{BigInt, Sign}; +#[cfg(feature = "num-bigint")] +use num_bigint::{BigInt, Sign}; use num_traits::Signed; use rustpython_literal::{float, format::Case}; use std::{ diff --git a/format/src/format.rs b/format/src/format.rs index 09cc3d1..8109f1f 100644 --- a/format/src/format.rs +++ b/format/src/format.rs @@ -1,5 +1,8 @@ use itertools::{Itertools, PeekingNext}; +#[cfg(feature = "malachite-bigint")] use malachite_bigint::{BigInt, Sign}; +#[cfg(feature = "num-bigint")] +use num_bigint::{BigInt, Sign}; use num_traits::FromPrimitive; use num_traits::{cast::ToPrimitive, Signed}; use rustpython_literal::float; diff --git a/parser/Cargo.toml b/parser/Cargo.toml index 19a8c8e..fc7ecd8 100644 --- a/parser/Cargo.toml +++ b/parser/Cargo.toml @@ -24,7 +24,7 @@ phf_codegen = "0.11.1" tiny-keccak = { version = "2", features = ["sha3"] } [dependencies] -rustpython-ast = { workspace = true } +rustpython-ast = { workspace = true, default-features = false } rustpython-parser-core = { workspace = true } itertools = { workspace = true }