Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-python/src/py_modules.rs
7884 views
1
use pyo3::prelude::*;
2
use pyo3::sync::PyOnceLock;
3
4
static POLARS: PyOnceLock<Py<PyModule>> = PyOnceLock::new();
5
static POLARS_PLR: PyOnceLock<Py<PyAny>> = PyOnceLock::new();
6
static UTILS: PyOnceLock<Py<PyAny>> = PyOnceLock::new();
7
static SERIES: PyOnceLock<Py<PyAny>> = PyOnceLock::new();
8
static DATAFRAME: PyOnceLock<Py<PyAny>> = PyOnceLock::new();
9
10
pub fn polars(py: Python<'_>) -> &Py<PyModule> {
11
POLARS.get_or_init(py, || py.import("polars").unwrap().unbind())
12
}
13
14
pub fn polars_rs(py: Python<'_>) -> &Py<PyAny> {
15
POLARS_PLR.get_or_init(py, || polars(py).getattr(py, "_plr").unwrap())
16
}
17
18
pub fn pl_utils(py: Python<'_>) -> &Py<PyAny> {
19
UTILS.get_or_init(py, || polars(py).getattr(py, "_utils").unwrap())
20
}
21
22
pub fn pl_series(py: Python<'_>) -> &Py<PyAny> {
23
SERIES.get_or_init(py, || polars(py).getattr(py, "Series").unwrap())
24
}
25
26
pub fn pl_df(py: Python<'_>) -> &Py<PyAny> {
27
DATAFRAME.get_or_init(py, || polars(py).getattr(py, "DataFrame").unwrap())
28
}
29
30