diff --git a/Cargo.toml b/Cargo.toml index e56b98bbf..6412c549f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -159,7 +159,9 @@ dataframe = [ "nu-protocol/dataframe", "nu-command/dataframe", "nu-value-ext/dataframe", - "nu-data/dataframe" + "nu-data/dataframe", + "nu_plugin_post/dataframe", + "nu_plugin_to_bson/dataframe", ] diff --git a/crates/nu_plugin_post/Cargo.toml b/crates/nu_plugin_post/Cargo.toml index 2769c85e6..6ebc38d7d 100644 --- a/crates/nu_plugin_post/Cargo.toml +++ b/crates/nu_plugin_post/Cargo.toml @@ -21,4 +21,8 @@ serde_json = "1.0.57" surf = "1.0.3" url = "2.1.1" +[features] +dataframe = ["nu-protocol/dataframe"] + + [build-dependencies] diff --git a/crates/nu_plugin_post/src/post.rs b/crates/nu_plugin_post/src/post.rs index 84f36e0ec..0911b632d 100644 --- a/crates/nu_plugin_post/src/post.rs +++ b/crates/nu_plugin_post/src/post.rs @@ -400,6 +400,14 @@ pub fn value_to_json_value(v: &Value) -> Result { } UntaggedValue::Table(l) => serde_json::Value::Array(json_list(l)?), + #[cfg(feature = "dataframe")] + UntaggedValue::Dataframe(_) => { + return Err(ShellError::labeled_error( + "Cannot convert dataframe", + "Cannot convert dataframe", + &v.tag, + )) + } UntaggedValue::Error(e) => return Err(e.clone()), UntaggedValue::Block(_) | UntaggedValue::Primitive(Primitive::Range(_)) => { serde_json::Value::Null diff --git a/crates/nu_plugin_to_bson/Cargo.toml b/crates/nu_plugin_to_bson/Cargo.toml index d0dae9553..7386fe233 100644 --- a/crates/nu_plugin_to_bson/Cargo.toml +++ b/crates/nu_plugin_to_bson/Cargo.toml @@ -18,4 +18,7 @@ nu-source = { path = "../nu-source", version = "0.31.1" } nu-value-ext = { path = "../nu-value-ext", version = "0.31.1" } num-traits = "0.2.14" +[features] +dataframe = ["nu-protocol/dataframe"] + [build-dependencies] diff --git a/crates/nu_plugin_to_bson/src/to_bson.rs b/crates/nu_plugin_to_bson/src/to_bson.rs index ddaee3928..a3dd911ff 100644 --- a/crates/nu_plugin_to_bson/src/to_bson.rs +++ b/crates/nu_plugin_to_bson/src/to_bson.rs @@ -64,6 +64,8 @@ pub fn value_to_bson_value(v: &Value) -> Result { .collect::>()?, ), UntaggedValue::Block(_) | UntaggedValue::Primitive(Primitive::Range(_)) => Bson::Null, + #[cfg(feature = "dataframe")] + UntaggedValue::Dataframe(_) => Bson::Null, UntaggedValue::Error(e) => return Err(e.clone()), UntaggedValue::Primitive(Primitive::Binary(b)) => { Bson::Binary(BinarySubtype::Generic, b.clone())