Path: blob/main/crates/polars-python/src/lazyframe/mod.rs
8390 views
mod exitable;1#[cfg(feature = "pymethods")]2mod general;3mod optflags;4#[cfg(feature = "pymethods")]5mod serde;6mod sink;7pub mod visit;8pub mod visitor;910#[cfg(not(target_arch = "wasm32"))]11pub use exitable::PyInProcessQuery;12use parking_lot::RwLock;13use polars::prelude::{Engine, LazyFrame, OptFlags};14use pyo3::exceptions::PyValueError;15use pyo3::prelude::*;16use pyo3::pybacked::PyBackedStr;1718use crate::prelude::Wrap;1920#[pyclass(frozen)]21#[repr(transparent)]22pub struct PyLazyFrame {23pub ldf: RwLock<LazyFrame>,24}2526impl Clone for PyLazyFrame {27fn clone(&self) -> Self {28Self {29ldf: RwLock::new(self.ldf.read().clone()),30}31}32}3334impl From<LazyFrame> for PyLazyFrame {35fn from(ldf: LazyFrame) -> Self {36PyLazyFrame {37ldf: RwLock::new(ldf),38}39}40}4142impl From<PyLazyFrame> for LazyFrame {43fn from(pldf: PyLazyFrame) -> Self {44pldf.ldf.into_inner()45}46}4748#[pyclass(frozen)]49#[repr(transparent)]50pub struct PyOptFlags {51pub inner: RwLock<OptFlags>,52}5354impl Clone for PyOptFlags {55fn clone(&self) -> Self {56Self {57inner: RwLock::new(*self.inner.read()),58}59}60}6162impl From<OptFlags> for PyOptFlags {63fn from(inner: OptFlags) -> Self {64PyOptFlags {65inner: RwLock::new(inner),66}67}68}6970impl<'a, 'py> FromPyObject<'a, 'py> for Wrap<Engine> {71type Error = PyErr;7273fn extract(ob: Borrowed<'a, 'py, PyAny>) -> PyResult<Self> {74let parsed = ob75.extract::<PyBackedStr>()?76.parse()77.map_err(PyValueError::new_err)?;78Ok(Wrap(parsed))79}80}818283