Page stats avec nb de marchés par département close #21
This commit is contained in:
@@ -1,8 +1,17 @@
|
||||
import logging
|
||||
|
||||
import dash_bootstrap_components as dbc
|
||||
from dash import Dash, dcc, html, page_container, page_registry
|
||||
|
||||
app = Dash(external_stylesheets=[dbc.themes.UNITED], title="decp.info", use_pages=True)
|
||||
|
||||
logger = logging.getLogger("decp.info")
|
||||
logging.basicConfig(
|
||||
format="%(asctime)s %(levelname)-8s %(message)s",
|
||||
level=logging.INFO,
|
||||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
|
||||
app.index_string = """
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
+2
-26
@@ -1,45 +1,21 @@
|
||||
import logging
|
||||
import os
|
||||
from datetime import datetime
|
||||
from time import sleep
|
||||
|
||||
import polars as pl
|
||||
from dash import Input, Output, State, callback, dash_table, dcc, html, register_page
|
||||
from dotenv import load_dotenv
|
||||
from polars.exceptions import ComputeError
|
||||
|
||||
from src.utils import (
|
||||
add_annuaire_link,
|
||||
booleans_to_strings,
|
||||
df,
|
||||
format_number,
|
||||
logger,
|
||||
numbers_to_strings,
|
||||
split_filter_part,
|
||||
)
|
||||
|
||||
logger = logging.getLogger("decp.info")
|
||||
logging.basicConfig(
|
||||
format="%(asctime)s %(levelname)-8s %(message)s",
|
||||
level=logging.INFO,
|
||||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
|
||||
load_dotenv()
|
||||
|
||||
# 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.
|
||||
|
||||
try:
|
||||
logger.info(
|
||||
f"Lecture du fichier 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(seconds=10)
|
||||
df: pl.DataFrame = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH"))
|
||||
|
||||
schema = df.schema
|
||||
df_filtered = pl.DataFrame()
|
||||
lf: pl.LazyFrame = df.lazy()
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
import logging
|
||||
import os
|
||||
from time import sleep
|
||||
|
||||
import polars as pl
|
||||
import polars.selectors as cs
|
||||
from dotenv import load_dotenv
|
||||
from polars.exceptions import ComputeError
|
||||
|
||||
load_dotenv()
|
||||
|
||||
operators = [
|
||||
["s<", "<"],
|
||||
@@ -7,6 +15,13 @@ operators = [
|
||||
["icontains", "contains"],
|
||||
]
|
||||
|
||||
logger = logging.getLogger("decp.info")
|
||||
logging.basicConfig(
|
||||
format="%(asctime)s %(levelname)-8s %(message)s",
|
||||
level=logging.INFO,
|
||||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
|
||||
|
||||
def split_filter_part(filter_part):
|
||||
print("filter part", filter_part)
|
||||
@@ -69,3 +84,24 @@ def numbers_to_strings(lf: pl.LazyFrame) -> pl.LazyFrame:
|
||||
def format_number(number) -> str:
|
||||
number = "{:,}".format(number).replace(",", " ")
|
||||
return number
|
||||
|
||||
|
||||
def get_decp_data() -> pl.DataFrame:
|
||||
# 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.
|
||||
|
||||
try:
|
||||
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"))
|
||||
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 = get_decp_data()
|
||||
|
||||
Reference in New Issue
Block a user