Simulating annual State grants to the French administrative divisions
Project description
leximpact-dotations-back
Ce dépôt est dédié aux calculs des dotations de l'État aux territoires. Il propose une API web répondant en particulier aux besoins de l'interface définie dans le dépôt leximpact-dotations-ui.
Pré-requis
Ce dépôt requiert le langage Python dans sa version 3.11
. Il utilise le gestionnaire de dépendances et de paquetage Poetry.
Gestion de versions de Python multiples avec pyenv
Si votre environnement local dispose déjà d'autres versions de Python, vous pouvez définir une version Python propre à ce dépôt avec pyenv.
Les commandes sont alors pyenv install 3.11
suivie de pyenv local 3.11
.
Pour relier la version du langage choisie à l'environnement isolé que créera Poetry, exécuter la commande suivante dans un terminal Shell :
poetry env use python3.11
Installer leximpact-dotations-back
Vérifier que la version de Python associée à Poetry est bien la version attendue :
poetry run python --version
# résultat attendu : Python 3.11.x
Pour installer les dépendances de ce dépôt, exécuter la commande suivante dans un terminal Shell :
poetry install
Ceci créera un environnement virtuel.
Si l'on souhaite voir l'environnement actif, celui-ci est indiqué parmi les environnements existants. Cette commande permet de les lister :
poetry env list
Exécuter leximpact-dotations-back
en local
Exécuter leximpact-dotations-back
revient à exécuter son API web grâce à la commande suivante :
poetry run fastapi dev leximpact_dotations_back/main.py
L'API est alors disponible à l'adresse locale suivante : http://127.0.0.1:8000
Sa documentation est automatiquement générée et accessible à l'adresse : http://127.0.0.1:8000/docs
Exécuter les tests
Pour vérifier les résultats des tests unitaires, exécuter la commande suivante :
poetry run pytest
Il est possible d'afficher les résultats de print
avec l'option -s
. Exemple sur un fichier de test :
poetry run pytest tests/2022/test_criteres_2022_2024.py -s
Par ailleurs, les traces de leximpact_dotations_back
sont gérées avec la librairie logging. Si l'on souhaite les afficher durant l'exécution des tests, exécuterles alors cette commande (ici pour les messages de niveau DEBUG
) :
poetry run pytest --log-cli-level=DEBUG
Ajuster le style du code
Vérifier le style du code avec flake8 :
poetry run flake8
Ou vérifier le style du code que vous avez ajouté avec :
poetry run flake8 `git ls-files | grep "\.py"`
Et le corriger automatiquement dans le répertoire courant et récursivement dans son contenu avec :
poetry run autopep8 .
La récursivité de cette commande n'est effective que lorsqu'elle est configuée pour autopep8 dans le fichier pyproject.toml
.
Données
La Direction générale des collectivités locales (DGCL), publie en donnée ouverte les critères de répartition des dotations. Ces données évoluent annuellement.
Données 2024
Pour le calcul des dotations de l'année 2024, leximpact-dotations-back
utilise le fichier criteres_repartition_2024.csv
. Celui-ci est obtenu selon les étapes suivantes :
- le fichier des critères pour la catégorie des communes
criteres_repartition_csv.php-6.xlsx
est téléchargé sur le site officiel, - le fichier
.xlsx
est ouvert dans un tableur (LibreOffice), - l'onglet
Critères de répartition
est exporté au format.csv
sousdata/raw/criteres_repartition_2024_raw.csv
. criteres_repartition_2024_raw.csv
est ensuite lu pour produire le fichier finalcriteres_repartition_2024.csv
grâce à la commande suivante :poetry run python data/raw/data_cleanup.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file leximpact_dotations_back-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: leximpact_dotations_back-0.2.3-py3-none-any.whl
- Upload date:
- Size: 27.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f070b655d9663c70ded7ad89de9a33a3b8e151d19c3f25d2ae88018d4a658632 |
|
MD5 | fd14d1b27f133827e37fd49ad268a1ac |
|
BLAKE2b-256 | a291cce32c6ab4ee192ee7146a54b9762e9a3f718d2ef5a23059ba379dd7b675 |