Compare commits

...

3 Commits

Author SHA1 Message Date
Colin Maudry a1ae962c73 Changelog 2.1.3 2025-10-04 19:15:56 +02:00
Colin Maudry 0404aa0973 Adaptation au format TableSchema 2025-10-04 19:13:51 +02:00
Colin Maudry effe01dedf Tentative d'auto release à partir d'un tag 2025-10-04 19:13:25 +02:00
5 changed files with 70 additions and 12 deletions
+32
View File
@@ -0,0 +1,32 @@
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
name: Create Release
jobs:
build:
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Get tag message
run: |
tag_message=`git show "$TAG" | grep "^\- "`
echo "tag_message=$tag_message" >> "$GITHUB_ENV"
env:
TAG: ${{ github.ref }}
- name: Create Release
id: create_release
uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body: ${{ env.tag_message }}
draft: false
prerelease: false
+6 -1
View File
@@ -1,6 +1,6 @@
# decp.info
> v2.1.2
> v2.1.3
Outil d'exploration et de téléchargement des données essentielles de la commande publique.
@@ -38,6 +38,11 @@ Ne pas oublier de mettre à jour les fichier .env.
## Notes de version
##### 2.1.3 (4 octobre 2025)
- tentative d'auto-release à chaque création de tag git
- adaptation au format TableSchema
##### 2.1.2 (3 octobre 2025)
- dataframe global plutôt que lazyframe, pour plus de résilience et charger toutes les données en mémoire
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "decp.info"
description = "Interface d'exploration et d'analyse des marchés publics français."
version = "2.1.2"
version = "2.1.3"
requires-python = ">= 3.10"
authors = [
{ name = "Colin Maudry", email = "colin+decp@maudry.com" }
+2 -1
View File
@@ -93,7 +93,8 @@ def get_marche_data(url) -> tuple[dict, list]:
def update_marche_info(marche, titulaires):
def make_parameter(col):
column_object = data_schema.get(col)
column_name = column_object.get("friendly_name") if column_object else col
print(column_object)
column_name = column_object.get("title") if column_object else col
if marche[col]:
if col == "acheteur_nom":
+29 -9
View File
@@ -270,7 +270,7 @@ def setup_table_columns(dff, hideable: bool = True, exclude: list = None) -> tup
continue
column_object = data_schema.get(column_id)
if column_object:
column_name = column_object.get("friendly_name", column_id)
column_name = column_object.get("title", column_id)
else:
column_name = column_id
@@ -286,7 +286,7 @@ def setup_table_columns(dff, hideable: bool = True, exclude: list = None) -> tup
if column_object:
tooltip[column_id] = {
"value": f"""**{column_object.get("friendly_name")}** ({column_id})
"value": f"""**{column_object.get("title")}** ({column_id})
"""
+ column_object["description"],
@@ -295,6 +295,32 @@ def setup_table_columns(dff, hideable: bool = True, exclude: list = None) -> tup
return columns, tooltip
def get_data_schema() -> dict:
# Récupération du schéma des données tabulaires
path = os.getenv("DATA_SCHEMA_PATH")
if path.startswith("http"):
original_schema: dict = get(
os.getenv("DATA_SCHEMA_PATH"), follow_redirects=True
).json()
elif os.path.exists(path):
with open(path) as f:
original_schema: dict = json.load(f)
else:
raise Exception(f"Chemin vers le schéma invalide: {path}")
new_schema = {}
for col in original_schema["fields"]:
new_schema[col["name"]] = col
new_schema["source"] = {
"description": "Code de la source des données, avec un lien vers le fichier Open Data dont proviennent les données de ce marché public.",
"title": "Source des données",
"short_name": "Source",
}
return new_schema
df: pl.DataFrame = get_decp_data()
departements = get_departements()
domain_name = (
@@ -308,10 +334,4 @@ meta_content = {
"Pour une commande publique accessible à toutes et tous."
),
}
# Récupération du schéma des données tabulaires
data_schema: dict = get(os.getenv("DATA_SCHEMA_PATH"), follow_redirects=True).json()
data_schema["source"] = {
"description": "Code de la source des données, avec un lien vers le fichier Open Data dont proviennent les données de ce marché public.",
"friendly_name": "Source des données",
}
data_schema = get_data_schema()