polars_python/functions/
meta.rs1use polars_core::POOL;
2use polars_core::fmt::FloatFmt;
3use polars_core::prelude::IDX_DTYPE;
4use pyo3::exceptions::PyValueError;
5use pyo3::prelude::*;
6
7use crate::conversion::Wrap;
8
9#[pyfunction]
10pub fn get_index_type(py: Python) -> PyResult<Bound<PyAny>> {
11 Wrap(IDX_DTYPE).into_pyobject(py)
12}
13
14#[pyfunction]
15pub fn thread_pool_size() -> usize {
16 POOL.current_num_threads()
17}
18
19#[pyfunction]
20pub fn set_float_fmt(fmt: &str) -> PyResult<()> {
21 let fmt = match fmt {
22 "full" => FloatFmt::Full,
23 "mixed" => FloatFmt::Mixed,
24 e => {
25 return Err(PyValueError::new_err(format!(
26 "fmt must be one of {{'full', 'mixed'}}, got {e}",
27 )));
28 },
29 };
30 polars_core::fmt::set_float_fmt(fmt);
31 Ok(())
32}
33
34#[pyfunction]
35pub fn get_float_fmt() -> PyResult<String> {
36 let strfmt = match polars_core::fmt::get_float_fmt() {
37 FloatFmt::Full => "full",
38 FloatFmt::Mixed => "mixed",
39 };
40 Ok(strfmt.to_string())
41}
42
43#[pyfunction]
44#[pyo3(signature = (precision=None))]
45pub fn set_float_precision(precision: Option<usize>) -> PyResult<()> {
46 use polars_core::fmt::set_float_precision;
47 set_float_precision(precision);
48 Ok(())
49}
50
51#[pyfunction]
52pub fn get_float_precision() -> PyResult<Option<usize>> {
53 use polars_core::fmt::get_float_precision;
54 Ok(get_float_precision())
55}
56
57#[pyfunction]
58#[pyo3(signature = (sep=None))]
59pub fn set_thousands_separator(sep: Option<char>) -> PyResult<()> {
60 use polars_core::fmt::set_thousands_separator;
61 set_thousands_separator(sep);
62 Ok(())
63}
64
65#[pyfunction]
66pub fn get_thousands_separator() -> PyResult<Option<String>> {
67 use polars_core::fmt::get_thousands_separator;
68 Ok(Some(get_thousands_separator()))
69}
70
71#[pyfunction]
72#[pyo3(signature = (sep=None))]
73pub fn set_decimal_separator(sep: Option<char>) -> PyResult<()> {
74 use polars_core::fmt::set_decimal_separator;
75 set_decimal_separator(sep);
76 Ok(())
77}
78
79#[pyfunction]
80pub fn get_decimal_separator() -> PyResult<Option<char>> {
81 use polars_core::fmt::get_decimal_separator;
82 Ok(Some(get_decimal_separator()))
83}
84
85#[pyfunction]
86#[pyo3(signature = (trim=None))]
87pub fn set_trim_decimal_zeros(trim: Option<bool>) -> PyResult<()> {
88 use polars_core::fmt::set_trim_decimal_zeros;
89 set_trim_decimal_zeros(trim);
90 Ok(())
91}
92
93#[pyfunction]
94pub fn get_trim_decimal_zeros() -> PyResult<Option<bool>> {
95 use polars_core::fmt::get_trim_decimal_zeros;
96 Ok(Some(get_trim_decimal_zeros()))
97}