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.
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.
OpenFisca met à disposition une API Web publique qui ne demande aucune installation. Utilisez l'API publique si vous souhaitez :
- accéder à un paramètre (Ex : le montant du Smic horaire brut) ;
- consulter une formule de calcul (Ex : le calcul de l'allocation de base des allocations familiales) ;
- faire des calculs sur une situation (Ex : le calcul du coût du travail).
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.
Ce paquet requiert Python 3.9 et pip ou conda ou UV.
Plateformes supportées :
- distributions GNU/Linux (en particulier Debian and Ubuntu) ;
- Mac OS X ;
- Windows : Nous recommandons d'utiliser UV car conda ne va surement plus être supporté par la communauté OpenFisca, si vous souhaitez tout de même l'utiliser, voir la procédure ci-dessous Installez un environnement virtuel avec conda ; 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.
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.
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 🎉 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
- 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.
Suivez cette installation si vous souhaitez :
- enrichir ou modifier la législation d'OpenFisca-France ;
- contribuer au code source d'OpenFisca-France.
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.
🎉 OpenFisca-France est prêt à être utilisé !
Nous ne conseillons plus cette procédure, même pour les personnes utilisant Windows, il est préférable d'utiliser uv
. En effet, nous pensons arrêter de supporter conda
dans OpenFisca. Si vous en avez besoin, n'hésitez pas à ouvrir une issue sur le dépôt GitHub d'OpenFisca-France et nous expliquer votre cas d'utilisation.
Ceci vous permet d'obtenir en une seule installation :
- Python
- Le gestionnaire de paquets Anaconda.org
- Le gestionnaire d'environnement Python virtuel : conda
Voici les étapes à suivre :
- Installer la version communautaire/gratuite en suivant la procédure décrite sur le site Anaconda. A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place Miniconda qui occupe beaucoup moins d'espace disque. Cependant vous n'aurez pas l'interface graphique Anaconda Navigator qui vous permet de gérer vos environnements. Si vous êtes habituée à gérer les choses en ligne de commande, préfèrez Miniconda.
- Depuis le menu démarrer, exécuter
Anaconda Powershell Prompt
. Ou utiliser votre shell préféré avec Miniconda, il vous faudra peut-être utiliser la commandeconda init
, mais conda vous le dira. - Exécuter les commandes suivantes dans le shell:
- Ajouter
conda-forge
comme channel par défaut :conda config --add channels conda-forge && conda config --set channel_priority strict
- Créer un environnement virtuel dédié :
conda create --name openfisca python=3.9
- Activer l'environnement :
conda activate openfisca
- Installer OpenFisca :
conda install openfisca-france
- Ajouter
🎉 OpenFisca-France est prêt à être utilisé !
Ensuite, pour quitter l'environnement OpenFisca : conda deactivate
Pour y revenir : conda activate openfisca
A noter que OpenFisca-France est présent sur conda-forge et sur un channel dédié openfisca. C'est conda-forge qui est mis en avant dans cette documentation, car accessible par défaut dans les installations Anaconda.
A noter que l'installation d'Openfisca-France peut lever une erreur sur certaines machines Windows à cause de la longueur des chemins de certains fichiers de paramètres et des restrictions de longueur de chemin sous Windows. Une option possible pour résoudre ce problème est de lever cette limite (voir cette documentation pour Windows >=10)
- Pour enrichir ou faire évoluer la législation d'OpenFisca-France, lisez Coding the Legislation (en anglais).
- Pour contribuer au code, lisez le Contribution Guidebook (en anglais).
Pour faire tourner les tests d'OpenFisca-France, exécutez la commande suivante :
uv run make test
Pour utiliser une version spécifique de Python :
uv run --python 3.12.3 make test
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
Pour mettre à jour les dépendances, exécutez la commande suivante :
uv lock --upgrade
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
}
}
🎉 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).
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 version13.2.0
. En revanche, il est possible qu'une adaptation soit nécessaire sur mon client pour pouvoir utiliser la version14.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.
Voir la liste des contributeurs.