datafusion_python/expr/
lambda_variable.rs1use std::fmt::{self, Display, Formatter};
19
20use datafusion::logical_expr::expr::LambdaVariable;
21use pyo3::prelude::*;
22
23#[pyclass(
24 from_py_object,
25 frozen,
26 name = "LambdaVariable",
27 module = "datafusion.expr",
28 subclass
29)]
30#[derive(Clone)]
31pub struct PyLambdaVariable {
32 variable: LambdaVariable,
33}
34
35impl From<LambdaVariable> for PyLambdaVariable {
36 fn from(variable: LambdaVariable) -> PyLambdaVariable {
37 PyLambdaVariable { variable }
38 }
39}
40
41impl From<PyLambdaVariable> for LambdaVariable {
42 fn from(variable: PyLambdaVariable) -> Self {
43 variable.variable
44 }
45}
46
47impl Display for PyLambdaVariable {
48 fn fmt(&self, f: &mut Formatter) -> fmt::Result {
49 write!(f, "LambdaVariable({})", &self.variable.name)
50 }
51}
52
53#[pymethods]
54impl PyLambdaVariable {
55 fn name(&self) -> String {
57 self.variable.name.clone()
58 }
59
60 fn __repr__(&self) -> PyResult<String> {
61 Ok(format!("LambdaVariable({self})"))
62 }
63
64 fn __name__(&self) -> PyResult<String> {
65 Ok("LambdaVariable".to_string())
66 }
67}