Skip to content

Instantly share code, notes, and snippets.

View ColinMaudry's full-sized avatar

Colin Maudry ColinMaudry

View GitHub Profile
@ColinMaudry
ColinMaudry / mar-basique-modifications.json
Last active September 28, 2019 14:30
Exemple de marché public (JSON)
{
"id": "2010345211201",
"acheteur": {
"id": "21350238800019",
"nom": "Ville de Rennes"
},
"nature": "Accord-cadre",
"objet": "Entretien des jardins municipaux",
"codeCPV": "77313000",
"procedure": "Marché négocié sans publicité ni mise en concurrence préalable",
@ColinMaudry
ColinMaudry / gendarmerie.csv
Last active July 27, 2020 14:45
Ajouts à dicosigles, merci à Denis Merigoux ! (https://merigoux.ovh)
term definition
AAA Acte Auto-Agressif
AAB Atteinte Aux Biens
AAP Adjoint Administratif Principal
AC Avoirs Criminels
ACCIMADA ACCIdent de transport de MAtières DAngereuses
ACCITRAPU ACCIdent de TRAnsport PUblic de personnes
ACCR Accident Corporel de la Circulation Routière
ACTIMAF ACTIvités MAFieuses
ADSL Application Demande et Suivi des Loiciels
@ColinMaudry
ColinMaudry / delegataires-service-public.sh
Created November 3, 2020 14:59
Script pour la création de la liste des délégataires de service public à partir des DECP
#!/bin/bash
# Vous devez installer jq https://stedolan.github.io/jq/
# decp.json : https://www.data.gouv.fr/fr/datasets/5cd57bf68b4c4179299eb0e9/#resource-16962018-5c31-4296-9454-5998585496d2
echo "nom,id,typeId" > delegataires-service-public.csv
jq '[.marches[] | select(.nature == "Délégation de service public") | .concessionnaires[] ] | unique_by(.id) | (map(keys) | add | unique) as $cols | map(. as $row | $cols | map($row[.])) as $rows | $rows[] | @csv ' json/decp.json | sort -u | sed 's/[\\"]//g' >> delegataires-service-public.csv
@ColinMaudry
ColinMaudry / traitement-du-flux.md
Last active November 11, 2020 14:45
Proposition pour le traitement du flux dans decp-rama

Proposition pour le traitement du flux dans decp-rama

Contexte

Actuellement, pour chaque source, decp-rama (code source) :

  1. télécharge l'ensemble des fichiers
  2. traite l'ensemble des fichiers
  3. fusionne les données de la source en un seul fichier (ex : json/data.gouv.fr_pes.json)
@ColinMaudry
ColinMaudry / test.csv
Created March 1, 2021 10:20
example csv
We can make this file beautiful and searchable if this error is corrected: Unclosed quoted field in line 4.
id,uid,acheteur.id,acheteur.nom,nature,objet,codeCPV,procedure,lieuExecution.code,lieuExecution.typeCode,lieuExecution.nom,dureeMois,dateNotification,datePublicationDonnees,montant,formePrix,titulaire.id,titulaire.typeIdentifiant,titulaire.denominationSociale,donneesActuelles
"201900056462300","23350001600040201900056462300","23350001600040",Conseil régional de Bretagne,Marché,"Impression d'affiches, de flyer et de dépliants pour l'évènement Urban Trail","79311000",Procédure adaptée,"35238",Code commune,Rennes,3,2019-04-27,2019-04-29,21800.10,Ferme,"81223113200034",SIRET,Colin Maudry,,0
"201900056462300","23350001600040201900056462300","23350001600040",Conseil régional de Bretagne,Marché,"Impression d'affiches, de flyer et de dépliants pour l'évènement Urban Trail","79311000",Procédure adaptée,"35238",Code commune,Rennes,3,2019-04-27,2019-04-29,21800.10,Ferme,"82379887100013",SIRET,Datactivist,,0
"201900056462300","23350001600040201900056462300","23350001600040",Conseil régional de Bretagne,Marché,"Impression
@ColinMaudry
ColinMaudry / select.py
Created March 10, 2026 11:09
Selection des marchés de travaux supérieurs à 75000€ remportés par des entreprises qui en ont remporté au moins 3
import polars as pl
from pathlib import Path
df = pl.read_parquet("https://www.data.gouv.fr/fr/datasets/r/11cea8e8-df3e-4ed1-932b-781e2635e432")
df = df.select("uid", "titulaire_nom", "titulaire_id", "titulaire_categorie",
"titulaire_departement_code", "acheteur_departement_code", "titulaire_distance",
"codeCPV", "type", "montant").filter((pl.col("type") == 'Travaux') & (pl.col("montant") >= 75000))
df2 = df.select("uid", "titulaire_id").group_by("titulaire_id").len(name="nb_marches").filter(pl.col("nb_marches") >= 3)
df = df.join(df2, on="titulaire_id", how="inner")