diff --git a/datafusion-common/src/error.rs b/datafusion-common/src/error.rs index ee2e61892fd4..93978db1a1e3 100644 --- a/datafusion-common/src/error.rs +++ b/datafusion-common/src/error.rs @@ -26,10 +26,6 @@ use arrow::error::ArrowError; #[cfg(feature = "avro")] use avro_rs::Error as AvroError; use parquet::errors::ParquetError; -#[cfg(feature = "pyarrow")] -use pyo3::exceptions::PyException; -#[cfg(feature = "pyarrow")] -use pyo3::prelude::PyErr; use sqlparser::parser::ParserError; /// Result type for operations that could result in an [DataFusionError] @@ -87,13 +83,6 @@ impl From for DataFusionError { } } -#[cfg(feature = "pyarrow")] -impl From for PyErr { - fn from(err: DataFusionError) -> PyErr { - PyException::new_err(err.to_string()) - } -} - impl From for ArrowError { fn from(e: DataFusionError) -> Self { match e { diff --git a/datafusion-common/src/lib.rs b/datafusion-common/src/lib.rs index a3027f1b7d18..fdcb7d4b5f74 100644 --- a/datafusion-common/src/lib.rs +++ b/datafusion-common/src/lib.rs @@ -18,6 +18,8 @@ mod column; mod dfschema; mod error; +#[cfg(feature = "pyarrow")] +mod pyarrow; mod scalar; pub use column::Column; diff --git a/datafusion/src/pyarrow.rs b/datafusion-common/src/pyarrow.rs similarity index 92% rename from datafusion/src/pyarrow.rs rename to datafusion-common/src/pyarrow.rs index 46eb6b4437b5..bf10b4551775 100644 --- a/datafusion/src/pyarrow.rs +++ b/datafusion-common/src/pyarrow.rs @@ -15,12 +15,21 @@ // specific language governing permissions and limitations // under the License. -use pyo3::prelude::*; +//! PyArrow + +use crate::{DataFusionError, ScalarValue}; +use arrow::array::ArrayData; +use arrow::pyarrow::PyArrowConvert; +use pyo3::exceptions::PyException; +use pyo3::prelude::PyErr; use pyo3::types::PyList; +use pyo3::{FromPyObject, IntoPy, PyAny, PyObject, PyResult, Python}; -use crate::arrow::array::ArrayData; -use crate::arrow::pyarrow::PyArrowConvert; -use crate::scalar::ScalarValue; +impl From for PyErr { + fn from(err: DataFusionError) -> PyErr { + PyException::new_err(err.to_string()) + } +} impl PyArrowConvert for ScalarValue { fn from_pyarrow(value: &PyAny) -> PyResult { @@ -68,7 +77,6 @@ mod tests { use pyo3::prepare_freethreaded_python; use pyo3::py_run; use pyo3::types::PyDict; - use pyo3::Python; fn init_python() { prepare_freethreaded_python(); diff --git a/datafusion-common/src/scalar.rs b/datafusion-common/src/scalar.rs index 8bfd5d65ae38..d7c6c6bc710f 100644 --- a/datafusion-common/src/scalar.rs +++ b/datafusion-common/src/scalar.rs @@ -665,7 +665,7 @@ impl ScalarValue { /// /// Example /// ``` - /// use datafusion::scalar::ScalarValue; + /// use datafusion_common::ScalarValue; /// use arrow::array::{ArrayRef, BooleanArray}; /// /// let scalars = vec![ diff --git a/datafusion/src/lib.rs b/datafusion/src/lib.rs index 9442f7e5fe9f..872a1c0a8678 100644 --- a/datafusion/src/lib.rs +++ b/datafusion/src/lib.rs @@ -224,9 +224,6 @@ pub use parquet; pub(crate) mod field_util; -#[cfg(feature = "pyarrow")] -mod pyarrow; - pub mod from_slice; #[cfg(test)]