Skip to main content

OpenFisca Rules as Code model for France.

Project description

OpenFisca-France

Newsletter Twitter Slack Python PyPi Gitpod

[EN] Introduction

OpenFisca is a versatile microsimulation free software. This repository contains the OpenFisca model of the French tax and benefit system. Therefore, the working language here is French. You can however check the general OpenFisca documentation in English!

We host a public instance of of the OpenFisca-France Web API. Learn more about its endpoint in the Swagger documentation. If you need to run large amount of calculations, or add extensions, you should host your own instance.

[FR] Introduction

OpenFisca est un logiciel libre de micro-simulation. Ce dépôt contient la modélisation du système social et fiscal français. Pour plus d'information sur les fonctionnalités et la manière d'utiliser OpenFisca, vous pouvez consulter la documentation générale.

Nous mettons à disposition une instance publique de l'API Web OpenFisca-France. Découvrez ses capacité sur sa documentation Swagger. Si vous avez besoin de réaliser un grand nombre de calculs ou d'ajouter des extensions, vous pouvez servir votre propre instance.

API Web publique : interrogez OpenFisca-France sans installation

OpenFisca met à disposition une API Web publique qui ne demande aucune installation. Utilisez l'API publique si vous souhaitez :

L'ensembles des endpoints sont décrits dans la documentation Swagger.

L'explorateur de législation contient la liste des paramètres et variables disponibles.

Installation

Ce paquet requiert Python 3.9 et pip ou UV.

Plateformes supportées :

  • distributions GNU/Linux (en particulier Debian and Ubuntu) ;
  • Mac OS X ;
  • Windows : Nous recommandons d'utiliser UV car conda n'est plus supporté par la communauté OpenFisca; OpenFisca fonctionne également dans le sous-système Windows pour Linux (WSL). Dans ce dernier cas, il suffit de suivre la procédure pour Linux car vous êtes alors dans un environnement Linux.

Pour les autres OS : si vous pouvez exécuter Python et Numpy, l'installation d'OpenFisca devrait fonctionner.

A. Installation minimale, sans les sources

Suivez cette installation si vous souhaitez :

  • procéder à des calculs sur une large population ;
  • créer des simulations fiscales ;
  • écrire une extension au-dessus de la législation française, exemple : les extensions de Paris et Rennes ;
  • servir OpenFisca-France avec l'API Web OpenFisca.

Pour pouvoir modifier OpenFisca-France, consultez l'Installation avancée.

Installer OpenFisca-France avec pip install

Placer vous dans le répertoire où vous souhaitez faire vos développements, puis :

uv init

Ensuite, installez OpenFisca-France :

uv add openfisca-france
uv add openfisca-core[web-api]

Note: La deuxième commande est optionnelle. Elle vous permet d'installer l'API Web d'OpenFisca.

Félicitations :tada: OpenFisca-France est prêt à être utilisé !

Vous pouvez vous assurer que votre installation s'est bien passée en exécutant :

uv run openfisca -h

Prochaines étapes

  • Apprenez à utiliser OpenFisca avec nos tutoriels (en anglais).
  • Hébergez et servez votre instance d'OpenFisca-France avec l'API Web OpenFisca.

En fonction de vos projets, vous pourriez bénéficier de l'installation des paquets suivants dans votre virtualenv :

  • pour installer une extension ou écrire une législation au-dessus d'OpenFisca-France, consultez la documentation sur les extensions (en anglais) ;
  • pour représenter graphiquement vos résultats, essayez la bibliothèque matplotlib ;
  • pour gérer vos données, découvrez la bibliothèque pandas.

B. Installation avancée (Git Clone)

Suivez cette installation si vous souhaitez :

  • enrichir ou modifier la législation d'OpenFisca-France ;
  • contribuer au code source d'OpenFisca-France.

Cloner OpenFisca-France avec Git

Premièrement, assurez-vous que Git est bien installé sur votre machine.

Assurez-vous que vous êtes dans le répertoire où vous souhaitez cloner OpenFisca-France.

Clonez OpenFisca-France sur votre machine :

git clone https://github.com/openfisca/openfisca-france.git
cd openfisca-france

Vous pouvez vous assurer que votre installation s'est bien passée en exécutant :

uv run pytest tests/test_basics.py # Ces test peuvent prendre jusqu'à 60 secondes.

:tada: OpenFisca-France est prêt à être utilisé !

Prochaines étapes

Testing

Pour faire tourner les tests d'OpenFisca-France, exécutez la commande suivante :

uv run make test openfisca_args="--in-parallel"

(Ne fonctionne que si vous avez installé openfisca-core version 44.0.1 ou supérieure.)

Si cela utilise trop de mémoire, vous pouvez limiter le nombre de processus parallèles avec l'option --num-workers :

uv run make test openfisca_args="--in-parallel --num-workers 2"

Pour utiliser une version spécifique de Python :

