Path: blob/main/crates/polars-python/src/functions/meta.rs
7889 views
use polars_core::POOL;1use polars_core::fmt::FloatFmt;2use polars_core::prelude::IDX_DTYPE;3use pyo3::exceptions::PyValueError;4use pyo3::prelude::*;56use crate::conversion::Wrap;78#[pyfunction]9pub fn get_index_type(py: Python) -> PyResult<Bound<PyAny>> {10Wrap(IDX_DTYPE).into_pyobject(py)11}1213#[pyfunction]14pub fn thread_pool_size() -> usize {15POOL.current_num_threads()16}1718#[pyfunction]19pub fn set_float_fmt(fmt: &str) -> PyResult<()> {20let fmt = match fmt {21"full" => FloatFmt::Full,22"mixed" => FloatFmt::Mixed,23e => {24return Err(PyValueError::new_err(format!(25"fmt must be one of {{'full', 'mixed'}}, got {e}",26)));27},28};29polars_core::fmt::set_float_fmt(fmt);30Ok(())31}3233#[pyfunction]34pub fn get_float_fmt() -> PyResult<String> {35let strfmt = match polars_core::fmt::get_float_fmt() {36FloatFmt::Full => "full",37FloatFmt::Mixed => "mixed",38};39Ok(strfmt.to_string())40}4142#[pyfunction]43#[pyo3(signature = (precision))]44pub fn set_float_precision(precision: Option<usize>) -> PyResult<()> {45use polars_core::fmt::set_float_precision;46set_float_precision(precision);47Ok(())48}4950#[pyfunction]51pub fn get_float_precision() -> PyResult<Option<usize>> {52use polars_core::fmt::get_float_precision;53Ok(get_float_precision())54}5556#[pyfunction]57#[pyo3(signature = (sep))]58pub fn set_thousands_separator(sep: Option<char>) -> PyResult<()> {59use polars_core::fmt::set_thousands_separator;60set_thousands_separator(sep);61Ok(())62}6364#[pyfunction]65pub fn get_thousands_separator() -> PyResult<Option<String>> {66use polars_core::fmt::get_thousands_separator;67Ok(Some(get_thousands_separator()))68}6970#[pyfunction]71#[pyo3(signature = (sep))]72pub fn set_decimal_separator(sep: Option<char>) -> PyResult<()> {73use polars_core::fmt::set_decimal_separator;74set_decimal_separator(sep);75Ok(())76}7778#[pyfunction]79pub fn get_decimal_separator() -> PyResult<Option<char>> {80use polars_core::fmt::get_decimal_separator;81Ok(Some(get_decimal_separator()))82}8384#[pyfunction]85#[pyo3(signature = (trim))]86pub fn set_trim_decimal_zeros(trim: Option<bool>) -> PyResult<()> {87use polars_core::fmt::set_trim_decimal_zeros;88set_trim_decimal_zeros(trim);89Ok(())90}9192#[pyfunction]93pub fn get_trim_decimal_zeros() -> PyResult<Option<bool>> {94use polars_core::fmt::get_trim_decimal_zeros;95Ok(Some(get_trim_decimal_zeros()))96}979899