diff --git a/README.md b/README.md index 0b03ed6..6f7d28b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # decp.info -> v2.1.0 +> v2.1.1 Outil d'exploration et de téléchargement des données essentielles de la commande publique. @@ -26,9 +26,11 @@ python run.py ## Déploiement -- **Production** (branche `main`, [decp.info](https://decp.info)) : déploiement manuel via un déclenchement de la Github Action [Déploiement](https://github.com/ColinMaudry/decp.info/actions/workflows/deploy.yaml). +- **Production** (branche `main`, [decp.info](https://decp.info)) : déploiement manuel via un déclenchement de la Github Action [Déploiement](https://github.com/ColinMaudry/decp.info/actions/workflows/deploy.yaml) - **Test** (branche `dev`, [test.decp.info](https://test.decp.info)) : déploiement automatique à chaque push sur la branche `dev`, via la même Github Action. +Ne pas oublier de mettre à jour les fichier .env. + ## Liens connexes - [decp-processing](https://github.com/ColinMaudry/decp-processing) (traitement et publication des données) @@ -36,6 +38,11 @@ python run.py ## Notes de version +##### 2.1.1 + +- ajout d'une section dans À propos sur la qualité et l'exhaustivité des données ([#43](https://github.com/ColinMaudry/decp.info/issues/43)) +- ajout du nombre de marchés en plus du nombre de lignes dans la vue Tableau + #### 2.1.0 - Ajout des vues [acheteur](https://decp.info/acheteurs/24350013900189) ([#28](https://github.com/ColinMaudry/decp.info/issues/28)), [titulaire](https://decp.info/titulaires/51903758414786) ([#35](https://github.com/ColinMaudry/decp.info/issues/35)) et [marché](https://decp.info/marches/532239472000482025S00004) ([#40](https://github.com/ColinMaudry/decp.info/issues/40)) 🔎 diff --git a/pyproject.toml b/pyproject.toml index acfbe79..c976cf3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "decp.info" description = "Interface d'exploration et d'analyse des marchés publics français." -version = "2.1.0" +version = "2.1.1" requires-python = ">= 3.10" authors = [ { name = "Colin Maudry", email = "colin+decp@maudry.com" } diff --git a/src/figures.py b/src/figures.py index 860c695..25e1b9e 100644 --- a/src/figures.py +++ b/src/figures.py @@ -38,8 +38,8 @@ def get_map_count_marches(lf: pl.LazyFrame): range_color=(df["uid"].min(), df["uid"].max()), labels={"uid": "Marchés attribués"}, scope="europe", - width=1000, - height=800, + width=900, + height=700, ) fig.update_geos(fitbounds="locations", visible=False) diff --git a/src/pages/about.py b/src/pages/about.py index f2278e3..a11309a 100644 --- a/src/pages/about.py +++ b/src/pages/about.py @@ -54,7 +54,20 @@ les fonctionnalités actuelles de decp.info. Il est ainsi possible de rajouter - [de decp.info](https://github.com/ColinMaudry/decp.info) - [du traitement des données](https://github.com/ColinMaudry/decp-processing) """), - html.H4("Sources de données", id="sources"), + html.H4("Qualité et exhaustivité des données", id="qualite-exhausitivite"), + dcc.Markdown("""Les données visibles sur ce site proviennent exclusivement de la publication de données ouvertes par les acheteurs publics ou en leur nom, régie par [l'arrêté du 22 décembre 2022](https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000046850496). Leur qualité est donc principalement liée à la qualité de leur saisie par les agents publics, parfois peu aidé·es par la qualité des outils à leur disposition. Je pense que l'analyse de marchés individuels et le comptage de marchés sur des critères autres que financiers sont plutôt fiables. En revanche, certains montants de marché estimés à des valeurs farfelues ([1 euro](https://decp.info/marches/432766947000192025S01301), [1 milliard](https://decp.info/marches/2459004280001320210000000271) faussent les calculs par aggrégation (sommes, moyennes, médianes) et donc la production de statistiques financières fiables. Acheteurs, acheteuses : s'il vous plaît, essayez d'estimer les montants des marchés publics attribués de manière plus précise. + +Quant à l'exhaustivité, je consolide toutes les sources de données exploitables que j'ai pu identifier (voir [statistiques](/statistiques)). Certains profils d'acheteurs ne publient pas leurs données malgré l'obligation réglementaire : + +- marches-securises.fr +- klekoon.fr (ils y travaillent) + +**marches-publics.gouv.fr** (PLACE, [AIFE](https://aife.economie.gouv.fr)), la plateforme des marchés de l'État, ne publie plus de données depuis le 1er janvier 2024 et l'entrée en vigueur de l'arrêté. Nous n'avons donc plus de données sur les marchés publics passés par les ministères, ainsi que sur ceux passés par les acheteurs clients d'[achatpublic.com](https://www.achatpublic.com), qui s'appuie sur les moyens de publication de l'AIFE. + +**marches-publics.info** (AWS) publie ses données de manière assez sporadique depuis début 2023. Compte tenu de son poids dans le secteur, c'est assez dommageable pour la transparence des marchés publics. + +Au milieu de ces mauvaises nouvelles, je tiens à souligner la belle continuité de la publication par la DGFiP des données des marchés publics remontées via le [protocole PES](https://www.collectivites-locales.gouv.fr/finances-locales/le-protocole-dechange-standard-pes). Merci à leurs équipes."""), + html.H4("Sources de données ", id="qualite-exhausitivite"), get_sources_tables(os.getenv("SOURCE_STATS_CSV_PATH")), html.H4("Mentions légales", id="mentions-legales"), dcc.Markdown(""" diff --git a/src/pages/home.py b/src/pages/home.py index e309bc0..164f12a 100644 --- a/src/pages/home.py +++ b/src/pages/home.py @@ -188,8 +188,7 @@ def update_table(page_current, page_size, filter_query, sort_by, data_timestamp) dff: pl.DataFrame = lff.collect() height = dff.height - - nb_rows = f"{format_number(height)} lignes" + nb_rows = f"{format_number(height)} lignes ({format_number(dff.select('uid').unique().height)} marchés)" # Pagination des données start_row = page_current * page_size