Skip to main content

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 :

  1. 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,
  2. le fichier .xlsx est ouvert dans un tableur (LibreOffice),
  3. l'onglet Critères de répartition est exporté au format .csv sous data/raw/criteres_repartition_2024_raw.csv.
  4. criteres_repartition_2024_raw.csv est ensuite lu pour produire le fichier final criteres_repartition_2024.csv grâce à la commande suivante :
    poetry run python data/raw/data_cleanup.py
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

leximpact_dotations_back-0.2.1-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file leximpact_dotations_back-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for leximpact_dotations_back-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e5549a9995482ba79eb9b9b7eba0d489c037df136a25abc8e9a7ad44ce55371
MD5 7ad5ee5347bd1e541c4946b2550cacf1
BLAKE2b-256 a3e7b75334a8387871e166e41f66cf81ff52ae78eac6dbf614b948707358196d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page