Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,13 @@ Handle priority fields to allow overriding some fields. (Identified use case: ma

```bash
# Validate a specific schema
frictionless validate build/schemas/dispositif-aide-pilotage.json
frictionless validate build/dispositif-aide-pilotage/schema.json

# Validate data against a schema
frictionless validate data.csv --schema build/schemas/dispositif-aide.json
frictionless validate data.csv --schema build/dispositif-aide/schema.json

# Validate all schemas
python3 scripts/validate_schemas.py
python3 src/validate_schemas.py
```

When working on the code, the evolutions should be tested with
Expand Down
5 changes: 0 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,6 @@ L'utilisation d'un schéma de données partagé est également utile pour facili

Enfin, il pourrait être pertinent de faire un lien entre un dispositif d'aide et les [subventions associées](https://schema.data.gouv.fr/scdl/subventions/) afin de connaitre les montants versés par ses dispositifs dans un usage de pilotage administratif ou d'évaluation de politique publique.

## Format des fichiers

Le fichier doit être au format csv, encodé en UTF-8. L'en-tête de colonne sur la première ligne est obligatoire.
Pour publier facilement un dispositif d'aide, il est possible d'utiliser [l’outil de publication de data.gouv.fr](https://publier.etalab.studio/fr/select?schema=etalab%2Fschema-dispositif-aide).

## Gestion du schéma

La gestion du schéma est centralisée sur [ce fichier grist](https://grist.numerique.gouv.fr/o/docs/uC2J5niqzb48/Gestion-des-schemas-des-dispositifs-daide).
Expand Down
33 changes: 33 additions & 0 deletions build/dispositif-aide-professionnels/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Dispositifs d'aides pour les professionnels

Extension du schéma dispositif-aide pour la cible 'professionnels'

## Composition

Ce schéma enrichit le socle commun « Dispositifs d'aides » avec les extensions suivantes :

- **Extension du schéma des dispositifs d'aides pour les aides dédiées aux professionnels** — Ajout de champs permettant de préciser l'éligibilité des entreprises aux différents dispositifs d'aides ainsi que les informations administratives nécessaires à leur instruction (base juridique, chaînage avec une demande de paiement).

## Contexte

Les dispositifs d'aides publiques peuvent prendre plusieurs formes (appels à projets, appels à manifestations d’intérêt, appels à communs, appels à candidatures...). Ils sont destinés à des acteurs multiples : des collectivités, des entreprises, des associations, des organismes de recherche, etc qui désirent bénéficier d'aides financières (subvention, dotation, prêt, avance remboursable, prise de participation...) ou d'aides en ingénierie (pour réaliser/financer des études, accompagner un projet, ou le valoriser a posteriori).

Ces dispositifs sont nombreux et sont créés par des entités publiques de portée locale ou nationale, induisant de la complexité pour les bénéficiaires potentiels de ces dispositifs : *comment s'assurer de la pertinence d'un dispositif ? Comment "comparer" des dispositifs entre eux ?*.

Pour les acteurs publics à l'origine de ces dispositifs, il y a également un enjeu de positionnement et de lisibilité : *Quelle complémentarité avec les dispositifs existants ? Comment rédiger mon dispositif pour le rendre compréhensible pour ses bénéficiaires potentiels ?*

## Finalité

Afin de faciliter la connaissance et l'échange de données relatives à ces dispositifs entre les services numériques publics, et améliorer le service rendu aux bénéficiaires, ce schéma de données a été créé, agrégeant la connaissance sur de nombreux dispositifs publics.

Les acteurs publics, créateurs de dispositifs, verront ainsi leurs dispositifs relayés dans d'autres services comme mission-transition-ecologique.beta.gouv.fr afin de toucher un plus grand nombre de bénéficiaires.

L'utilisation d'un schéma de données partagé est également utile pour faciliter l'articulation entre dispositifs, et offrir une meilleure lisibilité aux bénéficiaires.

Enfin, il pourrait être pertinent de faire un lien entre un dispositif d'aide et les [subventions associées](https://schema.data.gouv.fr/scdl/subventions/) afin de connaitre les montants versés par ses dispositifs dans un usage de pilotage administratif ou d'évaluation de politique publique.

## Gestion du schéma

La gestion du schéma est centralisée sur [ce fichier grist](https://grist.numerique.gouv.fr/o/docs/uC2J5niqzb48/Gestion-des-schemas-des-dispositifs-daide).
Ce fichier est librement accessible en lecture. Vous y trouverez notamment les listes de valeurs autorisées pour les champs sur lesquels des contraintes ont été imposées.
Vous y trouverez également un lien vers un channel de discussion si vous souhaitez participer au développement de ce schéma.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
],
"countryCode": "FR",
"homepage": "https://github.com/etalab/schema-dispositif-aide",
"path": "https://github.com/etalab/schema-dispositif-aide/raw/v0.2.0/build/schemas/dispositif-aide-professionnels.json",
"path": "https://github.com/etalab/schema-dispositif-aide/raw/v0.2.0/build/dispositif-aide-professionnels/schema.json",
"licenses": [
{
"title": "Etalab Licence Ouverte 2.0",
Expand All @@ -20,8 +20,8 @@
"resources": [
{
"title": "Fichier de validation (CSV)",
"name": "exemple-dispositif-aide-professionnels-csv",
"path": "exemples/par_schema/exemple-dispositif-aide-professionnels.csv"
"name": "exemple-csv",
"path": "https://github.com/etalab/schema-dispositif-aide/raw/v0.2.0/build/dispositif-aide-professionnels/exemple.csv"
}
],
"sources": [],
Expand Down
31 changes: 31 additions & 0 deletions build/dispositif-aide/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Dispositifs d'aides

Spécification du fichier d'échange relatif aux dispositifs d'aides.

## Composition

Ce schéma correspond au socle commun « Dispositifs d'aides », sans extension.

## Contexte

Les dispositifs d'aides publiques peuvent prendre plusieurs formes (appels à projets, appels à manifestations d’intérêt, appels à communs, appels à candidatures...). Ils sont destinés à des acteurs multiples : des collectivités, des entreprises, des associations, des organismes de recherche, etc qui désirent bénéficier d'aides financières (subvention, dotation, prêt, avance remboursable, prise de participation...) ou d'aides en ingénierie (pour réaliser/financer des études, accompagner un projet, ou le valoriser a posteriori).

Ces dispositifs sont nombreux et sont créés par des entités publiques de portée locale ou nationale, induisant de la complexité pour les bénéficiaires potentiels de ces dispositifs : *comment s'assurer de la pertinence d'un dispositif ? Comment "comparer" des dispositifs entre eux ?*.

Pour les acteurs publics à l'origine de ces dispositifs, il y a également un enjeu de positionnement et de lisibilité : *Quelle complémentarité avec les dispositifs existants ? Comment rédiger mon dispositif pour le rendre compréhensible pour ses bénéficiaires potentiels ?*

## Finalité

Afin de faciliter la connaissance et l'échange de données relatives à ces dispositifs entre les services numériques publics, et améliorer le service rendu aux bénéficiaires, ce schéma de données a été créé, agrégeant la connaissance sur de nombreux dispositifs publics.

Les acteurs publics, créateurs de dispositifs, verront ainsi leurs dispositifs relayés dans d'autres services comme mission-transition-ecologique.beta.gouv.fr afin de toucher un plus grand nombre de bénéficiaires.

L'utilisation d'un schéma de données partagé est également utile pour faciliter l'articulation entre dispositifs, et offrir une meilleure lisibilité aux bénéficiaires.

Enfin, il pourrait être pertinent de faire un lien entre un dispositif d'aide et les [subventions associées](https://schema.data.gouv.fr/scdl/subventions/) afin de connaitre les montants versés par ses dispositifs dans un usage de pilotage administratif ou d'évaluation de politique publique.

## Gestion du schéma

La gestion du schéma est centralisée sur [ce fichier grist](https://grist.numerique.gouv.fr/o/docs/uC2J5niqzb48/Gestion-des-schemas-des-dispositifs-daide).
Ce fichier est librement accessible en lecture. Vous y trouverez notamment les listes de valeurs autorisées pour les champs sur lesquels des contraintes ont été imposées.
Vous y trouverez également un lien vers un channel de discussion si vous souhaitez participer au développement de ce schéma.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
],
"countryCode": "FR",
"homepage": "https://github.com/etalab/schema-dispositif-aide",
"path": "https://github.com/etalab/schema-dispositif-aide/raw/v0.2.0/build/schemas/dispositif-aide.json",
"path": "https://github.com/etalab/schema-dispositif-aide/raw/v0.2.0/build/dispositif-aide/schema.json",
"licenses": [
{
"title": "Etalab Licence Ouverte 2.0",
Expand All @@ -20,8 +20,8 @@
"resources": [
{
"title": "Fichier de validation (CSV)",
"name": "exemple-dispositif-aide-csv",
"path": "exemples/par_schema/exemple-dispositif-aide.csv"
"name": "exemple-csv",
"path": "https://github.com/etalab/schema-dispositif-aide/raw/v0.2.0/build/dispositif-aide/exemple.csv"
}
],
"sources": [],
Expand Down
File renamed without changes.
12 changes: 6 additions & 6 deletions datapackage.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@
"resources": [
{
"name": "dispositif-aide",
"path": "build/exemples/par_schema/exemple-dispositif-aide.csv",
"path": "build/dispositif-aide/exemple.csv",
"profile": "tabular-data-resource",
"format": "csv",
"mediatype": "text/csv",
"encoding": "utf-8",
"schema": "build/schemas/dispositif-aide.json",
"documentation": "README.md"
"schema": "build/dispositif-aide/schema.json",
"documentation": "build/dispositif-aide/README.md"
},
{
"name": "dispositif-aide-professionnels",
"path": "build/exemples/par_schema/exemple-dispositif-aide-professionnels.csv",
"path": "build/dispositif-aide-professionnels/exemple.csv",
"profile": "tabular-data-resource",
"format": "csv",
"mediatype": "text/csv",
"encoding": "utf-8",
"schema": "build/schemas/dispositif-aide-professionnels.json",
"documentation": "README.md"
"schema": "build/dispositif-aide-professionnels/schema.json",
"documentation": "build/dispositif-aide-professionnels/README.md"
}
]
}
2 changes: 1 addition & 1 deletion schema/core/schema-core.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
],
"countryCode": "FR",
"homepage": "https://github.com/etalab/schema-dispositif-aide",
"path": "https://github.com/etalab/schema-dispositif-aide/raw/v0.2.0/build/schemas/dispositif-aide.json",
"path": "https://github.com/etalab/schema-dispositif-aide/raw/v0.2.0/build/dispositif-aide/schema.json",
"licenses": [
{
"title": "Etalab Licence Ouverte 2.0",
Expand Down
2 changes: 1 addition & 1 deletion schema/extensions/cible/professionnels.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "professionnels",
"title": "Extension du schéma des dispositifs d'aides pour les aides dédiées aux professionnels",
"description": "Ajout de champs permettant de préciser l'éligibilité des entreprises aux différents dispositifs d'aides ainsi que les informations administratives nécessaires à leur instruction (référents internes, base juridique, chaînage avec une demande de paiement).",
"description": "Ajout de champs permettant de préciser l'éligibilité des entreprises aux différents dispositifs d'aides ainsi que les informations administratives nécessaires à leur instruction (base juridique, chaînage avec une demande de paiement).",
"contributors": [
{
"title": "Jean-Baptiste Le Devehat",
Expand Down
50 changes: 32 additions & 18 deletions src/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,23 @@
SCHEMA_EXTENSIONS = SCHEMA_DIR / "extensions"

# --- build outputs (relative to repo root) ---
BUILD_SCHEMAS = Path("build") / "schemas"
BUILD_EXEMPLES = Path("build") / "exemples"
BUILD_EXEMPLES_PAR_SCHEMA = BUILD_EXEMPLES / "par_schema"
BUILD_DIR = Path("build")
DATAPACKAGE = Path("datapackage.json")

# --- shared documentation (root README) ---
MAIN_README = Path("README.md")
# Sections of the root README copied verbatim into every per-schema README so
# each schema page carries the shared context/finality/management inline.
SHARED_README_SECTIONS = ("Contexte", "Finalité", "Gestion du schéma")

# --- per-schema filenames (inside build/<name>/) ---
SCHEMA_FILENAME = "schema.json"
EXEMPLE_FILENAME = "exemple.csv"
DOCUMENTATION = "README.md"

# Convenience "all fields" example, kept at the build root (not a schema dir).
EXEMPLE_COMPLET_CSV = "exemple-complet.csv"

# --- schema naming ---
BASE_NAME = "dispositif-aide"
BASE_TITLE = "Dispositifs d'aides"
Expand All @@ -24,26 +36,28 @@

# --- resource metadata ---
RESOURCE_CSV_LABEL = "Fichier de validation (CSV)"
EXEMPLE_COMPLET_CSV = "exemple-complet.csv"
DOCUMENTATION = "README.md"


def csv_filename(name: str) -> str:
"""Canonical CSV example filename."""
return f"exemple-{name}.csv"
def schema_subdir(name: str) -> Path:
"""Directory holding one schema's artifacts (relative to repo root)."""
return BUILD_DIR / name


def schema_json_path(name: str) -> Path:
"""Path to a schema's JSON file (relative to repo root)."""
return schema_subdir(name) / SCHEMA_FILENAME


def schema_resource_name(name: str) -> str:
"""Frictionless resource name for a schema's CSV example."""
return f"{csv_filename(name).removesuffix('.csv')}-csv"
def exemple_path(name: str) -> Path:
"""Path to a schema's example CSV (relative to repo root)."""
return schema_subdir(name) / EXEMPLE_FILENAME


def schema_resource_csv_path(name: str) -> str:
"""CSV path embedded in a schema resource (relative to build/)."""
rel = BUILD_EXEMPLES_PAR_SCHEMA.relative_to(BUILD_SCHEMAS.parent)
return (rel / csv_filename(name)).as_posix()
def readme_path(name: str) -> Path:
"""Path to a schema's README homepage (relative to repo root)."""
return schema_subdir(name) / DOCUMENTATION


def datapackage_csv_path(name: str) -> str:
"""CSV path embedded in datapackage.json (relative to repo root)."""
return (BUILD_EXEMPLES_PAR_SCHEMA / csv_filename(name)).as_posix()
def schema_resource_name() -> str:
"""Frictionless resource name for a schema's CSV example (e.g. ``exemple-csv``)."""
return EXEMPLE_FILENAME.replace(".", "-")
Loading
Loading