Le projet Champollion, débuté en septembre 2022, avait pour objectif d'exploiter les données des Déclarations Sociales Nominatives (DSN). Une partie du projet a donc été consacré à la construction d'une base, nommée Champollion.
Sourcée sur les données des déclarations sociales nominatives (DSN). Elle a été élaborée pour être facilement exploitée à des fins opérationnelles par les directions métier. Pour ce faire, les données DSN sont, chaque mois, re-structurées, chaînées dans le temps et consolidées.
Le périmètre de la base Champollion est voué à s'étendre avec l'ajout de nouveaux cas d'usage. A date, elle n'est utilisée que pour l'application VisuDSN à destination de l'Inspection du Travail.
Dans la suite on considère la variable DSN_PROCESSING_REPOSITORY_PATH
qui est le chemin vers le dossier dsn_processing
. Pour exporter cette variable d'environnement, on pourra utiliser la commande export DSN_PROCESSING_REPOSITORY_PATH=...
.
Pour pouvoir exécuter les commandes suivantes, il faut que les paquets suivants soient installés sur votre machine :
python39
libpq-dev
python39-devel
p7zip*
Si votre gestionnaire de paquets est dnf
, vous pouvez vérifier l'installation de ces derniers avec les commandes suivantes :
dnf list installed | grep 'python39'
dnf list installed | grep 'libpq-dev'
dnf list installed | grep 'python39-devel'
dnf list installed | grep 'p7zip*'
Il faut également vérifier que le raccourci syntaxique de p7zip
est le bon (7za
) avec la commande 7za -version
.
export PYTHON_LIB_PATH=...
ln -s ${DSN_PROCESSING_REPOSITORY_PATH} ${PYTHON_PATH}/site-packages/dsn_processing
Le PYTHON_LIB_PATH
est le chemin qui pointe sur votre dossier lib
Python. Si j'utilise un environnement virtuel nommé lab
stocké dans un dossier env
à la racine de ma session par exemple, j'aurais PYTHON_LIB_PATH=~/env/lab/lib/python3.9
.
Pensez à exporter les variables HTTP_PROXY
et HTTPS_PROXY
avant de réaliser cette étape. Les valeurs de ces variables sont disponibles ici.
pip install -r ${DSN_PROCESSING_REPOSITORY_PATH}/dsn_processing/requirements.txt
Pensez à exporter les variables HTTP_PROXY
et HTTPS_PROXY
avant de réaliser cette étape. Les valeurs de ces variables sont disponibles ici.
cd ${DSN_PROCESSING_REPOSITORY_PATH}/dsn_processing
pre-commit install
Les variables d'environnement à définir sont répertoriées dans le fichier dsn_processing/.env.example. Il faut donc créer un fichier .env.dsn_processing
stocké à la racine de la session par exemple. Un fichier pré-rempli est disponible ici.
Pour exporter les variables de ce fichier, on pourra utiliser la fonction bash
suivante.
export $(grep -v '^#' ~/.env.dsn_processing | xargs)
On peut ajouter cette ligne à son fichier ~/.bashrc
si l'on souhaite que l'export de ces variables d'environnement soit automatique à l'ouverture d'un terminal.
A noter que des variables d'environnement complémentaires sont nécessaires pour déployer la brique Airflow.
- Auteur principal : Margot COSSON
- Co-auteurs : Léo GUILLAUME; Yan ZHI
Ce code est principalement hébergé sur un gitlab interne. Sa version publique sur Github est un mirroir du repository gitlab.
Le fichier .pre-commit-config.yaml
assure l'exécution de tests unitaires au moment d'un commit. Les tests dont le résultat n'empêche pas le commit sont étiquettés avec la balise non-blocking
. Pour s'exécuter, les tests ont besoin que les variables d'environnement listées dans le fichier dsn_processing/.env.example
soient définies.
La nomenclature retenue pour les commits est la suivante :
<type de tâche>(<objet de la tâche>) : <numéro de la tâche JIRA> <résumé>
Le type de la tâche pouvant être feat
pour une nouvelle fonctionnalité, chore
pour une tâche de maintenance, fix
pour la correction d'un bug et doc
pour de la documentation.
Exemple :
chore(all) : CHAM-506 move data processing code to an independent repo
-
Définissez vos variables d'environnement
HTPP_PROXY
etHTTPS_PROXY
pour avoir accès à internet. Des valeurs pré-définies sont disponibles ici. -
Configurez votre accès à github en générant un personal access token et en exécutant la commande suivante :
git config --global credential.git.luolix.top.token PERSONAL_ACCESS_TOKEN
Dans la suite, si une fenêtre github s'ouvre, n'ouvrez pas la redirection vers github.com, restez sur l'interface VsCode, entrez votre nom d'utilisateur puis saisissez le token d'accès comme mot de passe.
-
Dans le dossier
dsn_processing
, ajoutez la remote github :git remote add github-upstream https://github.com/DNUM-SocialGouv/dsn_processing.git
-
Poussez la dernière version du code :
git fetch upstream dev git checkout -B dev -t upstream/dev git push github-upstream dev
Le dossier dsn_processing/code
contient les fichiers de documentation. On génère un site statique à partir de ces derniers grâce à Sphinx. Pour ce faire :
- S'assurer que
sphinx
,myst-parser
etsphinx-rtd-theme
sont bien installés :
pip show sphinx
pip show myst-parser
pip show sphinx-rtd-theme
- Compiler les fichiers HTML
cd dsn_processing/docs
make html
- Visualiser le site statique en local sur le port XXXX
cd dsn_processing/docs/_build/html
python -m http.server XXXX
La documentation est déployée sur l'URL suivante : https://dnum-socialgouv.github.io/dsn_processing/build/html/index.html à l'aide de Github pages.
Le repo Github dsn_processing a été configuré pour re-déployer le site dès lors que la branche dev
subit une modification.