diff options
Diffstat (limited to 'python-openfisca-france.spec')
| -rw-r--r-- | python-openfisca-france.spec | 982 |
1 files changed, 982 insertions, 0 deletions
diff --git a/python-openfisca-france.spec b/python-openfisca-france.spec new file mode 100644 index 0000000..1eccd34 --- /dev/null +++ b/python-openfisca-france.spec @@ -0,0 +1,982 @@ +%global _empty_manifest_terminate_build 0 +Name: python-OpenFisca-France +Version: 146.0.3 +Release: 1 +Summary: French tax and benefit system for OpenFisca +License: http://www.fsf.org/licensing/licenses/agpl-3.0.html +URL: https://github.com/openfisca/openfisca-france +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/22/dd/a938a82a1c2b572d8f90bc2be81a57692757c3b259a77bc55d44d8ef70a7/OpenFisca-France-146.0.3.tar.gz +BuildArch: noarch + +Requires: python3-OpenFisca-Core +Requires: python3-autopep8 +Requires: python3-pytest +Requires: python3-requests +Requires: python3-scipy +Requires: python3-scipy +Requires: python3-autopep8 +Requires: python3-flake8 +Requires: python3-flake8-print +Requires: python3-flake8-quotes +Requires: python3-pytest +Requires: python3-scipy +Requires: python3-requests +Requires: python3-yamllint +Requires: python3-scipy +Requires: python3-pandas + +%description +# OpenFisca-France + +[](mailto:contact%40openfisca.org?subject=Subscribe%20to%20your%20newsletter%20%7C%20S'inscrire%20%C3%A0%20votre%20newsletter&body=%5BEnglish%20version%20below%5D%0A%0ABonjour%2C%0A%0AVotre%C2%A0pr%C3%A9sence%C2%A0ici%C2%A0nous%C2%A0ravit%C2%A0!%20%F0%9F%98%83%0A%0AEnvoyez-nous%20cet%20email%20pour%20que%20l'on%20puisse%20vous%20inscrire%20%C3%A0%20la%20newsletter.%20%0A%0AAh%C2%A0!%20Et%20si%20vous%20pouviez%20remplir%20ce%20petit%20questionnaire%2C%20%C3%A7a%20serait%20encore%20mieux%C2%A0!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2F45M0VR1TYKD1RGzX2%0A%0AAmiti%C3%A9%2C%0AL%E2%80%99%C3%A9quipe%20OpenFisca%0A%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ENGLISH%20VERSION%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AHi%2C%20%0A%0AWe're%20glad%20to%20see%20you%20here!%20%F0%9F%98%83%0A%0APlease%20send%20us%20this%20email%2C%20so%20we%20can%20subscribe%20you%20to%20the%20newsletter.%0A%0AAlso%2C%20if%20you%20can%20fill%20out%20this%20short%20survey%2C%20even%20better!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2FsOg8K1abhhm441LG2%0A%0ACheers%2C%0AThe%20OpenFisca%20Team) +[](https://twitter.com/intent/follow?screen_name=openfisca) +[](mailto:contact%40openfisca.org?subject=Join%20you%20on%20Slack%20%7C%20Nous%20rejoindre%20sur%20Slack&body=%5BEnglish%20version%20below%5D%0A%0ABonjour%2C%0A%0AVotre%C2%A0pr%C3%A9sence%C2%A0ici%C2%A0nous%C2%A0ravit%C2%A0!%20%F0%9F%98%83%0A%0ARacontez-nous%20un%20peu%20de%20vous%2C%20et%20du%20pourquoi%20de%20votre%20int%C3%A9r%C3%AAt%20de%20rejoindre%20la%20communaut%C3%A9%20OpenFisca%20sur%20Slack.%0A%0AAh%C2%A0!%20Et%20si%20vous%20pouviez%20remplir%20ce%20petit%20questionnaire%2C%20%C3%A7a%20serait%20encore%20mieux%C2%A0!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2F45M0VR1TYKD1RGzX2%0A%0AN%E2%80%99oubliez%20pas%20de%20nous%20envoyer%20cet%20email%C2%A0!%20Sinon%2C%20on%20ne%20pourra%20pas%20vous%20contacter%20ni%20vous%20inviter%20sur%20Slack.%0A%0AAmiti%C3%A9%2C%0AL%E2%80%99%C3%A9quipe%20OpenFisca%0A%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ENGLISH%20VERSION%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AHi%2C%20%0A%0AWe're%20glad%20to%20see%20you%20here!%20%F0%9F%98%83%0A%0APlease%20tell%20us%20a%20bit%20about%20you%20and%20why%20you%20want%20to%20join%20the%20OpenFisca%20community%20on%20Slack.%0A%0AAlso%2C%20if%20you%20can%20fill%20out%20this%20short%20survey%2C%20even%20better!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2FsOg8K1abhhm441LG2.%0A%0ADon't%20forget%20to%20send%20us%20this%20email!%20Otherwise%20we%20won't%20be%20able%20to%20contact%20you%20back%2C%20nor%20invite%20you%20on%20Slack.%0A%0ACheers%2C%0AThe%20OpenFisca%20Team) +[](https://pypi.python.org/pypi/openfisca-france) +[](https://pypi.python.org/pypi/openfisca-france) +[](https://gitpod-referer.now.sh/api/gitpod-referer-redirect) + +## [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](https://openfisca.org/doc/) in English! +> We host a public instance of of the [OpenFisca-France Web API](https://fr.openfisca.org/api/v24/). Learn more about its endpoint in the [Swagger documentation](https://fr.openfisca.org/legislation/swagger). +> If you need to run large amount of calculations, or add extensions, you should [host your own instance](#servez-openfisca-france-avec-l-api-web-openfisca). + +## [FR] Introduction +[OpenFisca](https://www.openfisca.fr/) 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](https://openfisca.org/doc/). +> Nous mettons à disposition une instance publique de [l'API Web OpenFisca-France](https://fr.openfisca.org/api/v24/). Découvrez ses capacité sur sa [documentation Swagger](https://fr.openfisca.org/legislation/swagger). +> Si vous avez besoin de réaliser un grand nombre de calculs ou d'ajouter des extensions, vous pouvez [servir votre propre instance](#servez-openfisca-france-avec-l-api-web-openfisca). + +## API Web publique : interrogez OpenFisca-France sans installation + +OpenFisca met à disposition une [API Web publique](https://openfisca.org/doc/openfisca-web-api/endpoints.html) qui ne demande aucune installation. +Utilisez l'API publique si vous souhaitez : +- accéder à un paramètre (Ex : [le montant du SMIC horaire brut](https://fr.openfisca.org/api/v24/parameter/marche_travail.salaire_minimum.smic_h_b)) ; +- consulter une formule de calcul (Ex : [le calcul de l'allocation de base des allocations familiales](https://fr.openfisca.org/api/v24/variable/af_base)) ; +- 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](https://fr.openfisca.org/legislation/swagger). + +[L'explorateur de législation](https://legislation.openfisca.fr/) contient la liste des paramètres et variables disponibles. + +## Installation + +Ce paquet requiert [Python 3.7](https://www.python.org/downloads/release/python-370/) et [pip](https://pip.pypa.io/en/stable/installing/) ou [conda](https://www.anaconda.com/products/individual). + +Plateformes supportées : +- distributions GNU/Linux (en particulier Debian and Ubuntu) ; +- Mac OS X ; +- Windows : Nous recommandons d'utiliser [conda](https://www.anaconda.com/products/individual), voir la procédure ci-dessous [Installez un environnement virtuel avec conda](./README.md#installez-un-environnement-virtuel-avec-conda) ; OpenFisca fonctionne également dans le [sous-système Windows pour Linux (WSL)](https://docs.microsoft.com/fr-fr/windows/wsl/install). 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. + +### Installez un environnement virtuel avec Pew + +Nous recommandons l'utilisation d'un [environnement virtuel](https://virtualenv.pypa.io/en/stable/) (_virtualenv_) avec un gestionnaire de _virtualenv_ tel que [Pew](https://github.com/berdario/pew). Vous pouvez aussi utiliser le gestionnaire d'environnemnt officiel de Python : [venv](https://docs.python.org/3/library/venv.html). + +- Un _[virtualenv](https://virtualenv.pypa.io/en/stable/)_ crée un environnement pour les besoins spécifiques du projet sur lequel vous travaillez. +- Un gestionnaire de _virtualenv_, tel que [Pew](https://github.com/berdario/pew), vous permet de facilement créer, supprimer et naviguer entre différents projets. + +Pour installer Pew, lancez une fenêtre de terminal et suivez ces instructions : + +```sh +python --version # Python 3.7.0 ou plus récent devrait être installé sur votre ordinateur. +# Si non, téléchargez-le sur http://www.python.org et téléchargez pip. +``` + +```sh +pip install --upgrade pip +pip install pew +``` +Créez un nouveau _virtualenv_ nommé **openfisca** et configurez-le avec python 3.7 : + +```sh +pew new openfisca --python=python3.7 +# Si demandé, répondez "Y" à la question sur la modification du fichier de configuration de votre shell +``` +Le _virtualenv_ **openfisca** sera alors activé, c'est-à-dire que les commandes suivantes s'exécuteront directement dans l'environnement virtuel. Vous verrez dans votre terminal : + +```sh +Installing setuptools, pip, wheel...done. +Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return. +``` + +Informations complémentaires : +- sortez du _virtualenv_ en tapant `exit` (or Ctrl-D) ; +- re-rentrez en tapant `pew workon openfisca` dans votre terminal. + +Bravo :tada: Vous êtes prêt·e à installer OpenFisca-France ! + +Nous proposons deux procédures d'installation. Choisissez l'installation A ou B ci-dessous en fonction de l'usage que vous souhaitez faire d'OpenFisca-France. + +### A. Installation minimale (pip install) + +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](https://github.com/sgmap/openfisca-paris) et [Rennes](https://github.com/sgmap/openfisca-rennesmetropole) ; +- servir OpenFisca-France avec l'API Web OpenFisca. + +Pour pouvoir modifier OpenFisca-France, consultez l'[Installation avancée](#b-installation-avancée-git-clone). + +#### Installer OpenFisca-France avec pip install + +Dans votre _virtualenv_, vérifiez les pré-requis : + +```sh +python --version # Devrait afficher "Python 3.7.xx". +#Si non, vérifiez que vous passez --python=python3.7 lors de la création de votre environnement virtuel. +``` + +```sh +pip --version # Devrait afficher au moins 9.0.x +#Si non, exécutez "pip install --upgrade pip". +``` +Installez OpenFisca-France : + +```sh +pip install openfisca-france && pip install openfisca-core[web-api] +``` +> _Note: La deuxième partie de la commande, à partir du `&&`, est optionnelle. Elle vous permet d'installer l'API Web d'OpenFisca._ + +Félicitations :tada: OpenFisca-France est prêt à être utilisé ! + +#### Prochaines étapes + +- Apprenez à utiliser OpenFisca avec nos [tutoriels](https://openfisca.org/doc/) (en anglais). +- Hébergez et servez votre instance d'OpenFisca-France avec l'[API Web OpenFisca](#servez-openfisca-france-avec-lapi-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](https://openfisca.org/doc/contribute/extensions.html) (en anglais) ; +- pour représenter graphiquement vos résultats, essayez la bibliothèque [matplotlib](http://matplotlib.org/) ; +- pour gérer vos données, découvrez la bibliothèque [pandas](http://pandas.pydata.org/). + +### 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](https://www.git-scm.com/) est bien installé sur votre machine. + +Dans votre _virtualenv_, assurez-vous que vous êtes dans le répertoire où vous souhaitez cloner OpenFisca-France. + +Vérifiez les pré-requis : + +```sh +python --version # Devrait afficher "Python 3.7.xx". +#Si non, vérifiez que vous passez --python=python3.7 lors de la création de votre environnement virtuel. +``` + +```sh +pip --version # Devrait afficher au moins 9.0. +#Si non, exécutez "pip install --upgrade pip". +``` + +Clonez OpenFisca-France sur votre machine : + +```sh +git clone https://github.com/openfisca/openfisca-france.git +cd openfisca-france +pip install --editable .[dev] && pip install openfisca-core[web-api] +``` + +Vous pouvez vous assurer que votre installation s'est bien passée en exécutant : + +```sh +pytest tests/test_basics.py # Ces test peuvent prendre jusqu'à 60 secondes. +``` +:tada: OpenFisca-France est prêt à être utilisé ! + +### Installez un environnement virtuel avec conda + +Nous conseillons cette procédure pour les personnes utilisant Windows et n'ayant pas d'environnement Python fonctionnel. Elle fonctionne également sous Linux et macOS. + +Ceci vous permet d'obtenir en une seule installation : +- Python +- Le gestionnaire de paquets [Anaconda.org](https://docs.anaconda.com/anacondaorg/user-guide/) +- Le gestionnaire d'environnement Python virtuel : [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html) + +Voici les étapes à suivre : + +- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque. Cependant vous n'aurez pas l'interface graphique [Anaconda Navigator](https://docs.anaconda.com/anaconda/navigator/index.html) 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 commande `conda 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.7` + - Activer l'environnement : `conda activate openfisca` + - Installer OpenFisca : `conda install openfisca-france` + +:tada: 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](https://anaconda.org/conda-forge/openfisca-france) et sur un _channel_ dédié [openfisca](https://anaconda.org/openfisca/openfisca-france). C'est conda-forge qui est mis en avant dans cette documentation, car accessible par défaut dans les installations Anaconda. + +#### Prochaines étapes + +- Pour enrichir ou faire évoluer la législation d'OpenFisca-France, lisez _[Coding the Legislation](https://openfisca.org/doc/coding-the-legislation/index.html)_ (en anglais). +- Pour contribuer au code, lisez le _[Contribution Guidebook](https://openfisca.org/doc/contribute/index.html)_ (en anglais). + +## Testing + +Pour faire tourner les tests d'OpenFisca-France, exécutez la commande suivante : + +```sh +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 `make test`. Pour le faire tourner de façon indépendante : + +```sh +make check-style +``` + +Pour corriger les erreurs de style de façon automatique: + +```sh +make format-style +``` + +Pour corriger les erreurs de style de façon automatique à chaque fois que vous faites un _commit_ : + +```sh +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 +``` + +## Servez OpenFisca-France avec l'API Web OpenFisca + +Il est possible de servir l'API Web d'OpenFisca-France sur votre propre serveur : + +```sh +openfisca serve +``` + +Pour en savoir plus sur la commande `openfisca serve` et ses options, consultez la [documentation de référence](https://openfisca.org/doc/openfisca-python-api/openfisca_serve.html). + +Testez votre installation en requêtant la commande suivante : + +```sh +curl "http://localhost:5000/parameter/marche_travail.salaire_minimum.smic_h_b" +``` +Vous devriez avoir le resultat suivant : +```JSON +{ + "description": "SMIC horaire brut", + "id": "marche_travail.salaire_minimum.smic_h_b", + "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](https://fr.openfisca.org/legislation/swagger). + +Vous pouvez activer le suivi des visites sur votre instance via Piwik avec _[le Tracker API OpenFisca](https://github.com/openfisca/tracker)_ (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](http://semver.org/). 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](CHANGELOG.md) 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](https://github.com/openfisca/openfisca-france/graphs/contributors). + + +%package -n python3-OpenFisca-France +Summary: French tax and benefit system for OpenFisca +Provides: python-OpenFisca-France +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-OpenFisca-France +# OpenFisca-France + +[](mailto:contact%40openfisca.org?subject=Subscribe%20to%20your%20newsletter%20%7C%20S'inscrire%20%C3%A0%20votre%20newsletter&body=%5BEnglish%20version%20below%5D%0A%0ABonjour%2C%0A%0AVotre%C2%A0pr%C3%A9sence%C2%A0ici%C2%A0nous%C2%A0ravit%C2%A0!%20%F0%9F%98%83%0A%0AEnvoyez-nous%20cet%20email%20pour%20que%20l'on%20puisse%20vous%20inscrire%20%C3%A0%20la%20newsletter.%20%0A%0AAh%C2%A0!%20Et%20si%20vous%20pouviez%20remplir%20ce%20petit%20questionnaire%2C%20%C3%A7a%20serait%20encore%20mieux%C2%A0!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2F45M0VR1TYKD1RGzX2%0A%0AAmiti%C3%A9%2C%0AL%E2%80%99%C3%A9quipe%20OpenFisca%0A%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ENGLISH%20VERSION%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AHi%2C%20%0A%0AWe're%20glad%20to%20see%20you%20here!%20%F0%9F%98%83%0A%0APlease%20send%20us%20this%20email%2C%20so%20we%20can%20subscribe%20you%20to%20the%20newsletter.%0A%0AAlso%2C%20if%20you%20can%20fill%20out%20this%20short%20survey%2C%20even%20better!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2FsOg8K1abhhm441LG2%0A%0ACheers%2C%0AThe%20OpenFisca%20Team) +[](https://twitter.com/intent/follow?screen_name=openfisca) +[](mailto:contact%40openfisca.org?subject=Join%20you%20on%20Slack%20%7C%20Nous%20rejoindre%20sur%20Slack&body=%5BEnglish%20version%20below%5D%0A%0ABonjour%2C%0A%0AVotre%C2%A0pr%C3%A9sence%C2%A0ici%C2%A0nous%C2%A0ravit%C2%A0!%20%F0%9F%98%83%0A%0ARacontez-nous%20un%20peu%20de%20vous%2C%20et%20du%20pourquoi%20de%20votre%20int%C3%A9r%C3%AAt%20de%20rejoindre%20la%20communaut%C3%A9%20OpenFisca%20sur%20Slack.%0A%0AAh%C2%A0!%20Et%20si%20vous%20pouviez%20remplir%20ce%20petit%20questionnaire%2C%20%C3%A7a%20serait%20encore%20mieux%C2%A0!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2F45M0VR1TYKD1RGzX2%0A%0AN%E2%80%99oubliez%20pas%20de%20nous%20envoyer%20cet%20email%C2%A0!%20Sinon%2C%20on%20ne%20pourra%20pas%20vous%20contacter%20ni%20vous%20inviter%20sur%20Slack.%0A%0AAmiti%C3%A9%2C%0AL%E2%80%99%C3%A9quipe%20OpenFisca%0A%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ENGLISH%20VERSION%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AHi%2C%20%0A%0AWe're%20glad%20to%20see%20you%20here!%20%F0%9F%98%83%0A%0APlease%20tell%20us%20a%20bit%20about%20you%20and%20why%20you%20want%20to%20join%20the%20OpenFisca%20community%20on%20Slack.%0A%0AAlso%2C%20if%20you%20can%20fill%20out%20this%20short%20survey%2C%20even%20better!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2FsOg8K1abhhm441LG2.%0A%0ADon't%20forget%20to%20send%20us%20this%20email!%20Otherwise%20we%20won't%20be%20able%20to%20contact%20you%20back%2C%20nor%20invite%20you%20on%20Slack.%0A%0ACheers%2C%0AThe%20OpenFisca%20Team) +[](https://pypi.python.org/pypi/openfisca-france) +[](https://pypi.python.org/pypi/openfisca-france) +[](https://gitpod-referer.now.sh/api/gitpod-referer-redirect) + +## [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](https://openfisca.org/doc/) in English! +> We host a public instance of of the [OpenFisca-France Web API](https://fr.openfisca.org/api/v24/). Learn more about its endpoint in the [Swagger documentation](https://fr.openfisca.org/legislation/swagger). +> If you need to run large amount of calculations, or add extensions, you should [host your own instance](#servez-openfisca-france-avec-l-api-web-openfisca). + +## [FR] Introduction +[OpenFisca](https://www.openfisca.fr/) 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](https://openfisca.org/doc/). +> Nous mettons à disposition une instance publique de [l'API Web OpenFisca-France](https://fr.openfisca.org/api/v24/). Découvrez ses capacité sur sa [documentation Swagger](https://fr.openfisca.org/legislation/swagger). +> Si vous avez besoin de réaliser un grand nombre de calculs ou d'ajouter des extensions, vous pouvez [servir votre propre instance](#servez-openfisca-france-avec-l-api-web-openfisca). + +## API Web publique : interrogez OpenFisca-France sans installation + +OpenFisca met à disposition une [API Web publique](https://openfisca.org/doc/openfisca-web-api/endpoints.html) qui ne demande aucune installation. +Utilisez l'API publique si vous souhaitez : +- accéder à un paramètre (Ex : [le montant du SMIC horaire brut](https://fr.openfisca.org/api/v24/parameter/marche_travail.salaire_minimum.smic_h_b)) ; +- consulter une formule de calcul (Ex : [le calcul de l'allocation de base des allocations familiales](https://fr.openfisca.org/api/v24/variable/af_base)) ; +- 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](https://fr.openfisca.org/legislation/swagger). + +[L'explorateur de législation](https://legislation.openfisca.fr/) contient la liste des paramètres et variables disponibles. + +## Installation + +Ce paquet requiert [Python 3.7](https://www.python.org/downloads/release/python-370/) et [pip](https://pip.pypa.io/en/stable/installing/) ou [conda](https://www.anaconda.com/products/individual). + +Plateformes supportées : +- distributions GNU/Linux (en particulier Debian and Ubuntu) ; +- Mac OS X ; +- Windows : Nous recommandons d'utiliser [conda](https://www.anaconda.com/products/individual), voir la procédure ci-dessous [Installez un environnement virtuel avec conda](./README.md#installez-un-environnement-virtuel-avec-conda) ; OpenFisca fonctionne également dans le [sous-système Windows pour Linux (WSL)](https://docs.microsoft.com/fr-fr/windows/wsl/install). 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. + +### Installez un environnement virtuel avec Pew + +Nous recommandons l'utilisation d'un [environnement virtuel](https://virtualenv.pypa.io/en/stable/) (_virtualenv_) avec un gestionnaire de _virtualenv_ tel que [Pew](https://github.com/berdario/pew). Vous pouvez aussi utiliser le gestionnaire d'environnemnt officiel de Python : [venv](https://docs.python.org/3/library/venv.html). + +- Un _[virtualenv](https://virtualenv.pypa.io/en/stable/)_ crée un environnement pour les besoins spécifiques du projet sur lequel vous travaillez. +- Un gestionnaire de _virtualenv_, tel que [Pew](https://github.com/berdario/pew), vous permet de facilement créer, supprimer et naviguer entre différents projets. + +Pour installer Pew, lancez une fenêtre de terminal et suivez ces instructions : + +```sh +python --version # Python 3.7.0 ou plus récent devrait être installé sur votre ordinateur. +# Si non, téléchargez-le sur http://www.python.org et téléchargez pip. +``` + +```sh +pip install --upgrade pip +pip install pew +``` +Créez un nouveau _virtualenv_ nommé **openfisca** et configurez-le avec python 3.7 : + +```sh +pew new openfisca --python=python3.7 +# Si demandé, répondez "Y" à la question sur la modification du fichier de configuration de votre shell +``` +Le _virtualenv_ **openfisca** sera alors activé, c'est-à-dire que les commandes suivantes s'exécuteront directement dans l'environnement virtuel. Vous verrez dans votre terminal : + +```sh +Installing setuptools, pip, wheel...done. +Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return. +``` + +Informations complémentaires : +- sortez du _virtualenv_ en tapant `exit` (or Ctrl-D) ; +- re-rentrez en tapant `pew workon openfisca` dans votre terminal. + +Bravo :tada: Vous êtes prêt·e à installer OpenFisca-France ! + +Nous proposons deux procédures d'installation. Choisissez l'installation A ou B ci-dessous en fonction de l'usage que vous souhaitez faire d'OpenFisca-France. + +### A. Installation minimale (pip install) + +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](https://github.com/sgmap/openfisca-paris) et [Rennes](https://github.com/sgmap/openfisca-rennesmetropole) ; +- servir OpenFisca-France avec l'API Web OpenFisca. + +Pour pouvoir modifier OpenFisca-France, consultez l'[Installation avancée](#b-installation-avancée-git-clone). + +#### Installer OpenFisca-France avec pip install + +Dans votre _virtualenv_, vérifiez les pré-requis : + +```sh +python --version # Devrait afficher "Python 3.7.xx". +#Si non, vérifiez que vous passez --python=python3.7 lors de la création de votre environnement virtuel. +``` + +```sh +pip --version # Devrait afficher au moins 9.0.x +#Si non, exécutez "pip install --upgrade pip". +``` +Installez OpenFisca-France : + +```sh +pip install openfisca-france && pip install openfisca-core[web-api] +``` +> _Note: La deuxième partie de la commande, à partir du `&&`, est optionnelle. Elle vous permet d'installer l'API Web d'OpenFisca._ + +Félicitations :tada: OpenFisca-France est prêt à être utilisé ! + +#### Prochaines étapes + +- Apprenez à utiliser OpenFisca avec nos [tutoriels](https://openfisca.org/doc/) (en anglais). +- Hébergez et servez votre instance d'OpenFisca-France avec l'[API Web OpenFisca](#servez-openfisca-france-avec-lapi-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](https://openfisca.org/doc/contribute/extensions.html) (en anglais) ; +- pour représenter graphiquement vos résultats, essayez la bibliothèque [matplotlib](http://matplotlib.org/) ; +- pour gérer vos données, découvrez la bibliothèque [pandas](http://pandas.pydata.org/). + +### 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](https://www.git-scm.com/) est bien installé sur votre machine. + +Dans votre _virtualenv_, assurez-vous que vous êtes dans le répertoire où vous souhaitez cloner OpenFisca-France. + +Vérifiez les pré-requis : + +```sh +python --version # Devrait afficher "Python 3.7.xx". +#Si non, vérifiez que vous passez --python=python3.7 lors de la création de votre environnement virtuel. +``` + +```sh +pip --version # Devrait afficher au moins 9.0. +#Si non, exécutez "pip install --upgrade pip". +``` + +Clonez OpenFisca-France sur votre machine : + +```sh +git clone https://github.com/openfisca/openfisca-france.git +cd openfisca-france +pip install --editable .[dev] && pip install openfisca-core[web-api] +``` + +Vous pouvez vous assurer que votre installation s'est bien passée en exécutant : + +```sh +pytest tests/test_basics.py # Ces test peuvent prendre jusqu'à 60 secondes. +``` +:tada: OpenFisca-France est prêt à être utilisé ! + +### Installez un environnement virtuel avec conda + +Nous conseillons cette procédure pour les personnes utilisant Windows et n'ayant pas d'environnement Python fonctionnel. Elle fonctionne également sous Linux et macOS. + +Ceci vous permet d'obtenir en une seule installation : +- Python +- Le gestionnaire de paquets [Anaconda.org](https://docs.anaconda.com/anacondaorg/user-guide/) +- Le gestionnaire d'environnement Python virtuel : [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html) + +Voici les étapes à suivre : + +- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque. Cependant vous n'aurez pas l'interface graphique [Anaconda Navigator](https://docs.anaconda.com/anaconda/navigator/index.html) 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 commande `conda 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.7` + - Activer l'environnement : `conda activate openfisca` + - Installer OpenFisca : `conda install openfisca-france` + +:tada: 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](https://anaconda.org/conda-forge/openfisca-france) et sur un _channel_ dédié [openfisca](https://anaconda.org/openfisca/openfisca-france). C'est conda-forge qui est mis en avant dans cette documentation, car accessible par défaut dans les installations Anaconda. + +#### Prochaines étapes + +- Pour enrichir ou faire évoluer la législation d'OpenFisca-France, lisez _[Coding the Legislation](https://openfisca.org/doc/coding-the-legislation/index.html)_ (en anglais). +- Pour contribuer au code, lisez le _[Contribution Guidebook](https://openfisca.org/doc/contribute/index.html)_ (en anglais). + +## Testing + +Pour faire tourner les tests d'OpenFisca-France, exécutez la commande suivante : + +```sh +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 `make test`. Pour le faire tourner de façon indépendante : + +```sh +make check-style +``` + +Pour corriger les erreurs de style de façon automatique: + +```sh +make format-style +``` + +Pour corriger les erreurs de style de façon automatique à chaque fois que vous faites un _commit_ : + +```sh +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 +``` + +## Servez OpenFisca-France avec l'API Web OpenFisca + +Il est possible de servir l'API Web d'OpenFisca-France sur votre propre serveur : + +```sh +openfisca serve +``` + +Pour en savoir plus sur la commande `openfisca serve` et ses options, consultez la [documentation de référence](https://openfisca.org/doc/openfisca-python-api/openfisca_serve.html). + +Testez votre installation en requêtant la commande suivante : + +```sh +curl "http://localhost:5000/parameter/marche_travail.salaire_minimum.smic_h_b" +``` +Vous devriez avoir le resultat suivant : +```JSON +{ + "description": "SMIC horaire brut", + "id": "marche_travail.salaire_minimum.smic_h_b", + "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](https://fr.openfisca.org/legislation/swagger). + +Vous pouvez activer le suivi des visites sur votre instance via Piwik avec _[le Tracker API OpenFisca](https://github.com/openfisca/tracker)_ (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](http://semver.org/). 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](CHANGELOG.md) 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](https://github.com/openfisca/openfisca-france/graphs/contributors). + + +%package help +Summary: Development documents and examples for OpenFisca-France +Provides: python3-OpenFisca-France-doc +%description help +# OpenFisca-France + +[](mailto:contact%40openfisca.org?subject=Subscribe%20to%20your%20newsletter%20%7C%20S'inscrire%20%C3%A0%20votre%20newsletter&body=%5BEnglish%20version%20below%5D%0A%0ABonjour%2C%0A%0AVotre%C2%A0pr%C3%A9sence%C2%A0ici%C2%A0nous%C2%A0ravit%C2%A0!%20%F0%9F%98%83%0A%0AEnvoyez-nous%20cet%20email%20pour%20que%20l'on%20puisse%20vous%20inscrire%20%C3%A0%20la%20newsletter.%20%0A%0AAh%C2%A0!%20Et%20si%20vous%20pouviez%20remplir%20ce%20petit%20questionnaire%2C%20%C3%A7a%20serait%20encore%20mieux%C2%A0!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2F45M0VR1TYKD1RGzX2%0A%0AAmiti%C3%A9%2C%0AL%E2%80%99%C3%A9quipe%20OpenFisca%0A%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ENGLISH%20VERSION%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AHi%2C%20%0A%0AWe're%20glad%20to%20see%20you%20here!%20%F0%9F%98%83%0A%0APlease%20send%20us%20this%20email%2C%20so%20we%20can%20subscribe%20you%20to%20the%20newsletter.%0A%0AAlso%2C%20if%20you%20can%20fill%20out%20this%20short%20survey%2C%20even%20better!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2FsOg8K1abhhm441LG2%0A%0ACheers%2C%0AThe%20OpenFisca%20Team) +[](https://twitter.com/intent/follow?screen_name=openfisca) +[](mailto:contact%40openfisca.org?subject=Join%20you%20on%20Slack%20%7C%20Nous%20rejoindre%20sur%20Slack&body=%5BEnglish%20version%20below%5D%0A%0ABonjour%2C%0A%0AVotre%C2%A0pr%C3%A9sence%C2%A0ici%C2%A0nous%C2%A0ravit%C2%A0!%20%F0%9F%98%83%0A%0ARacontez-nous%20un%20peu%20de%20vous%2C%20et%20du%20pourquoi%20de%20votre%20int%C3%A9r%C3%AAt%20de%20rejoindre%20la%20communaut%C3%A9%20OpenFisca%20sur%20Slack.%0A%0AAh%C2%A0!%20Et%20si%20vous%20pouviez%20remplir%20ce%20petit%20questionnaire%2C%20%C3%A7a%20serait%20encore%20mieux%C2%A0!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2F45M0VR1TYKD1RGzX2%0A%0AN%E2%80%99oubliez%20pas%20de%20nous%20envoyer%20cet%20email%C2%A0!%20Sinon%2C%20on%20ne%20pourra%20pas%20vous%20contacter%20ni%20vous%20inviter%20sur%20Slack.%0A%0AAmiti%C3%A9%2C%0AL%E2%80%99%C3%A9quipe%20OpenFisca%0A%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ENGLISH%20VERSION%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AHi%2C%20%0A%0AWe're%20glad%20to%20see%20you%20here!%20%F0%9F%98%83%0A%0APlease%20tell%20us%20a%20bit%20about%20you%20and%20why%20you%20want%20to%20join%20the%20OpenFisca%20community%20on%20Slack.%0A%0AAlso%2C%20if%20you%20can%20fill%20out%20this%20short%20survey%2C%20even%20better!%0Ahttps%3A%2F%2Fgoo.gl%2Fforms%2FsOg8K1abhhm441LG2.%0A%0ADon't%20forget%20to%20send%20us%20this%20email!%20Otherwise%20we%20won't%20be%20able%20to%20contact%20you%20back%2C%20nor%20invite%20you%20on%20Slack.%0A%0ACheers%2C%0AThe%20OpenFisca%20Team) +[](https://pypi.python.org/pypi/openfisca-france) +[](https://pypi.python.org/pypi/openfisca-france) +[](https://gitpod-referer.now.sh/api/gitpod-referer-redirect) + +## [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](https://openfisca.org/doc/) in English! +> We host a public instance of of the [OpenFisca-France Web API](https://fr.openfisca.org/api/v24/). Learn more about its endpoint in the [Swagger documentation](https://fr.openfisca.org/legislation/swagger). +> If you need to run large amount of calculations, or add extensions, you should [host your own instance](#servez-openfisca-france-avec-l-api-web-openfisca). + +## [FR] Introduction +[OpenFisca](https://www.openfisca.fr/) 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](https://openfisca.org/doc/). +> Nous mettons à disposition une instance publique de [l'API Web OpenFisca-France](https://fr.openfisca.org/api/v24/). Découvrez ses capacité sur sa [documentation Swagger](https://fr.openfisca.org/legislation/swagger). +> Si vous avez besoin de réaliser un grand nombre de calculs ou d'ajouter des extensions, vous pouvez [servir votre propre instance](#servez-openfisca-france-avec-l-api-web-openfisca). + +## API Web publique : interrogez OpenFisca-France sans installation + +OpenFisca met à disposition une [API Web publique](https://openfisca.org/doc/openfisca-web-api/endpoints.html) qui ne demande aucune installation. +Utilisez l'API publique si vous souhaitez : +- accéder à un paramètre (Ex : [le montant du SMIC horaire brut](https://fr.openfisca.org/api/v24/parameter/marche_travail.salaire_minimum.smic_h_b)) ; +- consulter une formule de calcul (Ex : [le calcul de l'allocation de base des allocations familiales](https://fr.openfisca.org/api/v24/variable/af_base)) ; +- 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](https://fr.openfisca.org/legislation/swagger). + +[L'explorateur de législation](https://legislation.openfisca.fr/) contient la liste des paramètres et variables disponibles. + +## Installation + +Ce paquet requiert [Python 3.7](https://www.python.org/downloads/release/python-370/) et [pip](https://pip.pypa.io/en/stable/installing/) ou [conda](https://www.anaconda.com/products/individual). + +Plateformes supportées : +- distributions GNU/Linux (en particulier Debian and Ubuntu) ; +- Mac OS X ; +- Windows : Nous recommandons d'utiliser [conda](https://www.anaconda.com/products/individual), voir la procédure ci-dessous [Installez un environnement virtuel avec conda](./README.md#installez-un-environnement-virtuel-avec-conda) ; OpenFisca fonctionne également dans le [sous-système Windows pour Linux (WSL)](https://docs.microsoft.com/fr-fr/windows/wsl/install). 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. + +### Installez un environnement virtuel avec Pew + +Nous recommandons l'utilisation d'un [environnement virtuel](https://virtualenv.pypa.io/en/stable/) (_virtualenv_) avec un gestionnaire de _virtualenv_ tel que [Pew](https://github.com/berdario/pew). Vous pouvez aussi utiliser le gestionnaire d'environnemnt officiel de Python : [venv](https://docs.python.org/3/library/venv.html). + +- Un _[virtualenv](https://virtualenv.pypa.io/en/stable/)_ crée un environnement pour les besoins spécifiques du projet sur lequel vous travaillez. +- Un gestionnaire de _virtualenv_, tel que [Pew](https://github.com/berdario/pew), vous permet de facilement créer, supprimer et naviguer entre différents projets. + +Pour installer Pew, lancez une fenêtre de terminal et suivez ces instructions : + +```sh +python --version # Python 3.7.0 ou plus récent devrait être installé sur votre ordinateur. +# Si non, téléchargez-le sur http://www.python.org et téléchargez pip. +``` + +```sh +pip install --upgrade pip +pip install pew +``` +Créez un nouveau _virtualenv_ nommé **openfisca** et configurez-le avec python 3.7 : + +```sh +pew new openfisca --python=python3.7 +# Si demandé, répondez "Y" à la question sur la modification du fichier de configuration de votre shell +``` +Le _virtualenv_ **openfisca** sera alors activé, c'est-à-dire que les commandes suivantes s'exécuteront directement dans l'environnement virtuel. Vous verrez dans votre terminal : + +```sh +Installing setuptools, pip, wheel...done. +Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return. +``` + +Informations complémentaires : +- sortez du _virtualenv_ en tapant `exit` (or Ctrl-D) ; +- re-rentrez en tapant `pew workon openfisca` dans votre terminal. + +Bravo :tada: Vous êtes prêt·e à installer OpenFisca-France ! + +Nous proposons deux procédures d'installation. Choisissez l'installation A ou B ci-dessous en fonction de l'usage que vous souhaitez faire d'OpenFisca-France. + +### A. Installation minimale (pip install) + +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](https://github.com/sgmap/openfisca-paris) et [Rennes](https://github.com/sgmap/openfisca-rennesmetropole) ; +- servir OpenFisca-France avec l'API Web OpenFisca. + +Pour pouvoir modifier OpenFisca-France, consultez l'[Installation avancée](#b-installation-avancée-git-clone). + +#### Installer OpenFisca-France avec pip install + +Dans votre _virtualenv_, vérifiez les pré-requis : + +```sh +python --version # Devrait afficher "Python 3.7.xx". +#Si non, vérifiez que vous passez --python=python3.7 lors de la création de votre environnement virtuel. +``` + +```sh +pip --version # Devrait afficher au moins 9.0.x +#Si non, exécutez "pip install --upgrade pip". +``` +Installez OpenFisca-France : + +```sh +pip install openfisca-france && pip install openfisca-core[web-api] +``` +> _Note: La deuxième partie de la commande, à partir du `&&`, est optionnelle. Elle vous permet d'installer l'API Web d'OpenFisca._ + +Félicitations :tada: OpenFisca-France est prêt à être utilisé ! + +#### Prochaines étapes + +- Apprenez à utiliser OpenFisca avec nos [tutoriels](https://openfisca.org/doc/) (en anglais). +- Hébergez et servez votre instance d'OpenFisca-France avec l'[API Web OpenFisca](#servez-openfisca-france-avec-lapi-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](https://openfisca.org/doc/contribute/extensions.html) (en anglais) ; +- pour représenter graphiquement vos résultats, essayez la bibliothèque [matplotlib](http://matplotlib.org/) ; +- pour gérer vos données, découvrez la bibliothèque [pandas](http://pandas.pydata.org/). + +### 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](https://www.git-scm.com/) est bien installé sur votre machine. + +Dans votre _virtualenv_, assurez-vous que vous êtes dans le répertoire où vous souhaitez cloner OpenFisca-France. + +Vérifiez les pré-requis : + +```sh +python --version # Devrait afficher "Python 3.7.xx". +#Si non, vérifiez que vous passez --python=python3.7 lors de la création de votre environnement virtuel. +``` + +```sh +pip --version # Devrait afficher au moins 9.0. +#Si non, exécutez "pip install --upgrade pip". +``` + +Clonez OpenFisca-France sur votre machine : + +```sh +git clone https://github.com/openfisca/openfisca-france.git +cd openfisca-france +pip install --editable .[dev] && pip install openfisca-core[web-api] +``` + +Vous pouvez vous assurer que votre installation s'est bien passée en exécutant : + +```sh +pytest tests/test_basics.py # Ces test peuvent prendre jusqu'à 60 secondes. +``` +:tada: OpenFisca-France est prêt à être utilisé ! + +### Installez un environnement virtuel avec conda + +Nous conseillons cette procédure pour les personnes utilisant Windows et n'ayant pas d'environnement Python fonctionnel. Elle fonctionne également sous Linux et macOS. + +Ceci vous permet d'obtenir en une seule installation : +- Python +- Le gestionnaire de paquets [Anaconda.org](https://docs.anaconda.com/anacondaorg/user-guide/) +- Le gestionnaire d'environnement Python virtuel : [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html) + +Voici les étapes à suivre : + +- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque. Cependant vous n'aurez pas l'interface graphique [Anaconda Navigator](https://docs.anaconda.com/anaconda/navigator/index.html) 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 commande `conda 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.7` + - Activer l'environnement : `conda activate openfisca` + - Installer OpenFisca : `conda install openfisca-france` + +:tada: 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](https://anaconda.org/conda-forge/openfisca-france) et sur un _channel_ dédié [openfisca](https://anaconda.org/openfisca/openfisca-france). C'est conda-forge qui est mis en avant dans cette documentation, car accessible par défaut dans les installations Anaconda. + +#### Prochaines étapes + +- Pour enrichir ou faire évoluer la législation d'OpenFisca-France, lisez _[Coding the Legislation](https://openfisca.org/doc/coding-the-legislation/index.html)_ (en anglais). +- Pour contribuer au code, lisez le _[Contribution Guidebook](https://openfisca.org/doc/contribute/index.html)_ (en anglais). + +## Testing + +Pour faire tourner les tests d'OpenFisca-France, exécutez la commande suivante : + +```sh +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 `make test`. Pour le faire tourner de façon indépendante : + +```sh +make check-style +``` + +Pour corriger les erreurs de style de façon automatique: + +```sh +make format-style +``` + +Pour corriger les erreurs de style de façon automatique à chaque fois que vous faites un _commit_ : + +```sh +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 +``` + +## Servez OpenFisca-France avec l'API Web OpenFisca + +Il est possible de servir l'API Web d'OpenFisca-France sur votre propre serveur : + +```sh +openfisca serve +``` + +Pour en savoir plus sur la commande `openfisca serve` et ses options, consultez la [documentation de référence](https://openfisca.org/doc/openfisca-python-api/openfisca_serve.html). + +Testez votre installation en requêtant la commande suivante : + +```sh +curl "http://localhost:5000/parameter/marche_travail.salaire_minimum.smic_h_b" +``` +Vous devriez avoir le resultat suivant : +```JSON +{ + "description": "SMIC horaire brut", + "id": "marche_travail.salaire_minimum.smic_h_b", + "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](https://fr.openfisca.org/legislation/swagger). + +Vous pouvez activer le suivi des visites sur votre instance via Piwik avec _[le Tracker API OpenFisca](https://github.com/openfisca/tracker)_ (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](http://semver.org/). 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](CHANGELOG.md) 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](https://github.com/openfisca/openfisca-france/graphs/contributors). + + +%prep +%autosetup -n OpenFisca-France-146.0.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-OpenFisca-France -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 146.0.3-1 +- Package Spec generated |
