From 434a6597786188697c4070b25605b9fc7e554561 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Jan 2026 22:16:11 +0100 Subject: [PATCH] =?UTF-8?q?G=C3=A9n=C3=A9ralisation=20du=20logging=20avec?= =?UTF-8?q?=20logger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/tableau.py | 3 ++- src/utils.py | 55 ++++++++++++++++---------------------------- 2 files changed, 22 insertions(+), 36 deletions(-) diff --git a/src/pages/tableau.py b/src/pages/tableau.py index b07d4e0..1569e02 100644 --- a/src/pages/tableau.py +++ b/src/pages/tableau.py @@ -12,6 +12,7 @@ from src.utils import ( filter_table_data, get_default_hidden_columns, invert_columns, + logger, meta_content, schema, sort_table_data, @@ -277,7 +278,7 @@ def restore_view_from_url(search): return no_update, no_update, no_update, no_update params = urllib.parse.parse_qs(search.lstrip("?")) - print("params", params) + logger.debug("params", params) filter_query = no_update sort_by = no_update diff --git a/src/utils.py b/src/utils.py index f26a165..dafb0ac 100644 --- a/src/utils.py +++ b/src/utils.py @@ -10,14 +10,17 @@ from httpx import get, post from polars.exceptions import ComputeError from unidecode import unidecode -logger = logging.getLogger("decp.info") -logging.getLogger("httpx").setLevel("WARNING") - logging.basicConfig( format="%(asctime)s %(levelname)-8s %(message)s", level=logging.INFO, datefmt="%Y-%m-%d %H:%M:%S", ) +logger = logging.getLogger("decp.info") +development = os.getenv("DEVELOPMENT", "False").lower() == "true" +if development: + logger.setLevel(logging.DEBUG) + +logging.getLogger("httpx").setLevel("WARNING") def split_filter_part(filter_part): @@ -29,14 +32,14 @@ def split_filter_part(filter_part): ["icontains", "contains"], # [" ", "contains"] ] - print("filter part", filter_part) + logger.debug("filter part", filter_part) for operator_group in operators: if operator_group[0] in filter_part: name_part, value_part = filter_part.split(operator_group[0], 1) name_part = name_part.strip() value = value_part.strip() name = name_part[name_part.find("{") + 1 : name_part.rfind("}")] - print("=>", name, operator_group[1], value) + logger.debug("=>", name, operator_group[1], value) return name, operator_group[1], value @@ -277,19 +280,19 @@ def get_departement_region(code_postal): return code_departement, nom_departement, nom_region -def filter_table_data(lff: pl.LazyFrame, filter_query: str) -> pl.LazyFrame: - debug = os.getenv("DEVELOPMENT", "False").lower() == "true" - schema = lff.collect_schema() - track_search(filter_query) +def filter_table_data( + lff: pl.LazyFrame, filter_query: str, filter_source: str +) -> pl.LazyFrame: + _schema = lff.collect_schema() + track_search(f"{filter_source}: {filter_query}") filtering_expressions = filter_query.split(" && ") for filter_part in filtering_expressions: col_name, operator, filter_value = split_filter_part(filter_part) - col_type = str(schema[col_name]) - if debug: - print("filter_value:", filter_value) - print("filter_value_type:", type(filter_value)) - print("operator:", operator) - print("col_type:", col_type) + col_type = str(_schema[col_name]) + logger.debug("filter_value:", filter_value) + logger.debug("filter_value_type:", type(filter_value)) + logger.debug("operator:", operator) + logger.debug("col_type:", col_type) lff = lff.filter(pl.col(col_name).is_not_null()) @@ -350,7 +353,7 @@ def sort_table_data(lff: pl.LazyFrame, sort_by: list) -> pl.LazyFrame: descending=[col["direction"] == "desc" for col in sort_by], nulls_last=True, ) - print(sort_by) + logger.debug(sort_by) return lff @@ -588,7 +591,7 @@ def prepare_table_data( """ if os.getenv("DEVELOPMENT").lower() == "true": - print(" + + + + + + + + + + + + + + + + + + ") + logger.debug(" + + + + + + + + + + + + + + + + + + ") # Récupération des données if isinstance(data, list): @@ -596,24 +599,6 @@ def prepare_table_data( else: lff: pl.LazyFrame = df.lazy() # start from the original data - # if search_params: - # if "filtres" in search_params: - # filter_query = search_params["filtres"][0] - # - # if "tris" in search_params: - # try: - # sort_by = json.loads(search_params["tris"][0]) - # except json.JSONDecodeError: - # pass - # - # if "colonnes" in search_params: - # try: - # hidden_columns = json.loads(search_params["colonnes"][0]) - # print(hidden_columns) - # lff = lff.drop(hidden_columns) - # except json.JSONDecodeError: - # pass - # Application des filtres if filter_query: lff = filter_table_data(lff, filter_query)