Format values inclut le formatage des distances

This commit is contained in:
Colin Maudry
2025-11-10 15:29:44 +01:00
parent 1848c881ac
commit a3eb48bacb
6 changed files with 23 additions and 15 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
import polars as pl
from dash import dash_table, html
from utils import add_links_in_dict, format_montant, setup_table_columns
from utils import add_links_in_dict, format_values, setup_table_columns
def get_top_org_table(data, org_type: str):
@@ -16,7 +16,7 @@ def get_top_org_table(data, org_type: str):
dff_nb = dff_nb.sort(by="montant", descending=True)
dff_nb = dff_nb.cast(pl.String)
dff_nb = dff_nb.fill_null("")
dff_nb = format_montant(dff_nb, column="montant")
dff_nb = format_values(dff_nb)
columns, tooltip = setup_table_columns(
dff_nb, hideable=False, exclude=[f"{org_type}_id"]
)
+2 -3
View File
@@ -8,8 +8,8 @@ from src.figures import point_on_map
from src.utils import (
add_links_in_dict,
df,
format_montant,
format_number,
format_values,
get_annuaire_data,
get_departement_region,
meta_content,
@@ -215,8 +215,7 @@ def get_last_marches_table(data) -> html.Div:
return html.Div(html.P("Aucun marché trouvé."))
dff = dff.cast(pl.String)
dff = dff.fill_null("")
print("1", dff.columns)
dff = format_montant(dff)
dff = format_values(dff)
columns, tooltip = setup_table_columns(
dff,
hideable=False,
+2 -2
View File
@@ -4,7 +4,7 @@ import polars as pl
from dash import Input, Output, callback, dcc, html, register_page
from polars import selectors as cs
from src.utils import data_schema, df, format_montant, meta_content
from src.utils import data_schema, df, format_values, meta_content
register_page(
__name__,
@@ -75,7 +75,7 @@ def get_marche_data(url) -> tuple[dict, list]:
# Données du marché
dff_marche = lff.unique("uid").collect(engine="streaming")
dff_marche = format_montant(dff_marche)
dff_marche = format_values(dff_marche)
return dff_marche.to_dicts()[0], dff_titulaires.to_dicts()
+2 -2
View File
@@ -9,8 +9,8 @@ from src.utils import (
add_resource_link,
df,
filter_table_data,
format_montant,
format_number,
format_values,
get_default_hidden_columns,
meta_content,
setup_table_columns,
@@ -208,7 +208,7 @@ def update_table(page_current, page_size, filter_query, sort_by, data_timestamp)
dff = add_resource_link(dff)
# Formatage des montants
dff = format_montant(dff)
dff = format_values(dff)
columns, tooltip = setup_table_columns(dff)
+2 -2
View File
@@ -8,8 +8,8 @@ from src.figures import point_on_map
from src.utils import (
add_links_in_dict,
df,
format_montant,
format_number,
format_values,
get_annuaire_data,
get_departement_region,
meta_content,
@@ -227,7 +227,7 @@ def get_last_marches_table(data) -> html.Div:
dff = pl.DataFrame(data)
dff = dff.cast(pl.String)
dff = dff.fill_null("")
dff = format_montant(dff)
dff = format_values(dff)
columns, tooltip = setup_table_columns(
dff, hideable=False, exclude=["acheteur_id", "id"]
)
+13 -4
View File
@@ -125,8 +125,8 @@ def format_number(number) -> str:
return number
def format_montant(dff: pl.DataFrame, column: str = "montant") -> pl.DataFrame:
def format_function(expr, scale=None):
def format_values(dff: pl.DataFrame) -> pl.DataFrame:
def format_montant(expr, scale=None):
# https://stackoverflow.com/a/78636786
expr = expr.cast(pl.String)
expr = expr.str.splitn(".", 2)
@@ -156,8 +156,17 @@ def format_montant(dff: pl.DataFrame, column: str = "montant") -> pl.DataFrame:
return montant
print("3", dff.columns)
dff = dff.with_columns(pl.col(column).pipe(format_function).alias(column))
def format_distance(expr):
expr = expr.cast(pl.String)
return pl.concat_str(expr, pl.lit(" km"))
if "montant" in dff.columns:
dff = dff.with_columns(pl.col("montant").pipe(format_montant).alias("montant"))
if "distance" in dff.columns:
dff = dff.with_columns(
pl.col("distance").pipe(format_distance).alias("distance")
)
return dff