Déplacement d'opérations récurrentes hors du callback
This commit is contained in:
+2
-10
@@ -8,20 +8,18 @@ from dotenv import load_dotenv
|
|||||||
from src.utils import (
|
from src.utils import (
|
||||||
add_annuaire_link,
|
add_annuaire_link,
|
||||||
booleans_to_strings,
|
booleans_to_strings,
|
||||||
df,
|
|
||||||
format_number,
|
format_number,
|
||||||
|
lf,
|
||||||
logger,
|
logger,
|
||||||
numbers_to_strings,
|
|
||||||
split_filter_part,
|
split_filter_part,
|
||||||
)
|
)
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
schema = df.schema
|
schema = lf.collect_schema()
|
||||||
update_date = os.path.getmtime(os.getenv("DATA_FILE_PARQUET_PATH"))
|
update_date = os.path.getmtime(os.getenv("DATA_FILE_PARQUET_PATH"))
|
||||||
update_date = datetime.fromtimestamp(update_date).strftime("%d/%m/%Y")
|
update_date = datetime.fromtimestamp(update_date).strftime("%d/%m/%Y")
|
||||||
df_filtered = pl.DataFrame()
|
df_filtered = pl.DataFrame()
|
||||||
lf: pl.LazyFrame = df.lazy()
|
|
||||||
|
|
||||||
# Suppression des colonnes inutiles
|
# Suppression des colonnes inutiles
|
||||||
lf = lf.drop(
|
lf = lf.drop(
|
||||||
@@ -183,12 +181,6 @@ def update_table(page_current, page_size, filter_query, data_timestamp):
|
|||||||
# elif operator == 'datestartswith':
|
# elif operator == 'datestartswith':
|
||||||
# lff = lff.filter(pl.col(col_name).str.startswith(filter_value)")
|
# 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()
|
dff: pl.DataFrame = lff.collect()
|
||||||
|
|
||||||
df_filtered = dff.clone()
|
df_filtered = dff.clone()
|
||||||
|
|||||||
+13
-5
@@ -86,7 +86,7 @@ def format_number(number) -> str:
|
|||||||
return number
|
return number
|
||||||
|
|
||||||
|
|
||||||
def get_decp_data() -> pl.DataFrame:
|
def get_decp_data() -> pl.LazyFrame:
|
||||||
# Chargement du fichier parquet
|
# 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.
|
# 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.
|
# 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(
|
logger.info(
|
||||||
f"Lecture du fichier parquet ({os.getenv('DATA_FILE_PARQUET_PATH')})..."
|
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:
|
except ComputeError:
|
||||||
# Le fichier est probablement en cours de mise à jour
|
# Le fichier est probablement en cours de mise à jour
|
||||||
logger.info("Échec, nouvelle tentative dans 10s...")
|
logger.info("Échec, nouvelle tentative dans 10s...")
|
||||||
sleep(10)
|
sleep(10)
|
||||||
ddf: pl.DataFrame = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH"))
|
df: pl.DataFrame = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH"))
|
||||||
return ddf
|
|
||||||
|
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()
|
||||||
|
|||||||
Reference in New Issue
Block a user