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

Installation

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 l'API web

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

Par ailleurs, les traces 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.

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.1.3-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for leximpact_dotations_back-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9498be4d49b1ad930c5c3b59927dc17ce909c6e4b7c8b7258b1425b725786a52
MD5 16c6152faf6260c1c9726ff992c054ab
BLAKE2b-256 07843d450bee9a5e9de4081fdc21ef6258485f9a66113cd8a0a4ef64aeba5915

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