- Ajout des valeurs valides (
enum) dans le schéma pour chaque champ (si applicable)
- Support de plus d'acheteurs pour
acheteur_categorie
- Ajout du champ
acheteur_categoriequi indique la catégorie d'acheteur : Commune, Comm. de communes, Département, Département outre-mer, Région, État, Établissement hospitalier.
- Normalisation des codes CPV (
codeCPV) : les codes de moins de 8 caractères sont terminés par des "0", les codes de plus de 8 caractères sont raccourcis. Le numéro de contrôle à la fin des code était déjà supprimé.
- Ajout du champ
typequi indique le type de marché : fournitures, services ou travaux (dérivé du code CPV) distancerenommétitulaire_distancepar cohérence, cette donnée étant liée au titulaire, et un marché peut avoir plusieurs titulaires
- Ajout du champ
titulaire_categorie(PME, ETI, GE) - Publication de statistiques sur les marchés publics (statistiques_marches.json)
- Publication de statistiques sur les doublons entre sources de données (statistiques-doublons-sources.parquet)
- Ignorer les petits fichiers vides (< 180 octets)
- Gestion des datasets dépubliés par leur propriétaire (arrêt du workflow pour ne pas écraser les données de prod et pouvoir en extraire les données à présent indisponibles)
- Remplacement des guillemets simples par des apostrophes dans "objet"
- Ajout des données de l'API DUME (code source
scrap_aife_dume) (#144) - Ajout des données du profil d'acheteur Klekoon (code source
scrap_klekoon) (#71)
- Tri et numérotation des modifications après la concaténation plutôt que par ressource, pour réduire le nombre de doublons (#156)
- Utilisation du logger de prefect plûtot que
log_prints=True(#94)
- Téléchargement des ressources plus résilient aux erreurs (tenacity)
- Téléchargement des données établissements plus résilient aux erreurs (tenacity)
- Réduction du nombre de tâches prefect pour réduire la charge sur la BDD et la latence
- Utilisation du multithreading standard de Python plutôt que celui de Prefect
- Le nom d'établissement n'est ajouté entre parenthèses que s'il est différent de celui de l'unité légale
- Séparation des fichiers de référence et des fichiers de données
- Réorganisation des variables d'environnement
- Correction de certains imports de modules
- Abandon des données consolidées par le MINEF, récupération des données à la source (#151)
- Xmarchés
- AWS (officiel et legacy)
- PES marché (avant et après 2024)
- Dematis / e-marchespublics
- Ajout du champ
dureeRestanteMois(#135) - Amélioration des noms des titulaires (personnes physiques et non-diffusibles) (#145)
- Ajout de nombreux tests unitaires
- Amélioration de la gestion des modifications (#148)
- Traitement des ressources en parallèle (#113)
- Optimisation de la consommation de mémoire (matérialisation en parquet) (#153)
- Résilience contre les erreurs pendant get_clean (seule la ressource échoue, pas tout le process)
- Mise en place d'un système de cache custom (parquet)
- Protection contre la publication par erreur sur data.gouv.fr (ffaf0535)
- Utilisation de polars 1.35.2 plutôt que 1.36.1 qui semble ne pas marcher avec polars-ds
- Amélioration de la conso mémoire de la correction des titulaires (#146)
- Vérfication de la structude des données scrapées (AWS)
- Gestion propre des erreurs 429 Too Many Redirects (6fbd71e0)
- Skipper et non fail les ressources qui ne sont conformes à aucun schéma (2019 ou 2022)
- Stabilisation du scrap AWS (mais c'est pas encore ça) (#143)
- Ajout du nombre de marchés dans les stats NAF/CPV (#142)
- Correction des montants de marchés supérieurs à 99 milliards, ramenés à 12,311111111 milliards
- Correction des imports de modules
- Ajout d'une colonne
distancepour indiquer la distance en kilomètres entre l'acheteur et le titulaire (#138) (financé par Odialis) - Ajout de colonnes commune, région et département (nom et code) pour les acheteurs et les titulaires basés en France (#140) (financé par Odialis)
- Ajout de la génération d'un fichier de probabilités de code CPV par code NAF (#142, voir probabilites_naf_cpv.csv) (financé par Odialis)
- Correction du nettoyage des backslash AWS
- Regex générique pour corriger les problèmes d'échappements dans le JSON AWS
- Remplacements de texte pendant le scraping AWS pour produire du JSON valide
- stabilisation du scrap de marche-securises.fr (si
parse_result_page()échoue) - remplacements dans les données AWS pour redresser le JSON invalide (guillemets, etc.)
- scraping des données DECP de marches-oublics.infos (AWS) (#118)
- ajout des données AWS scrapées à la consolidation
- ajout des données officielles AWS (a priori incomplètes) à la consolidation
- scripts de scrap plus flexibles
- Nettoyage des "" id et acheteur_id avant filtrage et uid
- Ne pas parser une page qui retourne None (scrap)
- Extension du timeout pour la publication de nouvelles ressources sur data.gouv.fr
- Correction des titulaires null en cascade pour un marché et ses modifications
- Possibilité d'exclure des ressources ou de solo un dataset depuis .env
- Renommage atomique de decp.parquet pour facilité sa lecture par decp.info
- Support des marchés vides (marches-securises.fr)
- Exclusion de marches-securises.fr de la consolidation le temps de le réparer
- Stabilisation du scraping de marches-securises.fr
- Amélioration du rendu des messages de release
- scraping des données DECP de marches-securises.fr (#111)
- ajout des données de marches-securises.fr aux données consolidées (#111)
- correction des NaN dans les données consolidées par le MINEF (#127)
- auto-release à chaque fois que je push un tag
- nettoyage montant invalide de marché (#125)
- publication du schéma au format TableSchema (#126)
- amélioration des noms de colonnes dans le schéma pour les GUIs (
title,short_name)
- correction de coquilles dans le schéma
- distinction des différentes sources de données consolidées par le MINEF (
decp_minef_*)
- correction sommes et médianes des montants achetés par an (artefacts)
- le timeout de l'upload vers data.gouv.fr est configurable
- réduction de la consommation mémoire du chargement en base de données, puis désactivation (#124)
- amélioration de la création des chemins de fichiers configurés (#123)
- remise à zéro de /dist avant de générer statistiques.csv
- ajout du contributeur vico4445 <3
- Refonte totale reposant sur prefect, polars et ijson, au lieu de dataflow et pandas
- Ajout de sources de données en plus de celles consolidées par le MINEF
- plateformes Atexo
- données publiées par l'AIFE (PLACE, achatpublic.com)
- ARNIA (ex Ternum BFC)
- Mégalis Bretagne
- Support des formats JSON DECP 2019 et DECP 2022 en entrée
- Intégration des modifications de marché
- Traitement effectué en bonne partie en flux pour économiser la mémoire et gérer les gros fichiers en entrée