This is the malian tax and benefit system for OpenFisca.
It is part of a comparative study of the Malian, Senegalese and Ivoirian fiscal systems.
OpenFisca is a versatile microsimulation free software. You can check the general OpenFisca documentation in English!
OpenFisca est un logiciel libre de micro-simulation. Ce dépôt contient la modélisation du système social et fiscal malien. Pour plus d'information sur les fonctionnalités et la manière d'utiliser OpenFisca, vous pouvez consulter la documentation générale.
Ce module est en cours de développment dans le cadre d'une étude comparative des modèles socio-fiscaux du Mali, du Sénégal et de la Côte d'Ivoire.
Pour plus d'information sur les fonctionnalités et la manière d'utiliser OpenFisca, vous pouvez consulter la documentation générale (en anglais).
Ce paquet requiert Python 3.7 et pip.
Plateformes supportées :
- distributions GNU/Linux (en particulier Debian and Ubuntu) ;
- Mac OS X ;
- Windows (nous recommandons d'utiliser ConEmu à la place de la console par défaut) ;
Pour les autres OS : si vous pouvez exécuter Python et Numpy, l'installation d'OpenFisca devrait fonctionner.
Nous recommandons l'utilisation d'un environnement virtuel (virtualenv) avec un gestionnaire de virtualenv tel que Pew.
- Un virtualenv crée un environnement pour les besoins spécifiques du projet sur lequel vous travaillez.
- Un gestionnaire de virtualenv, tel que 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 :
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.
pip install --upgrade pip
pip install pew
Créez un nouveau virtualenv nommé openfisca et configurez-le avec python 3.7 :
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 :
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 🎉 Vous êtes prêt·e à installer OpenFisca-Mali !
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-Mali.
Suivez cette installation si vous souhaitez :
- procéder à des calculs sur une large population ;
- créer des simulations fiscales ;
Pour pouvoir modifier OpenFisca-Mali, consultez l'Installation avancée.
Dans votre virtualenv, vérifiez les pré-requis :
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.
pip --version # Devrait afficher au moins 9.0.x
#Si non, exécutez "pip install --upgrade pip".
Installez OpenFisca-Mali :
pip install openfisca-mali
Félicitations 🎉 OpenFisca-Mali est prêt à être utilisé !
- Apprenez à utiliser OpenFisca avec nos tutoriels (en anglais).
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-Mali, 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-Mali ;
- contribuer au code source d'OpenFisca-Mali.
Premièrement, assurez-vous que Git est bien installé sur votre machine.
Dans votre virtualenv, assurez-vous que vous êtes dans le répertoire où vous souhaitez cloner OpenFisca-Mali.
Vérifiez les pré-requis :
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.
pip --version # Devrait afficher au moins 9.0.
#Si non, exécutez "pip install --upgrade pip".
Clonez OpenFisca-Mali sur votre machine :
git clone https://github.com/openfisca/openfisca-mali.git
cd openfisca-mali
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 :
pytest tests/test_basics.py # Ces test peuvent prendre jusqu'à 60 secondes.
🎉 OpenFisca-Mali est prêt à être utilisé !
- Pour enrichir ou faire évoluer la législation d'OpenFisca-Mali, lisez Coding the Legislation (en anglais).
- Pour contribuer au code, lisez le Contribution Guidebook (en anglais).
Pour faire tourner les tests d'OpenFisca-Mali, exécutez la commande suivante :
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 make test
. Pour le faire tourner de façon indépendante :
make check-style
Pour corriger les erreurs de style de façon automatique:
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
Le code d'OpenFisca-Mali 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-Mali 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.