diff --git a/src/pages/acheteur.py b/src/pages/acheteur.py index 3da7e7a..80a258f 100644 --- a/src/pages/acheteur.py +++ b/src/pages/acheteur.py @@ -175,7 +175,6 @@ def get_acheteur_marches_data(url, acheteur_year: str) -> list[dict]: acheteur_siret = url.split("/")[-1] lff = df.lazy() lff = lff.filter(pl.col("acheteur_id") == acheteur_siret) - lff = lff.fill_null("") lff = lff.select( "id", "uid", @@ -204,6 +203,8 @@ def get_acheteur_marches_data(url, acheteur_year: str) -> list[dict]: ) 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) columns, tooltip = setup_table_columns( dff, diff --git a/src/pages/tableau.py b/src/pages/tableau.py index cdef299..23de881 100644 --- a/src/pages/tableau.py +++ b/src/pages/tableau.py @@ -182,9 +182,6 @@ def update_table(page_current, page_size, filter_query, sort_by, data_timestamp) if len(sort_by) > 0: lff = sort_table_data(lff, sort_by) - # Remplace les strings null par "", mais pas les numeric null - lff = lff.fill_null("") - # Matérialisation des filtres dff: pl.DataFrame = lff.collect() @@ -196,6 +193,12 @@ def update_table(page_current, page_size, filter_query, sort_by, data_timestamp) # end_row = (page_current + 1) * page_size dff = dff.slice(start_row, page_size) + # Tout devient string + dff = dff.cast(pl.String) + + # Remplace les strings null par "", mais pas les numeric null + dff = dff.fill_null("") + # Ajout des liens vers l'annuaire des entreprises dff = add_links(dff) diff --git a/src/pages/titulaire.py b/src/pages/titulaire.py index bd38feb..07f07eb 100644 --- a/src/pages/titulaire.py +++ b/src/pages/titulaire.py @@ -180,7 +180,6 @@ def get_titulaire_marches_data(url, titulaire_year: str) -> list[dict]: (pl.col("titulaire_id") == titulaire_siret) & (pl.col("titulaire_typeIdentifiant") == "SIRET") ) - lff = lff.fill_null("") lff = lff.select( "id", "uid", @@ -218,6 +217,8 @@ 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) columns, tooltip = setup_table_columns( dff, hideable=False, exclude=["acheteur_id", "id"] diff --git a/src/utils.py b/src/utils.py index 69daa28..f65c462 100644 --- a/src/utils.py +++ b/src/utils.py @@ -126,7 +126,7 @@ def format_number(number) -> str: def format_montant(dff: pl.DataFrame) -> pl.DataFrame: def format_function(expr, scale=None): # https://stackoverflow.com/a/78636786 - expr = expr.cast(pl.String).str.splitn(".", 2) + expr = expr.str.splitn(".", 2) num = expr.struct[0] frac = expr.struct[1]