uv run --python 3.12.3 make test

Style

Ce dépôt adhère à un style de code précis, et on vous invite à le suivre pour que vos contributions soient intégrées au plus vite.

L'analyse de style est déjà exécutée avec uv run make test. Pour le faire tourner de façon indépendante :

uv run make check-style

Pour corriger les erreurs de style de façon automatique:

uv run make format-style

Pour corriger les erreurs de style de façon automatique à chaque fois que vous faites un commit :

touch .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

tee -a .git/hooks/pre-commit << END
#!/bin/sh
#
# Automatically format your code before committing.
exec make format-style
END

Mettre à jour les dépendances

Pour mettre à jour les dépendances, exécutez la commande suivante :

uv lock --upgrade

Servez OpenFisca-France avec l'API Web OpenFisca

Il est possible de servir l'API Web d'OpenFisca-France sur votre propre serveur :

uv run openfisca serve

Pour en savoir plus sur la commande uv run openfisca serve et ses options, consultez la documentation de référence.

Testez votre installation en requêtant la commande suivante :

curl "http://localhost:5000/parameter/marche_travail.salaire_minimum.smic.smic_b_horaire"

Vous devriez avoir le resultat suivant :

{
  "description": "Smic horaire brut",
  "id": "marche_travail.salaire_minimum.smic.smic_b_horaire",
  "values": {
    "2001-08-01": 6.67,
    "2002-07-01": 6.83,
    "2003-07-01": 7.19,
    "2004-07-01": 7.61,
    "2005-07-01": 8.03,
    "2006-07-01": 8.27,
    "2007-07-01": 8.44,
    "2008-05-01": 8.63,
    "2008-07-01": 8.71,
    "2009-07-01": 8.82,
    "2010-01-01": 8.86,
    "2011-01-01": 9.0,
    "2011-12-01": 9.19,
    "2012-01-01": 9.22,
    "2012-07-01": 9.4,
    "2013-01-01": 9.43,
    "2014-01-01": 9.53,
    "2015-01-01": 9.61,
    "2016-01-01": 9.67,
    "2017-01-01": 9.76
  }
}

:tada: Vous servez OpenFisca-France via l'API Web OpenFisca !

Pour en savoir plus, explorez la documentation de l'API Web.

Vous pouvez activer le suivi des visites sur votre instance via Piwik avec le Tracker API OpenFisca (en anglais).

Stratégie de versionnement

Le code d'OpenFisca-France est déployé de manière continue et automatique. Ainsi, à chaque fois que le code de la législation évolue sur la branche principale master, une nouvelle version est publiée.

De nouvelles versions sont donc publiées très régulièrement. Cependant, la différence entre deux versions consécutives étant réduite, les efforts d'adaptation pour passer de l'une à l'autre sont en général très limités.

Par ailleurs, OpenFisca-France respecte les règles du versionnement sémantique. Tous les changements qui ne font pas l'objet d'une augmentation du numéro majeur de version sont donc garantis rétro-compatibles.

Par exemple, si mon application utilise la version 13.1.1, je sais qu'elle fonctionnera également avec la version 13.2.0. En revanche, il est possible qu'une adaptation soit nécessaire sur mon client pour pouvoir utiliser la version 14.0.0.

Enfin, les impacts et périmètres des évolutions sont tous documentés sur le CHANGELOG du package. Ce document permet aux contributeurs de suivre les évolutions et d'établir leur propre stratégie de mise à jour.

Contributeurs

Voir la liste des contributeurs.

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 Distribution

openfisca_france-175.0.24.tar.gz (6.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openfisca_france-175.0.24-py3-none-any.whl (8.5 MB view details)

Uploaded Python 3

File details

Details for the file openfisca_france-175.0.24.tar.gz.

File metadata

  • Download URL: openfisca_france-175.0.24.tar.gz
  • Upload date:
  • Size: 6.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for openfisca_france-175.0.24.tar.gz
Algorithm Hash digest
SHA256 1ff395d49271d8ed8d6dd2a6ce3d4a3e8f4ece5833911ede1af54ef514d7d26e
MD5 21834cec03fe5c0fcf38492c5592437b
BLAKE2b-256 56930b2f4bd05269c067fdc395faea470bf5764954970d092a15024bcbf9098c

See more details on using hashes here.

File details

Details for the file openfisca_france-175.0.24-py3-none-any.whl.

File metadata

File hashes

Hashes for openfisca_france-175.0.24-py3-none-any.whl
Algorithm Hash digest
SHA256 25a7ccca25af7414d232b0c1e97adf5aa1e131b3c27b90f49938c7a1b78f74cf
MD5 dbf71085e92cce950c71a131efade7b3
BLAKE2b-256 8c7fb7655a2d7d966eac6eef7e61d28c9170c91b5ef212593c9acfdb2e0a94e4

See more details on using hashes here.

Supported by

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