From 68b3072aa393b738f4ce554d36c8afe3acf6488e Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Mon, 16 Jun 2025 22:15:51 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9placement=20d'op=C3=A9rations=20r=C3=A9c?= =?UTF-8?q?urrentes=20hors=20du=20callback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/home.py | 12 ++---------- src/utils.py | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/pages/home.py b/src/pages/home.py index d507d70..d2a1948 100644 --- a/src/pages/home.py +++ b/src/pages/home.py @@ -8,20 +8,18 @@ from dotenv import load_dotenv from src.utils import ( add_annuaire_link, booleans_to_strings, - df, format_number, + lf, logger, - numbers_to_strings, split_filter_part, ) load_dotenv() -schema = df.schema +schema = lf.collect_schema() update_date = os.path.getmtime(os.getenv("DATA_FILE_PARQUET_PATH")) update_date = datetime.fromtimestamp(update_date).strftime("%d/%m/%Y") df_filtered = pl.DataFrame() -lf: pl.LazyFrame = df.lazy() # Suppression des colonnes inutiles lf = lf.drop( @@ -183,12 +181,6 @@ def update_table(page_current, page_size, filter_query, data_timestamp): # elif operator == 'datestartswith': # lff = lff.filter(pl.col(col_name).str.startswith(filter_value)") - # Remplacement des valeurs numériques par des chaînes de caractères - lff = numbers_to_strings(lff) - - # Tri des marchés par date de notification - lff = lff.sort(by=["datePublicationDonnees"], descending=True, nulls_last=True) - dff: pl.DataFrame = lff.collect() df_filtered = dff.clone() diff --git a/src/utils.py b/src/utils.py index 58b189a..7221873 100644 --- a/src/utils.py +++ b/src/utils.py @@ -86,7 +86,7 @@ def format_number(number) -> str: return number -def get_decp_data() -> pl.DataFrame: +def get_decp_data() -> pl.LazyFrame: # Chargement du fichier parquet # Le fichier est chargé en mémoire, ce qui est plus rapide qu'une base de données pour le moment. # On utilise polars pour la rapidité et la facilité de manipulation des données. @@ -95,13 +95,21 @@ def get_decp_data() -> pl.DataFrame: logger.info( f"Lecture du fichier parquet ({os.getenv('DATA_FILE_PARQUET_PATH')})..." ) - ddf: pl.DataFrame = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH")) + df: pl.DataFrame = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH")) except ComputeError: # Le fichier est probablement en cours de mise à jour logger.info("Échec, nouvelle tentative dans 10s...") sleep(10) - ddf: pl.DataFrame = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH")) - return ddf + df: pl.DataFrame = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH")) + + lff: pl.LazyFrame = df.lazy() + # Remplacement des valeurs numériques par des chaînes de caractères + lff = numbers_to_strings(lff) + + # Tri des marchés par date de notification + lff = lff.sort(by=["datePublicationDonnees"], descending=True, nulls_last=True) + + return lff -df = get_decp_data() +lf = get_decp_data()