in src/dataframe.rs [142:150]
fn get_attr<'a, T>(py_object: &'a Bound<'a, PyAny>, attr_name: &str, default_value: T) -> T
where
T: for<'py> pyo3::FromPyObject<'py> + Clone,
{
py_object
.getattr(attr_name)
.and_then(|v| v.extract::<T>())
.unwrap_or_else(|_| default_value.clone())
}